In this final step, you apply Zephyr-specific device tree bindings and conventions. You produce the final Zephyr-compatible device tree.
This step includes these actions:
- Converting to Zephyr binding syntax (compatible strings, property names)
- Adding Zephyr chosen node properties
- Ensuring compliance with Zephyr's device tree requirements
- Performing final node pruning and cleanup
Use the following command to apply the final Zephyr domain
formatting:
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
| Parameter | Description |
|---|---|
<input-dts>
|
R52 IMUX-formatted device tree (from Step 3) |
<output-dts>
|
Final Zephyr device tree (ready to use) |
--
gen_domain_dts
|
Domain generation lopper assist |
<cpu-name>
|
Target CPU |
zephyr_dt
|
Critical: Specifies Zephyr DT output format |
Important: The
zephyr_dt argument triggers the Zephyr-specific transformations.Zephyr Domain Transformations
Compatible string updates: convert Linux bindings to Zephyr bindings where needed.
Memory node adjustments: format memory nodes for the Zephyr memory manager.
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x80000000>; /* 2 GB DDR */
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* DDR boot region (zephyr,sram) */
ddrboot: ddrboot@9800100 {
compatible = "mmio-sram";
device_type = "memory";
no-map;
reg = <0x0 0x9800100 0x0 0x5ff00>;
zephyr,memory-region = "SRAM"; /* Zephyr memory region type */
};
/* IPC shared memory (zephyr,ipc_shm) */
ipc: ipc@9860000 {
compatible = "mmio-sram";
no-map;
reg = <0x0 0x9860000 0x0 0x48000>;
zephyr,memory-region = "IPC_SHM";
};
};
Output: versal-2ve-2vm-vek385-revb-sdt-seg-cortexr52-0-zephyr.dts
This file is the final Zephyr device tree that you use in Zephyr builds.
It contains these items:
- Zephyr-compatible bindings
- OpenAMP nodes for IPI, shared memory, and ELFLOAD
- a
chosennode with the required properties - R52-specific memory mappings
- a clean, pruned device tree for the R52 domain