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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions