AR# 76575

|

2020.2-2021.1 Versal ACAP: Device Tree Generator fails to generate nodes when ILA is added to Versal AXI Stream Interface IP

描述

In the 2020.2 and 2021.1 releases, the Device Tree fails to build when ILA is added to a Versal AXI Stream Interface IP. The below errors are returned:

ERROR: device-tree-xilinx-v2020.2+gitAUTOINC+f725aaecff-r0 do_compile: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:devicetree_do_compile(d)
0003:
File: '/group/bcapps/sandeepg/plnx-workspace/2020.2/vck190-es1-mipi/components/yocto/layers/core/meta/classes/devicetree.bbclass', lineno: 131, function: devicetree_do_compile
0127: if not(os.path.isfile(dtspath)) or not(dts.endswith(".dts") or devicetree_source_is_overlay(dtspath)):
0128: continue # skip non-.dts files and non-overlay files
0129: except:
0130: continue # skip if can't determine if overlay
*** 0131: devicetree_compile(dtspath, includes, d)
0132:}
0133:
0134:devicetree_do_install() {
0135: for DTB_FILE in `ls *.dtb *.dtbo`; do
File: '/group/bcapps/sandeepg/plnx-workspace/2020.2/vck190-es1-mipi/components/yocto/layers/core/meta/classes/devicetree.bbclass', lineno: 119, function: devicetree_compile
0115: dtcargs += ["-i", i]
0116: dtcargs += ["-o", "{0}.{1}".format(dtname, "dtbo" if isoverlay else "dtb")]
0117: dtcargs += ["-I", "dts", "-O", "dtb", "{0}.pp".format(dts)]
0118: bb.note("Running {0}".format(" ".join(dtcargs)))
*** 0119: subprocess.run(dtcargs, check = True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
0120:
0121:python devicetree_do_compile() {
0122: includes = expand_includes("DT_INCLUDE", d)
0123: listpath = d.getVar("DT_FILES_PATH")
File: '/proj/gsd/petalinux/2020.2/components/yocto/buildtools/sysroots/x86_64-petalinux-linux/usr/lib/python3.7/subprocess.py', lineno: 512, function: run
0508: raise
0509: retcode = process.poll()
0510: if check and retcode:
0511: raise CalledProcessError(retcode, process.args,
*** 0512: output=stdout, stderr=stderr)
0513: return CompletedProcess(process.args, retcode, stdout, stderr)
0514:
0515:
0516:def list2cmdline(seq):
Exception: subprocess.CalledProcessError: Command '['dtc', '-@', '-p', '0x1000', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/allwinner', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/mediatek', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/amd', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/hisilicon', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/synaptics', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/xilinx', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/broadcom', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/rockchip', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/intel', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/renesas', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/actions', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/sprd', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/amlogic', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/lg', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/nvidia', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/realtek', '-i', '/group/bcapps/sandeepg/plnx-workspace/2020.2/vck190-es1-mipi/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/altera', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/marvell', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/bitmain', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/scripts/dtc/include-prefixes', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/freescale', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/al', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/arm', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/apm', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/zte', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/exynos', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/cavium', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/qcom', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/ti', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work-shared/versal-generic/kernel-source/arch/arm64/boot/dts/socionext', '-i', '/tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work/versal_generic-xilinx-linux/device-tree/xilinx-v2020.2+gitAUTOINC+f725aaecff-r0', '-o', 'system-top.dtb', '-I', 'dts', '-O', 'dtb', 'system-top.dts.pp']' returned non-zero exit status 1.

Subprocess output:
Error: /group/bcapps/sandeepg/plnx-workspace/2020.2/vck190-es1-mipi/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree/pl.dtsi:971.38-39 syntax error
FATAL ERROR: Unable to parse input tree

ERROR: Logfile of failure stored in: /tmp/sandeepg/plnx/2020.2/vck190-es1-mipi/work/versal_generic-xilinx-linux/device-tree/xilinx-v2020.2+gitAUTOINC+f725aaecff-r0/temp/log.do_compile.59477
ERROR: Task (/group/bcapps/sandeepg/plnx-workspace/2020.2/vck190-es1-mipi/components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:do_compile) failed with exit code '1'


pl.dtsi invalid nodes:

958 axis_switch_0: axis_switch_0@0 {
959 clock-names = "aclk";
960 clocks = <&misc_clk_0>;
961 compatible = "xlnx,axis-switch-1.1";
962 xlnx,num-mi-slots = <2>;
963 xlnx,num-si-slots = <1>;
964 xlnx,routing-mode = <0>;
965 axis_switch_portsaxis_switch_0: ports {
966 #address-cells = <1>;
967 #size-cells = <0>;
968 axis_switch_port1axis_switch_0: port@1 {
969 reg = <1>;
970 axis_switch_out1axis_switch_0: endpoint {
971 remote-endpoint = <&axis_ila_0 v_demosaic_0axis_switch_0>;
972 };
973 };
974 axis_switch_port2axis_switch_0: port@2 {
975 reg = <2>;
976 axis_switch_out2axis_switch_0: endpoint {
977 remote-endpoint = <&v_demosaic_1axis_switch_0>;
978 };
979 };
980 axis_switch_port0axis_switch_0: port@0 {
981 reg = <0>;
982 mipi_csi2_rx_subsyst_0mipi_csi2_rx_subsyst_0: endpoint {
983 remote-endpoint = <&mipi_csirx_outmipi_csi2_rx_subsyst_0>;
984 };
985 };
986 };
987 };</pre >

解决方案

This is a known issue in the 2020.2 and 2021.1 release of the Device Tree Generator (DTG) for Versal devices.

To fix this issue, you will need to apply the attached patch.

Note: In order to apply this patch on top of the 2020.2 release, you will need to first apply the patches from (Xilinx Answer 76440) in sequence.

Root Cause:

The Device Tree Generator does not support Versal ILA with the AXI4 Stream Interface.

PetaLinux:

The patch should be applied to <plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/device-tree_%.bbappend recipes

Note: For information on how to apply a patch to recipes in PetaLinux, please refer to (UG1144) or https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842475/PetaLinux+Yocto+Tips

1) Copy the attached patch from the Attachments section to the device-tree directory as shown below.

If these directory and recipes do not exist then manually create <plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files/

$ mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files
$ cp 0001-common_proc-Add-support-for-Versal-ILA-with-AXI4-Str.patch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files

2) Modify the device-tree.bbappend file with the below content using a text editor:

$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/device-tree.bbappend

# device-tree.bbappend content
# Note: system-user.dtsi is autogenerated from petalinux tool.
SRC_URI += " \
file://system-user.dtsi \
file://0001-common_proc-Add-support-for-Versal-ILA-with-AXI4-Str.patch \
"

FILESEXTRAPATHS_prepend := "${THISDIR}/files:

3) Clean the device-tree sstate cache and rebuild the device-tree recipes:

$ petalinux-build -c device-tree -x cleansstate
$ petalinux-build -c device-tree

Yocto:

The patch should be applied to <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/device-tree/device-tree.bbappend recipes

1) Copy the attached patch from the Attachments section to the device-tree directory as shown below.

If these directory and recipes do not exist then manually create <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/device-tree/files

$ mkdir -p <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/device-tree/files
$ cp 0001-common_proc-Add-support-for-Versal-ILA-with-AXI4-Str.patch <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/device-tree/files

2) Modify the device-tree.bbappend file with the below content using a text editor:

$ vim <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/device-tree/device-tree.bbappend

# device-tree.bbappend content
SRC_URI_append = " \
file://0001-common_proc-Add-support-for-Versal-ILA-with-AXI4-Str.patch \
"

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

3) Clean the device-tree sstate cache and rebuild the device-tree recipes:

$ bitbake device-tree -c cleansstate
$ bitbake device-tree

附件

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
75775 PetaLinux 2020.2/3 - Product Update Release Notes and Known Issues N/A N/A
76526 PetaLinux 2021.1 - Product Update Release Notes and Known Issues N/A N/A
AR# 76575
日期 06/21/2021
状态 Active
Type 已知问题
器件
Tools
Boards & Kits
People Also Viewed