Lopper Step 3: R52 Address Map Formatting (IMUX) - Lopper Step 3: R52 Address Map Formatting (IMUX) - 2026.1 English - UG1186

Libmetal and OpenAMP User Guide (UG1186)

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

In this step, you apply the R52 IMUX transformation. This transformation adjusts the device tree for the Cortex-R52 memory view and address map. The R52 cores use a different memory map than the APU. This step ensures that the addresses translate correctly.

This step performs these key transformations:

  • Adjusts memory addresses for the R52 local and global views.
  • Configures the TCM regions from the R52 perspective.
  • Applies R52-specific interrupt routing.
  • Prunes peripherals that the R52 cannot access.
Use the following command to apply the R52 IMUX transformation:
LOPPER_DTC_FLAGS="-b 0 -@" \
lopper \
  -O <output-directory> \
  -f \
  --enhanced \
  <input-cortexr52-zephyr-imux-dts> \
  <output-final-zephyr-dts> \
  -- gen_domain_dts <cpu-name> zephyr_dt
The following example shows this step for the VEK385 platform:
LOPPER_DTC_FLAGS="-b 0 -@" \
tmp/work/x86_64-linux/esw-conf-native/2026.1+git/recipe-sysroot-native/usr/bin/lopper \
  -O . \
  -f \
  --enhanced \
  versal-2ve-2vm-vek385-revb-sdt-seg-cortexr52-0-zephyr-imux.dts \
  versal-2ve-2vm-vek385-revb-sdt-seg-cortexr52-0-zephyr.dts \
  -- gen_domain_dts cortexr52_0 zephyr_dt
Table 1. Command Breakdown
Parameter Description
-i <lop-r52-imux.dts> R52 IMUX transformation lop file
<input-dts> OpenAMP-enabled device tree (from Step 2)
<output-dts> R52 memory-mapped device tree
-- gen_domain_dts Domain generation lopper assist
<cpu-name> Target CPU for domain generation

lop-r52-imux.dts Overview

The lop-r52-imux.dts file is a lopper operation. It defines address map translations and domain-specific rules for R52 cores.

This lop adjusts the memory regions in these ways:

  • Presents TCM regions at local addresses from the R52 perspective.
  • Removes peripherals that R52 cannot access.
  • Adjusts interrupt numbers for the R52 GIC.
Note: For OpenAMP with DDR boot (ELFLOAD), Zephyr uses the R52 global view addresses. This approach keeps the shared memory view consistent with the APU.

Output: versal-2ve-2vm-vek385-revb-sdt-seg-cortexr52-0-zephyr-imux.dts

This intermediate file contains these results:

  • R52-specific memory mappings
  • Pruned device tree with only R52-accessible peripherals
  • OpenAMP nodes with correct R52 addresses
  • A file that is ready for final Zephyr domain formatting