Power-On
│
├─► PMC (Platform Management Controller)
│ └─► Loads PLM (Platform Loader & Manager)
│
├─► APU Cortex-A78
│ ├─► U-Boot
│ └─► Linux Kernel
│ ├─► Parse Device Tree
│ ├─► Initialize remoteproc driver
│ ├─► Reserve memory regions (rsctbl, vrings, buffers)
│ └─► Wait for user command
│
└─► User triggers: echo start > /sys/class/remoteproc/remoteproc0/state
│
├─► RemoteProc loads firmware from /lib/firmware/
├─► Parses ELF and extracts resource table
├─► EEMI calls to PMC:
│ ├─► Power on R52 domain
│ ├─► Configure TCMs
│ └─► Release R52 from reset
│
├─► RPU (Cortex-R52) starts
│ ├─► Zephyr RTOS boot
│ ├─► Initialize OpenAMP
│ ├─► Setup IPI mailbox
│ ├─► Create RPMsg endpoints
│ └─► Signal ready to APU
│
└─► Linux VirtIO/RPMsg initialization
├─► Detect remote ready
├─► Initialize vrings
├─► Create /dev/ttyRPMSGx, /dev/rpmsgx devices
└─► OpenAMP communication active