AR# 75856

|

2020.1/2 Zynq UltraScale+ MPSoC: PetaLinux fails to build DTG when FPGA Manager is enabled using xxv_ethernet design

Description

In the 2020.x releases, PetaLinux fails to build DTG with the below errors when the FPGA Manager is enabled from the petalinux-config option using the xxv_ethernet design.

DEBUG: Executing python function do_compile
DEBUG: Executing python function devicetree_do_compile
ERROR: 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: '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/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: '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/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: '/home/timing/ieee1588/petalinux-v2020.1/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', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/amd', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/ti', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/renesas', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/apm', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/actions', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/arm', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/zte', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/xilinx', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/lg', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/cavium', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/allwinner', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/nvidia', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/altera', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/intel', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/bitmain', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/al', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/qcom', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/mediatek', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/broadcom', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/exynos', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/marvell', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/sprd', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/include', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/rockchip', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/socionext', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/synaptics', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/scripts/dtc/include-prefixes', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/hisilicon', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/freescale', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/realtek', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work-shared/zcu111-zynqmp/kernel-source/arch/arm64/boot/dts/amlogic', '-i', '/home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/build/tmp/work/zcu111_zynqmp-xilinx-linux/device-tree/xilinx-v2020.1+gitAUTOINC+bc84458333-r0', '-o', 'system-top.dtb', '-I', 'dts', '-O', 'dtb', 'system-top.dts.pp']' returned non-zero exit status 1.
Subprocess output:
Error: /home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree/pcw.dtsi:159.1-20 Label or path eth_0_xxv_ethernet not found
Error: /home/timing/si5500/petalinux_2020_1_port/slab_ptp_ref/software/ptp_ref_zcu111_10g_si5518/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree/pcw.dtsi:163.1-20 Label or path eth_1_xxv_ethernet not found
FATAL ERROR: Syntax error parsing input tree

Solution

This is a known issue in the 2020.1 release of DTG for Zynq UltraScale+ MPSoC devices.

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

Root Cause:

Clocks properties are incorrectly being added for xxv_ethernet_0 in the pcw.dtsi. Instead they should be be generated in pl.dtsi with overlay functionality.

Removing the xxv_ethernet from pcw.dtsi fixes the build error.

However they should be included in pl.dtsi when they "FPGA Manager" features is enabled.

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-eth-Generate-the-clocks-in-the-pl.dtsi.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-eth-Generate-the-clocks-in-the-pl.dtsi.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-eth-Generate-the-clocks-in-the-pl.dtsi.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-eth-Generate-the-clocks-in-the-pl.dtsi.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

 

Attachments

Associated Attachments

Name File Size File Type
0001-eth-Generate-the-clocks-in-the-pl.dtsi.patch 8 KB PATCH

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
73686 PetaLinux 2020.1 - Product Update Release Notes and Known Issues N/A N/A
75775 PetaLinux 2020.2/3 - Product Update Release Notes and Known Issues N/A N/A
AR# 75856
Date 11/24/2020
Status Active
Type Known Issues
Devices
Tools
IP
Boards & Kits
People Also Viewed