Skip to main content

AMP Development Recommendations

13. Development recommendations

  • Copy an existing AMP board configuration from the SDK instead of starting from empty DTS and ITS files.
  • Run the supplied demo with the default memory and RPMsg configuration before making product-specific changes.
  • Maintain one address allocation table covering Linux, every Remote Core, and all shared-memory regions.
  • Treat a peripheral's clock, reset, pinctrl, power domain, and IRQ as one resource bundle when transferring ownership.
  • Use RPMsg for control and small-to-medium messages. Use a dedicated shared buffer for high-bandwidth data.
  • Remote firmware should implement its own watchdog, timeout handling, error states, and safe degradation behavior.
  • Before production, perform repeated cold boots, warm reboots, high-load runs, long-duration RPMsg tests, and peripheral interrupt stress tests.

14. Terminology

TermDescription
AMPAsymmetric Multi-Processing
SMPSymmetric Multi-Processing
APApplication Processor, normally a Cortex-A core
MCUMicrocontroller Unit, such as a Cortex-M or RISC-V core
RTOSReal-Time Operating System
RTTRT-Thread in this document
HALHardware Abstraction Layer
FIT/ITSU-Boot Flattened Image Tree and its source description file
RPMsgRemote Processor Messaging, an inter-core messaging protocol
RPMsg-LiteA lightweight RPMsg implementation for RTOS and bare-metal systems
vringThe ring queue used by VirtIO
Master CoreThe core that manages shared resources and communication memory
Remote CoreA core loaded or managed by the Master Core