[PATCH 0/8] imx8: switch missing boards to binman

This patchsets switches the remaining imx8 boards to binman.
Oliver Graute (8): imx: imx8qm-rom7720: switch to binman imx: imx8qm: cgtqmx8: switch to binman imx: imx8qxp: imx8qxp_mek switch to binman imx: imx8qm: imx8qm_mek switch to binman imx: imx8qxp: giedi switch to binman imx: imx8qxp: deneb switch to binman imx: imx8x: colibri: switch to binman imx: imx8: apalis: switch to binman
arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi | 104 ++++++++++++++ arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi | 2 + arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi | 104 ++++++++++++++ arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi | 127 +++++++++++++++++ arch/arm/dts/imx8qm-cgtqmx8.dts | 1 + arch/arm/dts/imx8qm-rom7720-a1.dts | 1 + arch/arm/dts/imx8qm-u-boot.dtsi | 133 ++++++++++++++++++ arch/arm/dts/imx8qxp-capricorn-u-boot.dtsi | 127 +++++++++++++++++ arch/arm/mach-imx/imx8/Kconfig | 8 ++ .../advantech/imx8qm_rom7720_a1/imximage.cfg | 4 +- board/congatec/cgtqmx8/imximage.cfg | 4 +- board/freescale/imx8qm_mek/README | 2 +- board/freescale/imx8qxp_mek/imximage.cfg | 3 +- board/siemens/capricorn/imximage.cfg | 2 +- configs/apalis-imx8_defconfig | 1 + configs/cgtqmx8_defconfig | 4 +- configs/colibri-imx8x_defconfig | 1 + configs/deneb_defconfig | 2 + configs/giedi_defconfig | 2 + configs/imx8qm_mek_defconfig | 2 + configs/imx8qm_rom7720_a1_4G_defconfig | 3 +- configs/imx8qxp_mek_defconfig | 2 + doc/board/advantech/imx8qm-rom7720-a1.rst | 3 +- doc/board/congatec/cgtqmx8.rst | 3 +- doc/board/nxp/imx8qxp_mek.rst | 2 +- 25 files changed, 632 insertions(+), 15 deletions(-) create mode 100644 arch/arm/dts/imx8qm-u-boot.dtsi

Switch to use binman to pack images
Signed-off-by: Oliver Graute oliver.graute@kococonnector.com --- Changes for v5: - renamed ftd to @fdt-SEQ
Changes for v4 - remove hardcoded dtb filename - added CONFIG_FIT_EXTERNAL_OFFSET
Changes for v3 - just rebased to master
Changes for v2 - just rebased to master
arch/arm/dts/imx8qm-rom7720-a1.dts | 1 + arch/arm/dts/imx8qm-u-boot.dtsi | 133 ++++++++++++++++++ arch/arm/mach-imx/imx8/Kconfig | 1 + .../advantech/imx8qm_rom7720_a1/imximage.cfg | 4 +- configs/imx8qm_rom7720_a1_4G_defconfig | 3 +- doc/board/advantech/imx8qm-rom7720-a1.rst | 3 +- 6 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 arch/arm/dts/imx8qm-u-boot.dtsi
diff --git a/arch/arm/dts/imx8qm-rom7720-a1.dts b/arch/arm/dts/imx8qm-rom7720-a1.dts index d1f2fff869..332d441c6d 100644 --- a/arch/arm/dts/imx8qm-rom7720-a1.dts +++ b/arch/arm/dts/imx8qm-rom7720-a1.dts @@ -10,6 +10,7 @@ /memreserve/ 0x80000000 0x00020000;
#include "fsl-imx8qm.dtsi" +#include "imx8qm-u-boot.dtsi"
/ { model = "Advantech iMX8QM Qseven series"; diff --git a/arch/arm/dts/imx8qm-u-boot.dtsi b/arch/arm/dts/imx8qm-u-boot.dtsi new file mode 100644 index 0000000000..9b382f4d11 --- /dev/null +++ b/arch/arm/dts/imx8qm-u-boot.dtsi @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2021 NXP + */ + +/ { + binman: binman { + multiple-images; + }; +}; + +&binman { + u-boot-spl-ddr { + align = <4>; + align-size = <4>; + filename = "u-boot-spl-ddr.bin"; + pad-byte = <0xff>; + + u-boot-spl { + align-end = <4>; + filename = "u-boot-spl.bin"; + }; + }; + + spl { + filename = "spl.bin"; + + mkimage { + args = "-n spl/u-boot-spl.cfgout -T imx8image -e 0x100000"; + + blob { + filename = "u-boot-spl-ddr.bin"; + }; + }; + }; + + itb { + filename = "u-boot.itb"; + + fit { + description = "Configuration to load ATF before U-Boot"; + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; + fit,fdt-list = "of-list"; + #address-cells = <1>; + + images { + uboot { + arch = "arm64"; + compression = "none"; + description = "U-Boot (64-bit)"; + load = <CONFIG_SYS_TEXT_BASE>; + type = "standalone"; + + uboot-blob { + filename = "u-boot-nodtb.bin"; + type = "blob-ext"; + }; + }; + + atf { + arch = "arm64"; + compression = "none"; + description = "ARM Trusted Firmware"; + entry = <0x00910000>; + load = <0x00091000>; + type = "firmware"; + + atf-blob { + filename = "bl31.bin"; + type = "atf-bl31"; + }; + }; + + scfw { + arch = "arm64"; + compression = "none"; + description = "System Controler Firmware"; + type = "firmware"; + + scfw_blob { + filename = "mx8qm-val-scfw-tcm.bin"; + type = "blob-ext"; + }; + }; + + seco { + arch = "arm64"; + compression = "none"; + description = "Seco Firmware"; + type = "firmware"; + + seco_blob { + filename = "mx8qm-ahab-container.img"; + type = "blob-ext"; + }; + }; + + @fdt-SEQ { + compression = "none"; + description = "NAME"; + type = "flat_dt"; + + uboot-fdt-blob { + filename = "u-boot.dtb"; + type = "blob-ext"; + }; + }; + }; + + configurations { + default = "@config-DEFAULT-SEQ"; + + binman_configuration: @config-SEQ { + description = "NAME"; + fdt = "fdt-SEQ"; + firmware = "uboot"; + loadables = "atf"; + }; + }; + }; + }; + + imx-boot { + filename = "flash.bin"; + pad-byte = <0x00>; + + spl { + filename = "spl.bin"; + offset = <0x0>; + type = "blob-ext"; + }; + }; +}; diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index abb03340d8..71abbb33ea 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -82,6 +82,7 @@ config TARGET_CONGA_QMX8
config TARGET_IMX8QM_ROM7720_A1 bool "Support i.MX8QM ROM-7720-A1" + select BINMAN select BOARD_LATE_INIT select SUPPORT_SPL select IMX8QM diff --git a/board/advantech/imx8qm_rom7720_a1/imximage.cfg b/board/advantech/imx8qm_rom7720_a1/imximage.cfg index 5ecde0c530..43035088e3 100644 --- a/board/advantech/imx8qm_rom7720_a1/imximage.cfg +++ b/board/advantech/imx8qm_rom7720_a1/imximage.cfg @@ -4,8 +4,8 @@ */
-/* Boot from SD, sector size 0x400 */ -BOOT_FROM SD 0x400 +BOOT_FROM sd + /* SoC type IMX8QM */ SOC_TYPE IMX8QM /* Append seco container image */ diff --git a/configs/imx8qm_rom7720_a1_4G_defconfig b/configs/imx8qm_rom7720_a1_4G_defconfig index 3b099761a9..4b7ed6df01 100644 --- a/configs/imx8qm_rom7720_a1_4G_defconfig +++ b/configs/imx8qm_rom7720_a1_4G_defconfig @@ -20,8 +20,9 @@ CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_SPL_LOAD_FIT=y -CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" +# CONFIG_USE_SPL_FIT_GENERATOR is not set CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTCOMMAND=y CONFIG_BOOTCOMMAND="mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else booti ${loadaddr} - ${fdt_addr}; fi" diff --git a/doc/board/advantech/imx8qm-rom7720-a1.rst b/doc/board/advantech/imx8qm-rom7720-a1.rst index bd4be1dbeb..953cf01fde 100644 --- a/doc/board/advantech/imx8qm-rom7720-a1.rst +++ b/doc/board/advantech/imx8qm-rom7720-a1.rst @@ -57,8 +57,7 @@ Build U-Boot $ export ATF_LOAD_ADDR=0x80000000 $ export BL33_LOAD_ADDR=0x80020000 $ make imx8qm_rom7720_a1_4G_defconfig - $ make u-boot.bin - $ make flash.bin + $ make
Flash the binary into the SD card ---------------------------------

Switch to use binman to pack images
Signed-off-by: Oliver Graute oliver.graute@kococonnector.com Reviewed-by: Fabio Estevam festevam@denx.de Reviewed-by: Simon Glass sjg@chromium.org Reviewed-by: Peng Fan peng.fan@nxp.com
--- Changes for v6 - added CONFIG_SPL_BINMAN_UBOOT_SYMBOLS is not set
Changes for v5 - added CONFIG_FIT_EXTERNAL_OFFSET
Changes for v4 - rebased on master
Changes for v3 -added Reviewed-by - rebased on master
arch/arm/dts/imx8qm-cgtqmx8.dts | 1 + arch/arm/mach-imx/imx8/Kconfig | 1 + board/congatec/cgtqmx8/imximage.cfg | 4 ++-- configs/cgtqmx8_defconfig | 4 +++- doc/board/congatec/cgtqmx8.rst | 3 +-- 5 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/arch/arm/dts/imx8qm-cgtqmx8.dts b/arch/arm/dts/imx8qm-cgtqmx8.dts index 555c357f6f..919d00644f 100644 --- a/arch/arm/dts/imx8qm-cgtqmx8.dts +++ b/arch/arm/dts/imx8qm-cgtqmx8.dts @@ -12,6 +12,7 @@ /memreserve/ 0x80000000 0x00020000;
#include "fsl-imx8qm.dtsi" +#include "imx8qm-u-boot.dtsi"
/ { model = "Congatec QMX8 Qseven series"; diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index a7e3af57dc..d423cf8563 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -76,6 +76,7 @@ config TARGET_IMX8QM_MEK
config TARGET_CONGA_QMX8 bool "Support congatec conga-QMX8 board" + select BINMAN select BOARD_LATE_INIT select SUPPORT_SPL select IMX8QM diff --git a/board/congatec/cgtqmx8/imximage.cfg b/board/congatec/cgtqmx8/imximage.cfg index 5ecde0c530..43035088e3 100644 --- a/board/congatec/cgtqmx8/imximage.cfg +++ b/board/congatec/cgtqmx8/imximage.cfg @@ -4,8 +4,8 @@ */
-/* Boot from SD, sector size 0x400 */ -BOOT_FROM SD 0x400 +BOOT_FROM sd + /* SoC type IMX8QM */ SOC_TYPE IMX8QM /* Append seco container image */ diff --git a/configs/cgtqmx8_defconfig b/configs/cgtqmx8_defconfig index ddc65a06b9..4d1dfe4212 100644 --- a/configs/cgtqmx8_defconfig +++ b/configs/cgtqmx8_defconfig @@ -20,8 +20,10 @@ CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_SPL_LOAD_FIT=y -CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" +# CONFIG_USE_SPL_FIT_GENERATOR is not set +# CONFIG_SPL_BINMAN_UBOOT_SYMBOLS is not set CONFIG_OF_BOARD_SETUP=y CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTCOMMAND=y diff --git a/doc/board/congatec/cgtqmx8.rst b/doc/board/congatec/cgtqmx8.rst index bccdef2f16..16711a844d 100644 --- a/doc/board/congatec/cgtqmx8.rst +++ b/doc/board/congatec/cgtqmx8.rst @@ -57,8 +57,7 @@ Build U-Boot $ export ATF_LOAD_ADDR=0x80000000 $ export BL33_LOAD_ADDR=0x80020000 $ make cgtqmx8_defconfig - $ make u-boot.bin - $ make flash.bin + $ make
Flash the binary into the SD card ---------------------------------

Switch to use binman pack images
Signed-off-by: Oliver Graute oliver.graute@kococonnector.com Reviewed-by: Peng Fan peng.fan@nxp.com --- arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi | 127 +++++++++++++++++++++++ arch/arm/mach-imx/imx8/Kconfig | 1 + board/freescale/imx8qxp_mek/imximage.cfg | 3 +- configs/imx8qxp_mek_defconfig | 2 + doc/board/nxp/imx8qxp_mek.rst | 2 +- 5 files changed, 132 insertions(+), 3 deletions(-)
diff --git a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi index ae037c7550..073a401a1c 100644 --- a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi @@ -3,6 +3,133 @@ * Copyright 2018, 2021 NXP */
+/ { + binman: binman { + multiple-images; + }; +}; + +&binman { + u-boot-spl-ddr { + align = <4>; + align-size = <4>; + filename = "u-boot-spl-ddr.bin"; + pad-byte = <0xff>; + + u-boot-spl { + align-end = <4>; + filename = "u-boot-spl.bin"; + }; + }; + + spl { + filename = "spl.bin"; + + mkimage { + args = "-n spl/u-boot-spl.cfgout -T imx8image -e 0x100000"; + + blob { + filename = "u-boot-spl-ddr.bin"; + }; + }; + }; + + itb { + filename = "u-boot.itb"; + + fit { + description = "Configuration to load ATF before U-Boot"; + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; + fit,fdt-list = "of-list"; + #address-cells = <1>; + + images { + uboot { + arch = "arm64"; + compression = "none"; + description = "U-Boot (64-bit)"; + load = <CONFIG_SYS_TEXT_BASE>; + type = "standalone"; + + uboot-blob { + filename = "u-boot-nodtb.bin"; + type = "blob-ext"; + }; + }; + + atf { + arch = "arm64"; + compression = "none"; + description = "ARM Trusted Firmware"; + entry = <0x00910000>; + load = <0x00091000>; + type = "firmware"; + + atf-blob { + filename = "bl31.bin"; + type = "atf-bl31"; + }; + }; + + scfw { + arch = "arm64"; + compression = "none"; + description = "System Controler Firmware"; + type = "firmware"; + + scfw_blob { + filename = "mx8qx-mek-scfw-tcm.bin"; + type = "blob-ext"; + }; + }; + + seco { + arch = "arm64"; + compression = "none"; + description = "Seco Firmware"; + type = "firmware"; + + seco_blob { + filename = "mx8qxc0-ahab-container.img"; + type = "blob-ext"; + }; + }; + + fdt { + type = "flat_dt"; + compression = "none"; + + uboot-fdt-blob { + filename = "u-boot.dtb"; + type = "blob-ext"; + }; + }; + }; + + configurations { + default = "conf"; + + conf { + fdt = "fdt"; + firmware = "uboot"; + loadables = "atf"; + }; + }; + }; + }; + + imx-boot { + filename = "flash.bin"; + pad-byte = <0x00>; + + spl { + filename = "spl.bin"; + offset = <0x0>; + type = "blob-ext"; + }; + }; +}; + &{/imx8qx-pm} {
u-boot,dm-spl; diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index d423cf8563..23a7fcf361 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -90,6 +90,7 @@ config TARGET_IMX8QM_ROM7720_A1
config TARGET_IMX8QXP_MEK bool "Support i.MX8QXP MEK board" + select BINMAN select BOARD_LATE_INIT select IMX8QXP select FSL_CAAM diff --git a/board/freescale/imx8qxp_mek/imximage.cfg b/board/freescale/imx8qxp_mek/imximage.cfg index 89a4736ab7..88d6955a9e 100644 --- a/board/freescale/imx8qxp_mek/imximage.cfg +++ b/board/freescale/imx8qxp_mek/imximage.cfg @@ -7,8 +7,7 @@ */
-/* Boot from SD, sector size 0x400 */ -BOOT_FROM SD 0x400 +BOOT_FROM sd /* SoC type IMX8QX */ SOC_TYPE IMX8QX /* Append seco container image */ diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig index 73600c5a8c..0e22f13c7f 100644 --- a/configs/imx8qxp_mek_defconfig +++ b/configs/imx8qxp_mek_defconfig @@ -23,6 +23,8 @@ CONFIG_SYS_LOAD_ADDR=0x80280000 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y +CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_OF_BOARD_SETUP=y CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOOTDELAY=3 diff --git a/doc/board/nxp/imx8qxp_mek.rst b/doc/board/nxp/imx8qxp_mek.rst index 215627cfa6..708db1952e 100644 --- a/doc/board/nxp/imx8qxp_mek.rst +++ b/doc/board/nxp/imx8qxp_mek.rst @@ -50,7 +50,7 @@ Build U-Boot .. code-block:: bash
$ make imx8qxp_mek_defconfig - $ make flash.bin + $ make
Flash the binary into the SD card ---------------------------------

Signed-off-by: Oliver Graute oliver.graute@kococonnector.com --- arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi | 2 ++ arch/arm/mach-imx/imx8/Kconfig | 1 + board/freescale/imx8qm_mek/README | 2 +- configs/imx8qm_2ek_defconfig | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi b/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi index a95209e141..eefdccf992 100644 --- a/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi @@ -3,6 +3,8 @@ * Copyright 2018, 2021 NXP */
+#include "imx8qm-u-boot.dtsi" + &{/imx8qm-pm} {
u-boot,dm-spl; diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index 23a7fcf361..4ccbabf506 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -68,6 +68,7 @@ config TARGET_GIEDI
config TARGET_IMX8QM_MEK bool "Support i.MX8QM MEK board" + select BINMAN select BOARD_LATE_INIT select IMX8QM select FSL_CAAM diff --git a/board/freescale/imx8qm_mek/README b/board/freescale/imx8qm_mek/README index 570ed7e210..b1a4c6cc82 100644 --- a/board/freescale/imx8qm_mek/README +++ b/board/freescale/imx8qm_mek/README @@ -40,7 +40,7 @@ And copy the following firmwares to U-Boot folder: Build U-Boot ============ $ make imx8qm_mek_defconfig -$ make flash.bin +$ make
Flash the binary into the SD card ================================= diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig index b973b809be..25b51cf1ec 100644 --- a/configs/imx8qm_mek_defconfig +++ b/configs/imx8qm_mek_defconfig @@ -23,6 +23,8 @@ CONFIG_SYS_LOAD_ADDR=0x80280000 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y +CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_OF_BOARD_SETUP=y CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOOTDELAY=3

Signed-off-by: Oliver Graute oliver.graute@kococonnector.com --- arch/arm/dts/imx8qxp-capricorn-u-boot.dtsi | 127 +++++++++++++++++++++ arch/arm/mach-imx/imx8/Kconfig | 1 + board/siemens/capricorn/imximage.cfg | 2 +- configs/giedi_defconfig | 2 + 4 files changed, 131 insertions(+), 1 deletion(-)
diff --git a/arch/arm/dts/imx8qxp-capricorn-u-boot.dtsi b/arch/arm/dts/imx8qxp-capricorn-u-boot.dtsi index 1cf58fc3f9..020f58fd0f 100644 --- a/arch/arm/dts/imx8qxp-capricorn-u-boot.dtsi +++ b/arch/arm/dts/imx8qxp-capricorn-u-boot.dtsi @@ -3,6 +3,133 @@ * Copyright 2019 Siemens AG */
+/ { + binman: binman { + multiple-images; + }; +}; + +&binman { + u-boot-spl-ddr { + align = <4>; + align-size = <4>; + filename = "u-boot-spl-ddr.bin"; + pad-byte = <0xff>; + + u-boot-spl { + align-end = <4>; + filename = "u-boot-spl.bin"; + }; + }; + + spl { + filename = "spl.bin"; + + mkimage { + args = "-n spl/u-boot-spl.cfgout -T imx8image -e 0x100000"; + + blob { + filename = "u-boot-spl-ddr.bin"; + }; + }; + }; + + itb { + filename = "u-boot.itb"; + + fit { + description = "Configuration to load ATF before U-Boot"; + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; + fit,fdt-list = "of-list"; + #address-cells = <1>; + + images { + uboot { + arch = "arm64"; + compression = "none"; + description = "U-Boot (64-bit)"; + load = <CONFIG_SYS_TEXT_BASE>; + type = "standalone"; + + uboot-blob { + filename = "u-boot-nodtb.bin"; + type = "blob-ext"; + }; + }; + + atf { + arch = "arm64"; + compression = "none"; + description = "ARM Trusted Firmware"; + entry = <0x00910000>; + load = <0x00091000>; + type = "firmware"; + + atf-blob { + filename = "bl31.bin"; + type = "atf-bl31"; + }; + }; + + scfw { + arch = "arm64"; + compression = "none"; + description = "System Controler Firmware"; + type = "firmware"; + + scfw_blob { + filename = "mx8qx-mek-scfw-tcm.bin"; + type = "blob-ext"; + }; + }; + + seco { + arch = "arm64"; + compression = "none"; + description = "Seco Firmware"; + type = "firmware"; + + seco_blob { + filename = "mx8qxc0-ahab-container.img"; + type = "blob-ext"; + }; + }; + + fdt { + type = "flat_dt"; + compression = "none"; + + uboot-fdt-blob { + filename = "u-boot.dtb"; + type = "blob-ext"; + }; + }; + }; + + configurations { + default = "conf"; + + conf { + fdt = "fdt"; + firmware = "uboot"; + loadables = "atf"; + }; + }; + }; + }; + + imx-boot { + filename = "flash.bin"; + pad-byte = <0x00>; + + spl { + filename = "spl.bin"; + offset = <0x0>; + type = "blob-ext"; + }; + }; +}; + &{/imx8qx-pm} {
u-boot,dm-spl; diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index 4ccbabf506..63d99ea23e 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -62,6 +62,7 @@ config TARGET_DENEB
config TARGET_GIEDI bool "Support i.MX8QXP Capricorn Giedi board" + select BINMAN select BOARD_LATE_INIT select FACTORYSET select IMX8QXP diff --git a/board/siemens/capricorn/imximage.cfg b/board/siemens/capricorn/imximage.cfg index fa871bac21..4350e2967c 100644 --- a/board/siemens/capricorn/imximage.cfg +++ b/board/siemens/capricorn/imximage.cfg @@ -8,7 +8,7 @@
/* Boot from SD, sector size 0x400 */ -BOOT_FROM SD 0x400 +BOOT_FROM sd /* SoC type IMX8QX */ SOC_TYPE IMX8QX /* Append seco container image */ diff --git a/configs/giedi_defconfig b/configs/giedi_defconfig index ab7fa51172..fdc6b0b2b3 100644 --- a/configs/giedi_defconfig +++ b/configs/giedi_defconfig @@ -26,6 +26,8 @@ CONFIG_SYS_LOAD_ADDR=0x80280000 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y +CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_OF_BOARD_SETUP=y CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOOTDELAY=3

Signed-off-by: Oliver Graute oliver.graute@kococonnector.com Reviewed-by: Peng Fan peng.fan@nxp.com --- arch/arm/mach-imx/imx8/Kconfig | 1 + configs/deneb_defconfig | 2 ++ 2 files changed, 3 insertions(+)
diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index 63d99ea23e..018b87b85b 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -56,6 +56,7 @@ config TARGET_COLIBRI_IMX8X
config TARGET_DENEB bool "Support i.MX8QXP Capricorn Deneb board" + select BINMAN select BOARD_LATE_INIT select FACTORYSET select IMX8QXP diff --git a/configs/deneb_defconfig b/configs/deneb_defconfig index 2497b5d922..22efc998f6 100644 --- a/configs/deneb_defconfig +++ b/configs/deneb_defconfig @@ -26,6 +26,8 @@ CONFIG_SYS_LOAD_ADDR=0x80280000 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y +CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_OF_BOARD_SETUP=y CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOOTDELAY=3

Signed-off-by: Oliver Graute oliver.graute@kococonnector.com --- arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi | 104 +++++++++++++++++++ arch/arm/mach-imx/imx8/Kconfig | 1 + configs/colibri-imx8x_defconfig | 1 + 3 files changed, 106 insertions(+)
diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi index 322429a98a..a9b92c803c 100644 --- a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi @@ -2,6 +2,110 @@ /* * Copyright 2019 Toradex AG */ +/ { + binman: binman { + multiple-images; + }; +}; + +&binman { + + itb { + filename = "u-boot.itb"; + + fit { + description = "Configuration to load ATF before U-Boot"; + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; + fit,fdt-list = "of-list"; + #address-cells = <1>; + + images { + uboot { + arch = "arm64"; + compression = "none"; + description = "U-Boot (64-bit)"; + load = <CONFIG_SYS_TEXT_BASE>; + type = "standalone"; + + uboot-blob { + filename = "u-boot-nodtb.bin"; + type = "blob-ext"; + }; + }; + + atf { + arch = "arm64"; + compression = "none"; + description = "ARM Trusted Firmware"; + entry = <0x00910000>; + load = <0x00091000>; + type = "firmware"; + + atf-blob { + filename = "bl31.bin"; + type = "atf-bl31"; + }; + }; + + scfw { + arch = "arm64"; + compression = "none"; + description = "System Controler Firmware"; + type = "firmware"; + + scfw_blob { + filename = "mx8qx-colibri-scfw-tcm.bin"; + type = "blob-ext"; + }; + }; + + seco { + arch = "arm64"; + compression = "none"; + description = "Seco Firmware"; + type = "firmware"; + + seco_blob { + filename = "mx8qx-ahab-container.img"; + type = "blob-ext"; + }; + }; + + fdt { + type = "flat_dt"; + compression = "none"; + + uboot-fdt-blob { + filename = "u-boot.dtb"; + type = "blob-ext"; + }; + }; + }; + + configurations { + default = "conf"; + + conf { + fdt = "fdt"; + firmware = "uboot"; + loadables = "atf"; + }; + }; + }; + }; + + imx-boot { + filename = "flash.bin"; + pad-byte = <0x00>; + + spl { + filename = "spl.bin"; + offset = <0x0>; + type = "blob-ext"; + }; + }; + +};
&{/imx8qx-pm} {
diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index 018b87b85b..37d12d1895 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -51,6 +51,7 @@ config TARGET_APALIS_IMX8
config TARGET_COLIBRI_IMX8X bool "Support Colibri iMX8X module" + select BINMAN select BOARD_LATE_INIT select IMX8QXP
diff --git a/configs/colibri-imx8x_defconfig b/configs/colibri-imx8x_defconfig index 1a207f99d0..2697775b44 100644 --- a/configs/colibri-imx8x_defconfig +++ b/configs/colibri-imx8x_defconfig @@ -17,6 +17,7 @@ CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_VERBOSE=y CONFIG_LOG=y # CONFIG_DISPLAY_BOARDINFO is not set

Signed-off-by: Oliver Graute oliver.graute@kococonnector.com --- arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi | 104 +++++++++++++++++++++ arch/arm/mach-imx/imx8/Kconfig | 1 + configs/apalis-imx8_defconfig | 1 + 3 files changed, 106 insertions(+)
diff --git a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi index 956d724979..587b6496a9 100644 --- a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi @@ -3,6 +3,110 @@ * Copyright 2019 Toradex AG */
+/ { + binman: binman { + multiple-images; + }; +}; + +&binman { + + itb { + filename = "u-boot.itb"; + + fit { + description = "Configuration to load ATF before U-Boot"; + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; + fit,fdt-list = "of-list"; + #address-cells = <1>; + + images { + uboot { + arch = "arm64"; + compression = "none"; + description = "U-Boot (64-bit)"; + load = <CONFIG_SYS_TEXT_BASE>; + type = "standalone"; + + uboot-blob { + filename = "u-boot-nodtb.bin"; + type = "blob-ext"; + }; + }; + + atf { + arch = "arm64"; + compression = "none"; + description = "ARM Trusted Firmware"; + entry = <0x00910000>; + load = <0x00091000>; + type = "firmware"; + + atf-blob { + filename = "bl31.bin"; + type = "atf-bl31"; + }; + }; + + scfw { + arch = "arm64"; + compression = "none"; + description = "System Controler Firmware"; + type = "firmware"; + + scfw_blob { + filename = "mx8qm-apalis-scfw-tcm.bin"; + type = "blob-ext"; + }; + }; + + seco { + arch = "arm64"; + compression = "none"; + description = "Seco Firmware"; + type = "firmware"; + + seco_blob { + filename = "ahab-container.img"; + type = "blob-ext"; + }; + }; + + fdt { + type = "flat_dt"; + compression = "none"; + + uboot-fdt-blob { + filename = "u-boot.dtb"; + type = "blob-ext"; + }; + }; + }; + + configurations { + default = "conf"; + + conf { + fdt = "fdt"; + firmware = "uboot"; + loadables = "atf"; + }; + }; + }; + }; + + imx-boot { + filename = "flash.bin"; + pad-byte = <0x00>; + + spl { + filename = "spl.bin"; + offset = <0x0>; + type = "blob-ext"; + }; + }; +}; + &mu { u-boot,dm-pre-proper; }; diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig index 37d12d1895..91bd888308 100644 --- a/arch/arm/mach-imx/imx8/Kconfig +++ b/arch/arm/mach-imx/imx8/Kconfig @@ -46,6 +46,7 @@ choice
config TARGET_APALIS_IMX8 bool "Support Apalis iMX8 module" + select BINMAN select BOARD_LATE_INIT select IMX8QM
diff --git a/configs/apalis-imx8_defconfig b/configs/apalis-imx8_defconfig index 32e105a557..0c331b62cb 100644 --- a/configs/apalis-imx8_defconfig +++ b/configs/apalis-imx8_defconfig @@ -17,6 +17,7 @@ CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000 CONFIG_REMAKE_ELF=y CONFIG_FIT=y +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_VERBOSE=y CONFIG_OF_SYSTEM_SETUP=y CONFIG_LOG=y

On Wed, Nov 2, 2022 at 12:59 PM Oliver Graute oliver.graute@kococonnector.com wrote:
Please add a commit log.
Signed-off-by: Oliver Graute oliver.graute@kococonnector.com
+&binman {
itb {
filename = "u-boot.itb";
fit {
description = "Configuration to load ATF before U-Boot";
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
Can't all boards use the common the binman nodes from arch/arm/dts/imx8qm-u-boot.dtsi instead?

On 02/11/22, Fabio Estevam wrote:
On Wed, Nov 2, 2022 at 12:59 PM Oliver Graute oliver.graute@kococonnector.com wrote:
Please add a commit log.
ok
Signed-off-by: Oliver Graute oliver.graute@kococonnector.com
+&binman {
itb {
filename = "u-boot.itb";
fit {
description = "Configuration to load ATF before U-Boot";
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
Can't all boards use the common the binman nodes from arch/arm/dts/imx8qm-u-boot.dtsi instead?
I'am about to try that but I run into the following error:
binman: Filename 'spl/u-boot-spl.bin' not found in input path (.,.,./board/toradex/apalis-imx8,arch/arm/dts) (cwd='/home/graute/u-boot-upstream') Makefile:1109: recipe for target 'all' failed make: *** [all] Error 1
The error disappear if I remove binman/u-boot-spl-ddr and binman/spl node in the common file.
So some of these boards needs the binman/u-boot-spl-ddr and binman/spl node and others not. What is the proper solution to deal with this difference here?
Best regards,
Oliver

Hi Oliver,
On Fri, Nov 4, 2022 at 9:39 AM Oliver Graute oliver.graute@gmail.com wrote:
Can't all boards use the common the binman nodes from arch/arm/dts/imx8qm-u-boot.dtsi instead?
I'am about to try that but I run into the following error:
binman: Filename 'spl/u-boot-spl.bin' not found in input path (.,.,./board/toradex/apalis-imx8,arch/arm/dts) (cwd='/home/graute/u-boot-upstream') Makefile:1109: recipe for target 'all' failed make: *** [all] Error 1
The error disappear if I remove binman/u-boot-spl-ddr and binman/spl node in the common file.
So some of these boards needs the binman/u-boot-spl-ddr and binman/spl node and others not. What is the proper solution to deal with this difference here?
Looking inside configs/apalis-imx8_defconfig, I see it does not use SPL. That's why 'spl/u-boot-spl.bin' is not present.
I think you should protect the binman/u-boot-spl-ddr and binman/spl nodes by adding #ifdef CONFIG_SPL.

On 04/11/22, Fabio Estevam wrote:
Hi Oliver,
On Fri, Nov 4, 2022 at 9:39 AM Oliver Graute oliver.graute@gmail.com wrote:
Can't all boards use the common the binman nodes from arch/arm/dts/imx8qm-u-boot.dtsi instead?
I'am about to try that but I run into the following error:
binman: Filename 'spl/u-boot-spl.bin' not found in input path (.,.,./board/toradex/apalis-imx8,arch/arm/dts) (cwd='/home/graute/u-boot-upstream') Makefile:1109: recipe for target 'all' failed make: *** [all] Error 1
The error disappear if I remove binman/u-boot-spl-ddr and binman/spl node in the common file.
So some of these boards needs the binman/u-boot-spl-ddr and binman/spl node and others not. What is the proper solution to deal with this difference here?
Looking inside configs/apalis-imx8_defconfig, I see it does not use SPL. That's why 'spl/u-boot-spl.bin' is not present.
I think you should protect the binman/u-boot-spl-ddr and binman/spl nodes by adding #ifdef CONFIG_SPL.
ok thx
Best Regards,
Oliver

On 04/11/22, Oliver Graute wrote:
On 02/11/22, Fabio Estevam wrote:
On Wed, Nov 2, 2022 at 12:59 PM Oliver Graute oliver.graute@kococonnector.com wrote:
Please add a commit log.
ok
Signed-off-by: Oliver Graute oliver.graute@kococonnector.com
+&binman {
itb {
filename = "u-boot.itb";
fit {
description = "Configuration to load ATF before U-Boot";
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
Can't all boards use the common the binman nodes from arch/arm/dts/imx8qm-u-boot.dtsi instead?
I'am about to try that but I run into the following error:
binman: Filename 'spl/u-boot-spl.bin' not found in input path (.,.,./board/toradex/apalis-imx8,arch/arm/dts) (cwd='/home/graute/u-boot-upstream') Makefile:1109: recipe for target 'all' failed make: *** [all] Error 1
The error disappear if I remove binman/u-boot-spl-ddr and binman/spl node in the common file.
So some of these boards needs the binman/u-boot-spl-ddr and binman/spl node and others not. What is the proper solution to deal with this difference here?
according to this commit there are indeed different requirements:
commit 8e0d963b19adfb98e8c7c941f44e0f36e9f91303 Author: Peng Fan peng.fan@nxp.com Date: Fri Dec 21 06:21:26 2018 +0000
dts: imx8qxp-mek: introduce u-boot dtsi
Introduce u-boot dtsi for i.MX8QXP MEK board. we do not introduce a common dtsi for SoC, because different board has different requirement on which needs to be enabled in SPL DM.
So any proposal?
Best regards,
Oliver

On Wed, Nov 2, 2022 at 12:57 PM Oliver Graute oliver.graute@kococonnector.com wrote:
This patchsets switches the remaining imx8 boards to binman.
Oliver Graute (8): imx: imx8qm-rom7720: switch to binman imx: imx8qm: cgtqmx8: switch to binman imx: imx8qxp: imx8qxp_mek switch to binman imx: imx8qm: imx8qm_mek switch to binman imx: imx8qxp: giedi switch to binman imx: imx8qxp: deneb switch to binman imx: imx8x: colibri: switch to binman imx: imx8: apalis: switch to binman
Your patches are not numbered. I expect to see 1/8, 2/8, ...8/8.
git format-patch -8 does the trick.
participants (3)
-
Fabio Estevam
-
Oliver Graute
-
Oliver Graute