Welcome to Firefly
Switch language
Firefly Docsss
Last Updated: 2026-08-27 07:36:09

AMP Development Recommendations

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.

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

On this page