Step Two: Define Reserved Memory Regions - Step Two: Define Reserved Memory Regions - 2026.1 English - UG1186

Libmetal and OpenAMP User Guide (UG1186)

Document ID
UG1186
Release Date
2026-06-24
Version
2026.1 English

Plan your shared memory layout. The regions must meet these requirements:

  • Not overlap with Linux kernel memory or any other reserved region
  • Be contiguous or at least in a DDR range accessible by both APU and RPU
  • Use no-map: 1 to prevent Linux from using the memory for other purposes

The following table lists sizing guidelines:

Table 1. Reserved Memory Region Sizing Guidelines
Region Minimum Size Recommended Constraint
Firmware (ddrboot/rproc0) Depends on ELF size 384 KB Must fit the entire compiled ELF
Resource Table (rsctbl) 256 B 256 B Fixed size
Each VRing 16 KB 16 KB Depends on num buffers × alignment; 16 KB supports 8 buffers at 4 KB alignment
Shared buffer 64 KB minimum 256 KB–1 MB Depends on message throughput requirements
The following address layout convention applies:
Base + 0x000000  Resource Table (0x100 bytes)  -- or combined rproc0 on legacy
Base + 0x000100  Firmware DDR region           -- ddrboot (on newer SoCs)
Base + 0x060000  VRing0 (0x4000)
Base + 0x064000  VRing1 (0x4000)
Base + 0x068000  Shared buffer pool

For the default overlays, Base = 0x09800000.

Tip: If you need a larger firmware region, for example, for a complex Zephyr application, increase the ddrboot size and shift the vring and buffer addresses accordingly. Make sure the ddrboot end address does not overlap vdev0vring0.