* Re: [ptxdist] TF-A FIP format and U-Boot
[not found] <CABDcava0P+Due6kCja2emEX5hR+V8fHbCuJJK2dFJRJTnwoJiQ@mail.gmail.com>
@ 2021-09-30 10:55 ` Michael Olbrich
[not found] ` <CABDcavbjpQu9ToNOCSh7hJp3+XLjx3V4C_C=+P-dBTg9iH_EjQ@mail.gmail.com>
0 siblings, 1 reply; 2+ messages in thread
From: Michael Olbrich @ 2021-09-30 10:55 UTC (permalink / raw)
To: Guillermo Rodriguez Garcia; +Cc: ptxdist
Hi,
On Wed, Sep 29, 2021 at 05:57:54PM +0200, Guillermo Rodriguez Garcia wrote:
> TF-A recently introduced the FIP ("Firmware Image Package") which is a
> format for embedding other bootloader images as payloads in a single
> archive, which is then read and processed by TF-A.
>
> In platforms such as the stm32mp1 where TF-A is used in conjunction with
> U-Boot, U-Boot is now embedded in the FIP image as part of the TF-A package
> build.
>
> To achieve this we added a dependency in the TF-A rule files:
>
> select U_BOOT if TF_A_FIP
>
> The goal is to be able to build the fip command with a command similar to
> this one:
>
> make ARM_ARCH_MAJOR=7 ARCH=aarch32 PLAT=stm32mp1 \
> BL33=<u-boot_path>/u-boot-nodtb.bin \
> BL33_CFG=<u-boot_path>/u-boot.dtb \
> BL32=<tfa_path>/bl32.bin \
> FW_CONFIG=<tfa_path>/fw-config.dtb \
> DTB_FILE_NAME=<fdt file name>.dtb \
> fip
>
> The problem is that the dependency set in the tf-a.in file only ensures
> that the install target of u-boot will run before the install target of
> tf-a, but at that time the images have not yet been copied to their final
> destination (platform/images..). Which is the proper way to work around
> this?
So, the way dependencies work in ptxdist, installing files in the
targetinstall stage in one package and then using it in a build stage in
another regular package (image packages are different here) is not
possible.
This issue has come up before and I've looked for a good solution but
changing the dependencies is unfortunately not possible.
So for such a use-case, the files must be installed in the install stage.
Note, that you cannot install the files into platform/images:
'ptxdist clean root' will remove that but only cleans the targetinstall
stages, so afterwards the files will be missing.
So I suggest the files are installed to $(<PKG>_PKGDIR)/usr/lib/<something>/
The install stage will then copy the files to sysroot-target and the next
package can find the files there.
Michael
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
^ permalink raw reply [flat|nested] 2+ messages in thread