AR# 75870

|

2020.2 PetaLinux: EmbeddedSW components build fails while upgrading eSDK from 2020.1 to 2020.2

Description

In the 2020.2 release version of PetaLinux, when a user upgrades a 2020.1 project to 2020.2 or when a user creates a new project with the upgraded tool (from 2020.1 to 2020.2), EmbeddedSW components such as the FSBL, pmu-firmware, psm-firmware, PLM and fs-boot fail to build.

For MicroBlaze PetaLinux, KC705, AC701 and KCU105 BSP device-trees also fail to build.

Solution

This is a known issue in the 2020.x release of PetaLinux for all platforms.

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

Root Cause:

The Parallel makefiles mechanism for the EmbeddedSW components does not work when building the 2020.2 EmbeddedSW components using 2020.1 XSCT tools.

PetaLinux MicroBlaze Project:

Note: the below table describes the patches for both the MicroBlaze template and BSP projects.

Patch Component/ Project MicroBlaze template ProjectMicroBlaze AC701/KC705/KCU105 BSP Project
FS-BootYesYes
DTGNoYes


FS-Boot:

The patch should be applied to <plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsboot/fs-boot_%.bbappend recpies.

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 fsboot directory as shown below.

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

$ cp 0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsboot/files

2) Modify the fs-boot_%.bbappend file with the below content using a text editor:

$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsboot/fs-boot_%.bbappend
# fs-boot_%.bbappend content
SRC_URI_append = " \
    file://0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch \
"

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

3) Clean the fs-boot sstate cache and rebuild the fs-boot recipes:

$ petalinux-build -c fs-boot -x cleansstate
$ petalinux-build -c fs-boot

DTG for AC701 PetaLinux BSP:

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-Revert-ac701-full.dtsi-update-node-instances-for-ac7.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-Revert-ac701-full.dtsi-update-node-instances-for-ac7.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

DTG for KC705 PetaLinux BSP:

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-Revert-kc705-full.dtsi-update-node-instances-for-kc7.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-Revert-kc705-full.dtsi-update-node-instances-for-kc7.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

DTG for KCU105 PetaLinux BSP:

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-Revert-kcu105.dtsi-update-node-instances-for-kcu105-.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-Revert-kcu105.dtsi-update-node-instances-for-kcu105-.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

PetaLinux Zynq-7000 Project:

The patch should be applied to <plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/fsbl_%.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 fsbl directory as shown below.

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

$ mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/files
$ cp 0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/files

2) Modify the fsbl_%.bbappend file with the below content using a text editor:

$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/fsbl/fsbl_%.bbappend
# fsbl_%.bbappend content SRC_URI_append = " \ file://0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch \ " FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

3) Clean the fsbl sstate cache and rebuild the fsbl recipes:

$ petalinux-build -c fsbl -x cleansstate
$ petalinux-build -c fsbl

PetaLinux Zynq UltraScale+ MPSoC:

The patch should be applied to <plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu-firmware/pmu-firmware_%.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 pmu-firmware directory as shown below.

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

$ mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu-firmware/files
$ cp 0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu-firmware/files

2) Modify the pmu-firmware_%.bbappend file with the below content using a text editor:

$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu-firmware/pmu-firmware_%.bbappend
# pmu-firmware_%.bbappend content SRC_URI_append = " \ file://0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch \ " FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

3) Clean the pmu-firmware sstate cache and rebuild the pmu-firmware recipes:

$ petalinux-build -c pmu-firmware -x cleansstate
$ petalinux-build -c pmu-firmware

PetaLinux Versal ACAP:

Note:
For Veral projects, you need to apply the patches for both PSM-Firmware and PLM.

PSM-Firmware:

The patch should be applied to <plnx-proj-root>/project-spec/meta-user/recipes-bsp/psm-firmware/psm-firmware_%.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 psm-firmware directory as shown below.

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

$ mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-bsp/psm-firmware/files
$ cp 0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/psm-firmware/files

2) Modify the psm-firmware_%.bbappend file with the below content using a text editor:

$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/psm-firmware/psm-firmware_%.bbappend
# psm-firmware_%.bbappend content
SRC_URI_append = " \
    file://0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch \
"
 
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

3) Clean the psm-firmware sstate cache and rebuild the psm-firmware recipes:

$ petalinux-build -c psm-firmware -x cleansstate
$ petalinux-build -c psm-firmware

PLM:

The patch should be applied to ;<plnx-proj-root>/project-spec/meta-user/recipes-bsp/plm/plm_%.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 plm directory as shown below.

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

$ mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-bsp/plm/files
$ cp 0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/plm/files

2) Modify the plm_%.bbappend file with the below content using a text editor:

$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/plm/plm_%.bbappend
# plm_%.bbappend content SRC_URI_append = " \ file://0001-esw-Update-makefiles-to-make-them-work-with-older-vi.patch \ " FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

3) Clean the plm sstate cache and rebuild the plm recipes:

$ petalinux-build -c plm -x cleansstate
$ petalinux-build -c plm

Attachments

Associated Attachments

Name File Size File Type
AR-75870-patches.zip 19 KB ZIP
AR# 75870
Date 11/25/2020
Status Active
Type Known Issues
Tools
People Also Viewed