In the 2021.1 release, Yocto/PetaLinux fails to build when the design contains an RFDC IP.
The below errors are returned:
| cp: cannot stat '../build_libmetal/lib/include/metal': No such file or directory
| make[3]: *** [Makefile:7: include] Error 1
| make[2]: *** [Makefile:42: psu_cortexa53_0/libsrc/libmetal_v2_1/src/make.include] Error 2
| make[1]: *** [Makefile:18: all] Error 2
| make[1]: Leaving directory '/tmp/sandeepg/plnx/2021.1/zynqmp-dr-test/work/zynqmp_generic-xilinx-linux/fsbl-firmware/git+gitAUTOINC+d37a0e8824-r0/git/fsbl-firmware/fsbl-firmware/zynqmp_fsbl_bsp'
| make: *** [Makefile:32: zynqmp_fsbl_bsp/psu_cortexa53_0/lib/libxil.a] Error 2
| WARNING: /tmp/sandeepg/plnx/2021.1/zynqmp-dr-test/work/zynqmp_generic-xilinx-linux/fsbl-firmware/git+gitAUTOINC+d37a0e8824-r0/temp/run.do_compile.42575:170 exit 1 from 'exit 1'
| WARNING: Backtrace (BB generated script):
| #1: bbfatal_log, /tmp/sandeepg/plnx/2021.1/zynqmp-dr-test/work/zynqmp_generic-xilinx-linux/fsbl-firmware/git+gitAUTOINC+d37a0e8824-r0/temp/run.do_compile.42575, line 170
| #2: die, /tmp/sandeepg/plnx/2021.1/zynqmp-dr-test/work/zynqmp_generic-xilinx-linux/fsbl-firmware/git+gitAUTOINC+d37a0e8824-r0/temp/run.do_compile.42575, line 181
| #3: oe_runmake, /tmp/sandeepg/plnx/2021.1/zynqmp-dr-test/work/zynqmp_generic-xilinx-linux/fsbl-firmware/git+gitAUTOINC+d37a0e8824-r0/temp/run.do_compile.42575, line 160
| #4: do_compile, /tmp/sandeepg/plnx/2021.1/zynqmp-dr-test/work/zynqmp_generic-xilinx-linux/fsbl-firmware/git+gitAUTOINC+d37a0e8824-r0/temp/run.do_compile.42575, line 152
| #5: main, /tmp/sandeepg/plnx/2021.1/zynqmp-dr-test/work/zynqmp_generic-xilinx-linux/fsbl-firmware/git+gitAUTOINC+d37a0e8824-r0/temp/run.do_compile.42575, line 194
|
| Backtrace (metadata-relative locations):
| #1: bbfatal_log, plnx-workspace/2021.1/zynqmp-dr-test/components/yocto/layers/core/meta/classes/logging.bbclass, line 72
| #2: die, plnx-workspace/2021.1/zynqmp-dr-test/components/yocto/layers/core/meta/classes/base.bbclass, line 56
| #3: oe_runmake, plnx-workspace/2021.1/zynqmp-dr-test/components/yocto/layers/core/meta/classes/base.bbclass, line 65
| #4: do_compile, plnx-workspace/2021.1/zynqmp-dr-test/components/yocto/layers/meta-xilinx-tools/classes/xsctapp.bbclass, line 23
ERROR: Task (plnx-workspace/2021.1/zynqmp-dr-test/components/yocto/layers/meta-xilinx/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_git.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3731 tasks of which 3605 didn't need to be rerun and 2 failed.
Summary: 2 tasks failed:
plnx-workspace/2021.1/zynqmp-dr-test/components/yocto/layers/meta-xilinx/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb:do_compile
plnx-workspace/2021.1/zynqmp-dr-test/components/yocto/layers/meta-xilinx/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_git.bb:do_compile
Summary: There were 4 ERROR messages shown, returning a non-zero exit code.
ERROR: Failed to build project. Check the plnx-workspace/2021.1/zynqmp-dr-test/build/build.log file for more details...
plnx-workspace/2021.1/zynqmp-dr-test $
This is a known issue in the 2021.1 release of Yocto/PetaLinux for Zynq UltraScale+ RFSoC devices.
To fix this issue, you will need to apply the following work-around.
Root Cause:
The RFDC driver has libmetal library dependencies for building FSBL and PMUFW components and these are missing from the FSBL and PMUFW Yocto recipes.
PetaLinux:
The work-around should be applied to <plnx-proj-root>/project-spec/meta-user/recipes-bsp/emebeddedsw/fsbl-firmware_%.bbappend and <plnx-proj-root>/project-spec/meta-user/recipes-bsp/emebeddedsw/pmu-firmware_%.bbappend recipes
Note: For information on how to apply a patch/workaround to recipes in PetaLinux, please refer to (UG1144) or https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842475/PetaLinux+Yocto+Tips
1) Create the embeddedsw directory, FSBL and PMU firmware recipes as shown below.
$ mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-bsp/emebeddedsw $ touch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/emebeddedsw/fsbl-firmware_%.bbappend $ touch <plnx-proj-root>/project-spec/meta-user/recipes-bsp/emebeddedsw/pmu-firmware_%.bbappend
2) Modify the fsbl-firmware_%.bbappend file with the below content using a text editor:
$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/emebeddedsw/fsbl-firmware_%.bbappend # fsbl-fimware_%.bbappend content XSCTH_MISC_append_zynqmp-dr = " -lib libmetal"
3) Modify the pmu-firmware_%.bbappend file with the below content using a text editor:
$ vim <plnx-proj-root>/project-spec/meta-user/recipes-bsp/emebeddedsw/pmu-firmware_%.bbappend # pmu-fimware_%.bbappend content XSCTH_MISC_append_zynqmp-dr = " -lib libmetal"
4) Clean the FSBL and PMUFW sstate cache and rebuild the FSBL and PMUFW recipes:
$ petalinux-build -c fsbl -x cleanall; petalinux-build -c pmufw -x cleanall $ petalinux-build
Yocto:
The work-around should be applied to <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/emebeddedsw/fsbl-firmware_%.bbappend and <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/emebeddedsw/pmu-firmware_%.bbappend recipes
1) Modify the fsbl-firmware_%.bbappend file with the below content using a text editor:
$ vim <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/emebeddedsw/fsbl-firmware_%.bbappend # fsbl-fimware_%.bbappend content XSCTH_MISC_append_zynqmp-dr = " -lib libmetal"
2) Modify the pmu-firmware_%.bbappend file with the below content using a text editor:
$ vim <yocto-proj-root>/sources/meta-xilinx-tools/recipes-bsp/emebeddedsw/pmu-firmware_%.bbappend # pmu-fimware_%.bbappend content XSCTH_MISC_append_zynqmp-dr = " -lib libmetal"
3) Clean the FSBL and PMUFW sstate cache and rebuild the FSBL and PMUFW recipes:
$ bitbake fsbl -c cleanall; bibtake pmufw -c cleanall $ bitbake fsbl; bitbake pmufw
Answer Number | 问答标题 | 问题版本 | 已解决问题的版本 |
---|---|---|---|
76526 | PetaLinux 2021.1 - Product Update Release Notes and Known Issues | N/A | N/A |
AR# 76856 | |
---|---|
日期 | 08/31/2021 |
状态 | Active |
Type | 已知问题 |
器件 | |
Tools |