Embedded rust on the beagleboard X15
summary
Rust runs bare-metal on a BeagleBoard X15 (AM57:28) to boot the cortex‑M4 remotes from Linux via remoteproc, using resource table layouts emitted from Rust and cargo cross‑builds. Workarounds include detecting a secret magic register to distinguish identical M4 cores, juggling roughly a dozen MMUs and bit‑banding address collisions, and disabling caches for shared RAM. Communication uses virtio rings plus mailboxes and a 32KB trace buffer. Firmware boots reliably and sources appear at github.com/cambridgeconsultants.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 0:27rust
- 3:41Beagleboard X15
- 4:45Whats inside
- 6:48How does it work
- 10:28Naming the chip
- 12:54The problem
- 14:18The boot code
- 15:38The reset code
- 16:59Memory management units
- 19:05Linux kernel structures
- 20:39Trace buffer
- 21:41Vertoids
- 25:08Mailbox
- 25:48FIFOs
- 27:54Linux
- 28:58Socket IO
- 30:24Questions
related talks
26mIntroducing Rust into a Legacy Embedded System
55mEmbedded Rust in Production
04mUsing the Rust Standard Library on High-End MCUs
36mIt's Embedded Rust Time
04mLightning Talk - Embedded Rust
50mHow to Do Embedded Development with Rust
34mWriting an Embedded Operating System in Rust
31mMoving Electrons with Rust
