Hello Oliver,
> -----Original Message-----
> From: U-Boot <[email protected]> On Behalf Of Oliver Graute
> Sent: Wednesday, May 5, 2021 2:01 PM
> To: [email protected]
> Cc: [email protected]; [email protected];
> [email protected]; [email protected]; Simon Glass
> <[email protected]>; uboot-imx <[email protected]>
> Subject: [PATCH v1] imx: mkimage_fit_atf: replace @ with hyphen
>
>
> Unit addresses are not allowed anymore in a FIT image since
>
> commit 3f04db891a35 ("image: Check for unit addresses in FITs")
>
> This caused this error on mkimage creation:
>
> ./tools/mkimage: verify_header failed for FIT Image support with exit code 1
> Makefile:1393: recipe for target 'u-boot.itb' failed
> make: *** [u-boot.itb] Error 1
IIRC, this error comes from the derivatives which are not (yet) migrated to use
'binman' and have CONFIG_SPL_FIT_GENERATOR set.
It is triggered by 79af75f777 ("fit: Don't allow verification of images with @
nodes"), which is totally correct behavior and should be
corrected on the FIT generator end, so the patch itself solves the problem.
TBH, I had introduced the same change to NXP U-Boot fork that is built for NXP
Yocto BSP [1], and was not sure it is relevant for the
master since it uses 'binman' instead of FIT generator.
From the other point of view, which imx8m board do you experience this build
problem with?
Currently, there are following boards that need to be migrated from FIT
generator to 'binman':
configs/imx8mm_beacon_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/imx8mm_venice_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/imx8mn_beacon_2g_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/imx8mn_beacon_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/imx8mq_evk_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/imx8mq_phanbell_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/imx8qm_rom7720_a1_4G_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/phycore-imx8mm_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/phycore-imx8mp_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/pico-imx8mq_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
configs/verdin-imx8mm_defconfig:CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
I know it's a long shot, but the question is: should the FIT generator be
adapted here, or maybe those boards that are
still using it - to be migrated to binman directly?
There is already a warning in root Makefile regarding usage of FIT generator:
"===================== WARNING ======================"
"This board uses CONFIG_SPL_FIT_GENERATOR. Please migrate"
"to binman instead, to avoid the proliferation of"
"arch-specific scripts with no tests."
"===================================================="
So maybe it makes sense to adapt affected boards instead?
>
> replacing @ with hyphen solved the issue
>
> Signed-off-by: Oliver Graute <[email protected]>
> Cc: Stefano Babic <[email protected]>
> Cc: Fabio Estevam <[email protected]>
> Cc: Peng Fan <[email protected]>
> Cc: Simon Glass <[email protected]>
> Cc: uboot-imx <[email protected]>
> ---
> arch/arm/mach-imx/mkimage_fit_atf.sh | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-imx/mkimage_fit_atf.sh b/arch/arm/mach-
> imx/mkimage_fit_atf.sh
> index fe12b7bb4b..c5fb9b0fc3 100755
> --- a/arch/arm/mach-imx/mkimage_fit_atf.sh
> +++ b/arch/arm/mach-imx/mkimage_fit_atf.sh
> @@ -53,7 +53,7 @@ cat << __HEADER_EOF
> description = "Configuration to load ATF before U-Boot";
>
> images {
> - uboot@1 {
> + uboot-1 {
> description = "U-Boot (64-bit)";
> os = "u-boot";
> data = /incbin/("$BL33"); @@ -68,7 +68,7 @@ cnt=1
> for dtname in $*
> do
> cat << __FDT_IMAGE_EOF
> - fdt@$cnt {
> + fdt-$cnt {
> description = "$(basename $dtname .dtb)";
> data = /incbin/("$dtname");
> type = "flat_dt"; @@ -79,7 +79,7 @@ cnt=$((cnt+1))
> done
>
> cat << __HEADER_EOF
> - atf@1 {
> + atf-1 {
> description = "ARM Trusted Firmware";
> os = "arm-trusted-firmware";
> data = /incbin/("$BL31"); @@ -93,7 +93,7 @@
> __HEADER_EOF
>
> if [ -f $BL32 ]; then
> cat << __HEADER_EOF
> - tee@1 {
> + tee-1 {
> description = "TEE firmware";
> data = /incbin/("$BL32");
> type = "firmware"; @@ -108,7 +108,7 @@ fi cat <<
> __CONF_HEADER_EOF
> };
> configurations {
> - default = "config@1";
> + default = "config-1";
>
> __CONF_HEADER_EOF
>
> @@ -117,20 +117,20 @@ for dtname in $*
> do
> if [ -f $BL32 ]; then
> cat << __CONF_SECTION_EOF
> - config@$cnt {
> + config-$cnt {
> description = "$(basename $dtname .dtb)";
> - firmware = "uboot@1";
> - loadables = "atf@1", "tee@1";
> + firmware = "uboot-1";
> + loadables = "atf-1", "tee-1";
> fdt = "fdt@$cnt";
> };
> __CONF_SECTION_EOF
> else
> cat << __CONF_SECTION1_EOF
> - config@$cnt {
> + config-$cnt {
> description = "$(basename $dtname .dtb)";
> - firmware = "uboot@1";
> - loadables = "atf@1";
> - fdt = "fdt@$cnt";
> + firmware = "uboot-1";
> + loadables = "atf-1";
> + fdt = "fdt-$cnt";
> };
> __CONF_SECTION1_EOF
> fi
> --
> 2.17.1
-- andrey
Link: [1]
https://github.com/Freescale/meta-freescale/blob/master/recipes-bsp/imx-mkimage/files/0001-mkimage_fit_atf-fix-fit-generator-node-naming.patch