
Hello Oliver,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Oliver Graute Sent: Wednesday, May 5, 2021 2:01 PM To: sbabic@denx.de Cc: festevam@gmail.com; peng.fan@nxp.com; oliver.graute@kococonnector.com; u-boot@lists.denx.de; Simon Glass sjg@chromium.org; uboot-imx uboot-imx@nxp.com 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 oliver.graute@kococonnector.com Cc: Stefano Babic sbabic@denx.de Cc: Fabio Estevam festevam@gmail.com Cc: Peng Fan peng.fan@nxp.com Cc: Simon Glass sjg@chromium.org Cc: uboot-imx uboot-imx@nxp.com
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-mkim...