Xilinx / meta-xilinx-tools

Yocto Project layer enables AMD Xilinx tools related metadata for MicroBlaze, Zynq, ZynqMP and Versal devices.
MIT License
53 stars 51 forks source link

Fixed missing HDF dependencies #43

Closed Livius90 closed 2 years ago

Livius90 commented 2 years ago

Fixed missing dependencies, device-tree and fsbl-firmware are depend from hdf-external. If hdf-external has any changes then device-tree and fsbl-firmware could not re-built automatically and it cause run-time problem in boot. It was fixed in this commit.

mhatle commented 2 years ago

There is already a dependency in 'xsctbase.bbclass: xsctbase.bbclass:do_configure[depends] += "virtual/hdf:do_deploy"

xsctbase is automatically inherited from fpgamanager_common, xsctapp, xsctbit and xsctdt.

Can you provide me with a reproducer for the issue you are seeing? It may be a different issue.. (such as no do_configure being executed in those?)

Also the change you suggested is incorrect, because it needs to explicitly depend on the 'do_deploy' task, otherwise there is no promise that the code has been deployed into the tmp/images directory where it is expected.

Livius90 commented 2 years ago

My problems was that i used a bad XSA in my hdf-external.bbappend for my Digilent Zybo board in first time. Unfortunately build was fine, i could realized only at booting time that my FSBL is totally corrupted for my target machine/board.

I quickly fixed my XSA, but then it took me some hours to realize that my modification of hdf-external.bbappend can not cause or trigger any rebuilding process for device-tree and fsbl-firmware recipe. So the FSBL was still faulty as it remained from the first build.

Only DEPENDS += "virtual/hdf" could solve it for me. Now, when there are any new modification in hdf-external recipe device-tree and fsbl-firmware will be re-built and re-deployed always, from the new XSA source.

mhatle commented 2 years ago

I will look into this.

Livius90 commented 2 years ago

I will look into this.

Unfortunately my solution is not enough good to solve this, some days ago i got the problem again. So, i will close this request because this recipe depend config is not enough.

When i have any modification in external-hdf or in my append of external-hdf, the FSBL and more has not get a trigger for a full re-fetch and re-build and my boot.bin could be corrupt in final SD card image.

Only, if i use the "cleanall" for the following dependent recipe by a manual bitbake, it can help. So please, look into this.

zynqmp:

bitbake -c cleanall petalinux-image-minimal device-tree bitstream-extraction external-hdf fsbl fsbl-firmware pmu-firmware pmufw u-boot-xlnx xilinx-bootbin

zynq:

bitbake -c cleanall petalinux-image-minimal device-tree bitstream-extraction external-hdf fsbl fsbl-firmware u-boot-xlnx xilinx-bootbin