Skip to content

dtgen_dfx.tcl does not obey -processor_ip parameter #54

@hannesweisbach

Description

@hannesweisbach

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions