Step Six: Configure the Remote Domain - Step Six: Configure the Remote Domain - 2026.1 English - UG1186

Libmetal and OpenAMP User Guide (UG1186)

Document ID
UG1186
Release Date
2026-06-24
Version
2026.1 English
  RPU_Zephyr:
    compatible: openamp,domain-v1
    cpus:
      - cluster: cpus_r52_0             # cpus_r5_0 on Zynq UltraScale+ MPSoCs and Versal devices
        cluster_cpu: cortexr52_0        # exact CPU node name from SDT
        cpumask: 0x1
        mode:
          secure: true
          el: 0x3
    os,type: zephyr                      # or freertos, baremetal
    xlnx,ddr-boot: true                 # required for R52 OpenAMP IPC; set false for libmetal
Add the mirror rpmsg-relation:
    domain-to-domain:
      compatible: openamp,domain-to-domain-v1
      rpmsg-relation:
        compatible: openamp,rpmsg-v1
        relation0:
          host: APU_Linux               # note: "host" not "remote"
          mbox: ipi_2_nobuf_to_ipi_1_nobuf   # RPU→APU IPI (reverse of host)
          carveouts: [ vdev0vring0@9860000, vdev0vring1@9864000, vdev0buffer@9868000 ]
Add the sram section with the DDR boot region and all TCMs:
    sram:
      - dev: ddrboot@9800100
        start: 0x9800100
        size: 0x5FF00
      - dev: r52_0a_atcm_global@eba00000
        label: r52_0a_atcm_global
        size: 64K
        spec_name: R52_0A_ATCM_GLOBAL
        start: '0xeba00000'
      - dev: r52_0a_btcm_global@eba10000
        label: r52_0a_btcm_global
        size: 32K
        spec_name: R52_0A_BTCM_GLOBAL
        start: '0xeba10000'
      - dev: r52_0a_ctcm_global@eba20000
        label: r52_0a_ctcm_global
        size: 32K
        spec_name: R52_0A_CTCM_GLOBAL
        start: '0xeba20000'

    reserved-memory:
      - ddrboot@9800100