Xilinx / Xilinx/Vitis-Tutorials

AIE-MLv2/01-Radio-ML Tutorial DTBO mismatch for hw_emu target

Open
#513 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
1.6k
Forks
627
PR merge metrics
No merged PRs in 30d

Description

Hi there,

I am running the AI_Engine_Development/AIE-MLv2/Design_Tutorials/01-Radio-ML tutorial.
OS: Ubuntu 24.04.3
Tool: Vitis 2026.1
Vitis-Tutorials branch: 2026.1
EDF: the linked package 26.06 from Readme

When running the emulation target I faced errors. Some I was able to solve myself but I am now stuck and need your help.

First the problems I was able to solve for reproducibility:

$ make all TARGET=hw_emu
.../01-Radio-ML/yocto_artifacts/amd-cortexa78-mali-common_meta-edf-app-sdk/sdk/sysroots/x86_64-amdedfsdk-linux/usr/lib/python3.12/site-packages/wic/misc.py", line 76, in _exec_cmd
    raise WicError("_exec_cmd: %s returned '%s' instead of 0\noutput: %s" % \
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'module' object is not callable

As a quick fix we have to replace the two "raise WicError" with "raise Exception" in misc.py.
Now we can see the actual error message:
ERROR: [v++ 60-587] Failed to add a platform: specified platform /opt/Xilinx/2026.1/Vitis/base_platforms/vek385_base_reva/vek385_base_reva.xpfm is not found or is not valid

Thus we adapt the 01-Radio-ML/Makefile to the correct directory in ${PLATFORM_REPO_PATHS}:
Replace
export PLATFORM = ${PLATFORM_REPO_PATHS}/vek385_base_reva/vek385_base_reva.xpfm
with
export PLATFORM = ${PLATFORM_REPO_PATHS}/vek385_base/vek385_base.xpfm

Next error occurs during QEMU simulation (still the same make call).

amd-edf:/home/amdINFO:Running  mount /dev/sda2 /media; cd /media; ./embedded_exec.sh
Run app command sent to console
-edf#  mount /dev/sda2 /media; cd /media; ./embedded_exec.sh 
INFO: Load the pdi and dtbo using fpgautil
Failed to apply Overlay
Time taken to load BIN is 116.000000 Milli Seconds
BIN FILE loaded through FPGA manager successfull but failed to apply Overlay
Initializing ADF API...
terminate called after throwing an instance of 'std::runtime_error'
  what():   No such device with index '0'
./embedded_exec.sh: line 11:   682 Aborted                 (core dumped) ./host.exe dut.xclbin
ERROR: Embedded host run failed, RC=134
INFO: Embedded host run completed.

To further investigate this issue I cleaned everything and ran the whole make all TARGET=hw_emu again but manually launched the steps described in ./embedded_exec.sh
The first call to fpgautil is already failing:

amd-edf:/media# fpgautil -b dut.pdi -o dut.dtbo 
Failed to apply Overlay
Time taken to load BIN is 125.000000 Milli Seconds
BIN FILE loaded through FPGA manager successfull but failed to apply Overlay

The kernel log reveals a missing node label in the symbols table.

amd-edf:/media# dmesg
...
[  226.924972] OF: resolver: node label 'cma_reserved_800000000' not found in live devicetree symbols table
[  226.925371] create_overlay: Failed to create overlay (err=-22)
...

I infer from this that the created overlay does not match the live device tree loaded by QEMU.
Therefore, I also searched the log for the creation of both files:

...
VCU2 is using NSU path, so skipping interrupts
INFO: Reading AIE hardware properties from XSA.
[xlnx_overlay_pl_dt.py][WARNING]: pl.dtsi argument 'pl.dtso' is provided for backward compatibility but will be ignored.
[xlnx_overlay_pl_dt.py][WARNING]: The assist reads /amba_pl node from the system device tree instead.
Starting overlay generation...
pl: .../01-Radio-ML/vitis/build_hw_emu/_x/package/lopper_out/pl.dtsi dtso: .../01-Radio-ML/vitis/build_hw_emu/_x/package/lopper_out/pl.dtso
Overlay generation completed successfully!
INFO: [v++ 60-586] Created .../01-Radio-ML/package.hw_emu/sd_card/dut.dtbo
INFO: [v++ 60-586] Created .../01-Radio-ML/package.hw_emu/sd_card/dut.dtb
...
Output log file : aiemetacpp.log
INFO: [v++ 60-586] Created .../01-Radio-ML/package.hw_emu/sd_card/baremetal_metadata_package.cpp
INFO: [v++ 82-3881] Device architecture set to versal
INFO: [v++ 82-1012] Deleting existing .../01-Radio-ML/package.hw_emu/sd_card/dut.bif
INFO: [v++ 82-1022] Generating .../01-Radio-ML/package.hw_emu/sd_card/dut.bif
INFO: [v++ 82-3884] Generating pdi for arch versal with bif .../01-Radio-ML/package.hw_emu/sd_card/dut.bif
INFO: [v++ 82-12050] Running bootgen: bootgen -arch versal_2ve_2vm -image .../01-Radio-ML/package.hw_emu/sd_card/dut.bif -o .../01-Radio-ML/package.hw_emu/sd_card/dut.pdi
...

The creation of neither the overlay nor the live image shows any errors.

I do not know how to proceed from here.
Any help is appreciated.
Thanks a lot!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with AI_Engine_Development/AIE-MLv2/Design_Tutorials/01-Radio-ML/Makefile and package.hw_emu/sd_card/embedded_exec.sh, then reproduce the hw_emu flow with fpgautil and dmesg. Compare the generated dut.dtbo and dut.dtb with the QEMU live device tree; done means the overlay applies without the missing cma_reserved_800000000 label and embedded_exec.sh completes ADF initialization.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, ubuntu
Domain
embedded-iot, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.