-
Notifications
You must be signed in to change notification settings - Fork 53
Description
Hello,
first of all, I know xsct
is being sunset and replaced by the sdtgen
-workflow, so I don't know of how much interest this issue is.
I have an XSA, where when I run getprocessors
on I get the following:
xsct% getprocessors ./hardware.xsa
INFO: [Hsi 55-2053] elapsed time for repository (/opt/Xilinx/Vitis/2024.2/data/embeddedsw) loading 0 seconds
hsi::open_hw_design: Time (s): cpu = 00:00:06 ; elapsed = 00:00:06 . Memory (MB): peak = 874.352 ; gain = 142.355 ; free physical = 5170 ; free virtual = 29237
microblaze_I psu_cortexa53_0 psu_cortexa53_1 psu_cortexa53_2 psu_cortexa53_3 psu_cortexr5_0 psu_cortexr5_1 psu_pmu_0
Afaict, the design does indeed have an embedded Microblaze processor.
Using dtgen_dfx.tcl
on this design via inherit dfx_dtg_zynqmp_full
results in the following call to xsct
during the bitbake build (some info redacted):
| Using xsct from: /home/oe/build/tmp-glibc/work/[machine]-oe-linux/[recipe-name]/1.0/recipe-sysroot-native/Vitis/2024.2/bin/xsct
| cmd is: xsct -sdx -nodisp /home/oe/build/tmp-glibc/work/[machine]-oe-linux/[recipe-name]/1.0/dtgen_dfx.tcl -ws /home/oe/build/tmp-glibc/work/[machine]-oe-linux/[recipe-name]/1.0/build -pname [recipe-name] -rp /home/oe/build/tmp-glibc/work/[machine]-oe-linux/[recipe-name]/1.0/git -processor_ip psu_cortexa53 -hdf /home/oe/build/tmp-glibc/work/[machine]-oe-linux/[recipe-name]/1.0/[recipe-name].xsa -arch 64 -hdf_type xsa -hwpname [recipe-name] -yamlconf /home/oe/build/tmp-glibc/work/[machine]-oe-linux/[recipe-name]/1.0/[recipe-name].yaml
and the build fails with:
| INFO: Targeting Static XSA Processor is 'microblaze_I'
| Opening the hardware design, this may take few seconds.
| ERROR: [Common 17-161] Invalid option value '' specified for 'of_objects'.
| ERROR: [Hsi 55-1545] Problem running tcl command ::sw_cpu::generate : ERROR: [Common 17-161] Invalid option value '' specified for 'of_objects'.
when, I think, the message should be:
| INFO: Targeting Static XSA Processor is 'psu_cortexa53_0'
To get the processor, dtgen_dfx.tcl
does essentially this:
set procs [getprocessors $params(hdf)]
set processor [lindex $procs 0]
which, in my case, yields microblaze_I
.
In contrast, dtgen.tcl
observes the -processor_ip
-parameter and does this:
set processor [lindex [hsi get_cells -hier -filter IP_NAME==$params(processor_ip)] 0]
which yields, I believe correctly, psu_cortexa53_0
.
If someone would confirm the bug, I'd be willing to provide a patch and open a PR.