Message ID | 20211022024220.23584-2-peng.fan@oss.nxp.com |
---|---|
State | Accepted |
Commit | c1ecd03d90c72e4352ef9e3ad3c9ebb07305196a |
Delegated to: | Tom Rini |
Headers | show |
Series | imx8mq: switch to binman | expand |
On Fri, Oct 22, 2021 at 10:42:16AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > Switch to use binman to pack images > > Signed-off-by: Peng Fan <peng.fan@nxp.com> I'm unsure how to reply to this. On the one hand I really like to see this go in, on the other hand this changes the expectation of what flash.bin is. We had the same discussion for i.MX8MM. Because historically, flash.bin is SPL+U-Boot.itb, and for i.MX8MM people have changed the binman config to generate a single bootable file again: 028abfd9b1576b45cf756b9a0c978cfe17906314 So, I would ask you to adjust the imx8mq-u-boot.dts changes in the same way as done for i.MX8MM. You should be able to see the differences by diffing e.g. these files: diff -u arch/arm/dts/imx8mq-u-boot.dtsi arch/arm/dts/imx8mm-evk-u-boot.dtsi > --- > arch/arm/dts/imx8mq-evk-u-boot.dtsi | 2 + > arch/arm/dts/imx8mq-u-boot.dtsi | 122 ++++++++++++++++++++++++ > arch/arm/mach-imx/imx8m/Kconfig | 1 + > board/freescale/imx8mq_evk/Kconfig | 2 +- > board/freescale/imx8mq_evk/imximage.cfg | 11 +++ > configs/imx8mq_evk_defconfig | 2 +- > 6 files changed, 138 insertions(+), 2 deletions(-) > create mode 100644 arch/arm/dts/imx8mq-u-boot.dtsi > create mode 100644 board/freescale/imx8mq_evk/imximage.cfg > > diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi b/arch/arm/dts/imx8mq-evk-u-boot.dtsi > index 2cfc12b7e0..6f9c81462e 100644 > --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi > +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi > @@ -1,5 +1,7 @@ > // SPDX-License-Identifier: (GPL-2.0 OR MIT) > > +#include "imx8mq-u-boot.dtsi" > + > &usdhc1 { > mmc-hs400-1_8v; > }; > diff --git a/arch/arm/dts/imx8mq-u-boot.dtsi b/arch/arm/dts/imx8mq-u-boot.dtsi > new file mode 100644 > index 0000000000..2c10e9b645 > --- /dev/null > +++ b/arch/arm/dts/imx8mq-u-boot.dtsi > @@ -0,0 +1,122 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright 2021 NXP > + */ > + > +/ { > + binman: binman { > + multiple-images; > + }; > + > +}; > + > +&binman { > + u-boot-spl-ddr { > + filename = "u-boot-spl-ddr.bin"; > + pad-byte = <0xff>; > + align-size = <4>; > + align = <4>; > + > + u-boot-spl { > + align-end = <4>; > + }; > + > + blob_1: blob-ext@1 { > + filename = "lpddr4_pmu_train_1d_imem.bin"; > + size = <0x8000>; > + }; > + > + blob_2: blob-ext@2 { > + filename = "lpddr4_pmu_train_1d_dmem.bin"; > + size = <0x4000>; > + }; > + > + blob_3: blob-ext@3 { > + filename = "lpddr4_pmu_train_2d_imem.bin"; > + size = <0x8000>; > + }; > + > + blob_4: blob-ext@4 { > + filename = "lpddr4_pmu_train_2d_dmem.bin"; > + size = <0x4000>; > + }; > + }; > + > + signed_hdmi { > + filename = "signed_hdmi.bin"; > + > + blob_5: blob-ext@5 { > + filename = "signed_hdmi_imx8m.bin"; > + }; > + }; > + > + flash { > + mkimage { > + args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000"; > + > + blob { > + filename = "u-boot-spl-ddr.bin"; > + }; > + > + }; > + > + }; > + > + itb { > + filename = "u-boot.itb"; > + > + fit { > + description = "Configuration to load ATF before U-Boot"; > + #address-cells = <1>; > + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; > + > + images { > + uboot { > + description = "U-Boot (64-bit)"; > + type = "standalone"; > + arch = "arm64"; > + compression = "none"; > + load = <CONFIG_SYS_TEXT_BASE>; > + > + uboot_blob: blob-ext { > + filename = "u-boot-nodtb.bin"; > + }; > + }; > + > + atf { > + description = "ARM Trusted Firmware"; > + type = "firmware"; > + arch = "arm64"; > + compression = "none"; > + load = <0x910000>; > + entry = <0x910000>; > + > + atf_blob: blob-ext { > + filename = "bl31.bin"; > + }; > + }; > + > + fdt { > + description = "NAME"; > + type = "flat_dt"; > + compression = "none"; > + > + uboot_fdt_blob: blob-ext { > + filename = "u-boot.dtb"; > + }; > + }; > + }; > + > + configurations { > + default = "conf"; > + > + conf { > + description = "NAME"; > + firmware = "uboot"; > + loadables = "atf"; > + fdt = "fdt"; > + }; > + }; > + }; > + }; > +}; > diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig > index 276b8bd974..c556e712b7 100644 > --- a/arch/arm/mach-imx/imx8m/Kconfig > +++ b/arch/arm/mach-imx/imx8m/Kconfig > @@ -36,6 +36,7 @@ config TARGET_IMX8MQ_CM > > config TARGET_IMX8MQ_EVK > bool "imx8mq_evk" > + select BINMAN > select IMX8MQ > select IMX8M_LPDDR4 > > diff --git a/board/freescale/imx8mq_evk/Kconfig b/board/freescale/imx8mq_evk/Kconfig > index c4d20ad7c7..a7c49744b3 100644 > --- a/board/freescale/imx8mq_evk/Kconfig > +++ b/board/freescale/imx8mq_evk/Kconfig > @@ -10,6 +10,6 @@ config SYS_CONFIG_NAME > default "imx8mq_evk" > > config IMX_CONFIG > - default "arch/arm/mach-imx/imx8m/imximage.cfg" > + default "board/freescale/imx8mq_evk/imximage.cfg" > > endif > diff --git a/board/freescale/imx8mq_evk/imximage.cfg b/board/freescale/imx8mq_evk/imximage.cfg > new file mode 100644 > index 0000000000..74f12b30d2 > --- /dev/null > +++ b/board/freescale/imx8mq_evk/imximage.cfg > @@ -0,0 +1,11 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright 2021 NXP > + */ > + > +#define __ASSEMBLY__ > + > +FIT > +BOOT_FROM sd > +SIGNED_HDMI signed_hdmi.bin > +LOADER mkimage.flash.mkimage 0x7e1000 > diff --git a/configs/imx8mq_evk_defconfig b/configs/imx8mq_evk_defconfig > index 62fe6f1523..5970d8c164 100644 > --- a/configs/imx8mq_evk_defconfig > +++ b/configs/imx8mq_evk_defconfig > @@ -18,7 +18,7 @@ CONFIG_SYS_LOAD_ADDR=0x40480000 > 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_BOARD_EARLY_INIT_F=y > CONFIG_BOARD_LATE_INIT=y > CONFIG_SPL_BOARD_INIT=y > -- > 2.30.0 >
Hi Peng, Am Fr., 22. Okt. 2021 um 04:07 Uhr schrieb Peng Fan (OSS) <peng.fan@oss.nxp.com>: > > From: Peng Fan <peng.fan@nxp.com> > > Switch to use binman to pack images After switching to binman you will hit the same issue I have in the u-boot CI. The mkimage step will fail because the hdmi firmware blob can not be found [1]. There is already a discuusion ongoing how to fix that [2]. [1] https://lists.denx.de/pipermail/u-boot/2021-October/464338.html [2] https://lists.denx.de/pipermail/u-boot/2021-November/466181.html > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > arch/arm/dts/imx8mq-evk-u-boot.dtsi | 2 + > arch/arm/dts/imx8mq-u-boot.dtsi | 122 ++++++++++++++++++++++++ > arch/arm/mach-imx/imx8m/Kconfig | 1 + > board/freescale/imx8mq_evk/Kconfig | 2 +- > board/freescale/imx8mq_evk/imximage.cfg | 11 +++ > configs/imx8mq_evk_defconfig | 2 +- > 6 files changed, 138 insertions(+), 2 deletions(-) > create mode 100644 arch/arm/dts/imx8mq-u-boot.dtsi > create mode 100644 board/freescale/imx8mq_evk/imximage.cfg > > diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi b/arch/arm/dts/imx8mq-evk-u-boot.dtsi > index 2cfc12b7e0..6f9c81462e 100644 > --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi > +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi > @@ -1,5 +1,7 @@ > // SPDX-License-Identifier: (GPL-2.0 OR MIT) > > +#include "imx8mq-u-boot.dtsi" > + > &usdhc1 { > mmc-hs400-1_8v; > }; > diff --git a/arch/arm/dts/imx8mq-u-boot.dtsi b/arch/arm/dts/imx8mq-u-boot.dtsi > new file mode 100644 > index 0000000000..2c10e9b645 > --- /dev/null > +++ b/arch/arm/dts/imx8mq-u-boot.dtsi > @@ -0,0 +1,122 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright 2021 NXP > + */ > + > +/ { > + binman: binman { > + multiple-images; > + }; > + > +}; > + > +&binman { > + u-boot-spl-ddr { > + filename = "u-boot-spl-ddr.bin"; > + pad-byte = <0xff>; > + align-size = <4>; > + align = <4>; > + > + u-boot-spl { > + align-end = <4>; > + }; > + > + blob_1: blob-ext@1 { > + filename = "lpddr4_pmu_train_1d_imem.bin"; > + size = <0x8000>; > + }; > + > + blob_2: blob-ext@2 { > + filename = "lpddr4_pmu_train_1d_dmem.bin"; > + size = <0x4000>; > + }; > + > + blob_3: blob-ext@3 { > + filename = "lpddr4_pmu_train_2d_imem.bin"; > + size = <0x8000>; > + }; > + > + blob_4: blob-ext@4 { > + filename = "lpddr4_pmu_train_2d_dmem.bin"; > + size = <0x4000>; > + }; > + }; > + > + signed_hdmi { > + filename = "signed_hdmi.bin"; > + > + blob_5: blob-ext@5 { > + filename = "signed_hdmi_imx8m.bin"; > + }; > + }; > + > + flash { > + mkimage { > + args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000"; > + > + blob { > + filename = "u-boot-spl-ddr.bin"; > + }; > + > + }; > + > + }; > + > + itb { > + filename = "u-boot.itb"; > + > + fit { > + description = "Configuration to load ATF before U-Boot"; > + #address-cells = <1>; > + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; > + > + images { > + uboot { > + description = "U-Boot (64-bit)"; > + type = "standalone"; > + arch = "arm64"; > + compression = "none"; > + load = <CONFIG_SYS_TEXT_BASE>; > + > + uboot_blob: blob-ext { > + filename = "u-boot-nodtb.bin"; > + }; > + }; > + > + atf { > + description = "ARM Trusted Firmware"; > + type = "firmware"; > + arch = "arm64"; > + compression = "none"; > + load = <0x910000>; > + entry = <0x910000>; > + > + atf_blob: blob-ext { > + filename = "bl31.bin"; > + }; > + }; > + > + fdt { > + description = "NAME"; > + type = "flat_dt"; > + compression = "none"; > + > + uboot_fdt_blob: blob-ext { > + filename = "u-boot.dtb"; > + }; > + }; > + }; > + > + configurations { > + default = "conf"; > + > + conf { > + description = "NAME"; > + firmware = "uboot"; > + loadables = "atf"; > + fdt = "fdt"; > + }; > + }; > + }; > + }; > +}; > diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig > index 276b8bd974..c556e712b7 100644 > --- a/arch/arm/mach-imx/imx8m/Kconfig > +++ b/arch/arm/mach-imx/imx8m/Kconfig > @@ -36,6 +36,7 @@ config TARGET_IMX8MQ_CM > > config TARGET_IMX8MQ_EVK > bool "imx8mq_evk" > + select BINMAN > select IMX8MQ > select IMX8M_LPDDR4 > > diff --git a/board/freescale/imx8mq_evk/Kconfig b/board/freescale/imx8mq_evk/Kconfig > index c4d20ad7c7..a7c49744b3 100644 > --- a/board/freescale/imx8mq_evk/Kconfig > +++ b/board/freescale/imx8mq_evk/Kconfig > @@ -10,6 +10,6 @@ config SYS_CONFIG_NAME > default "imx8mq_evk" > > config IMX_CONFIG > - default "arch/arm/mach-imx/imx8m/imximage.cfg" > + default "board/freescale/imx8mq_evk/imximage.cfg" > > endif > diff --git a/board/freescale/imx8mq_evk/imximage.cfg b/board/freescale/imx8mq_evk/imximage.cfg > new file mode 100644 > index 0000000000..74f12b30d2 > --- /dev/null > +++ b/board/freescale/imx8mq_evk/imximage.cfg > @@ -0,0 +1,11 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright 2021 NXP > + */ > + > +#define __ASSEMBLY__ > + > +FIT > +BOOT_FROM sd > +SIGNED_HDMI signed_hdmi.bin > +LOADER mkimage.flash.mkimage 0x7e1000 > diff --git a/configs/imx8mq_evk_defconfig b/configs/imx8mq_evk_defconfig > index 62fe6f1523..5970d8c164 100644 > --- a/configs/imx8mq_evk_defconfig > +++ b/configs/imx8mq_evk_defconfig > @@ -18,7 +18,7 @@ CONFIG_SYS_LOAD_ADDR=0x40480000 > 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_BOARD_EARLY_INIT_F=y > CONFIG_BOARD_LATE_INIT=y > CONFIG_SPL_BOARD_INIT=y > -- > 2.30.0 >
On 2021/11/11 22:41, Patrick Wildt wrote: > On Fri, Oct 22, 2021 at 10:42:16AM +0800, Peng Fan (OSS) wrote: >> From: Peng Fan <peng.fan@nxp.com> >> >> Switch to use binman to pack images >> >> Signed-off-by: Peng Fan <peng.fan@nxp.com> > > I'm unsure how to reply to this. On the one hand I really like to see > this go in, on the other hand this changes the expectation of what > flash.bin is. We had the same discussion for i.MX8MM. > > Because historically, flash.bin is SPL+U-Boot.itb, and for i.MX8MM > people have changed the binman config to generate a single bootable > file again: 028abfd9b1576b45cf756b9a0c978cfe17906314 > > So, I would ask you to adjust the imx8mq-u-boot.dts changes in the same > way as done for i.MX8MM. You should be able to see the differences > by diffing e.g. these files: ok, thanks for pointing this to me, I'll modify the file to output a single flash.bin as i.MX8MM. THanks, Peng. > > diff -u arch/arm/dts/imx8mq-u-boot.dtsi arch/arm/dts/imx8mm-evk-u-boot.dtsi > >> --- >> arch/arm/dts/imx8mq-evk-u-boot.dtsi | 2 + >> arch/arm/dts/imx8mq-u-boot.dtsi | 122 ++++++++++++++++++++++++ >> arch/arm/mach-imx/imx8m/Kconfig | 1 + >> board/freescale/imx8mq_evk/Kconfig | 2 +- >> board/freescale/imx8mq_evk/imximage.cfg | 11 +++ >> configs/imx8mq_evk_defconfig | 2 +- >> 6 files changed, 138 insertions(+), 2 deletions(-) >> create mode 100644 arch/arm/dts/imx8mq-u-boot.dtsi >> create mode 100644 board/freescale/imx8mq_evk/imximage.cfg >> >> diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi b/arch/arm/dts/imx8mq-evk-u-boot.dtsi >> index 2cfc12b7e0..6f9c81462e 100644 >> --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi >> +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi >> @@ -1,5 +1,7 @@ >> // SPDX-License-Identifier: (GPL-2.0 OR MIT) >> >> +#include "imx8mq-u-boot.dtsi" >> + >> &usdhc1 { >> mmc-hs400-1_8v; >> }; >> diff --git a/arch/arm/dts/imx8mq-u-boot.dtsi b/arch/arm/dts/imx8mq-u-boot.dtsi >> new file mode 100644 >> index 0000000000..2c10e9b645 >> --- /dev/null >> +++ b/arch/arm/dts/imx8mq-u-boot.dtsi >> @@ -0,0 +1,122 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> +/* >> + * Copyright 2021 NXP >> + */ >> + >> +/ { >> + binman: binman { >> + multiple-images; >> + }; >> + >> +}; >> + >> +&binman { >> + u-boot-spl-ddr { >> + filename = "u-boot-spl-ddr.bin"; >> + pad-byte = <0xff>; >> + align-size = <4>; >> + align = <4>; >> + >> + u-boot-spl { >> + align-end = <4>; >> + }; >> + >> + blob_1: blob-ext@1 { >> + filename = "lpddr4_pmu_train_1d_imem.bin"; >> + size = <0x8000>; >> + }; >> + >> + blob_2: blob-ext@2 { >> + filename = "lpddr4_pmu_train_1d_dmem.bin"; >> + size = <0x4000>; >> + }; >> + >> + blob_3: blob-ext@3 { >> + filename = "lpddr4_pmu_train_2d_imem.bin"; >> + size = <0x8000>; >> + }; >> + >> + blob_4: blob-ext@4 { >> + filename = "lpddr4_pmu_train_2d_dmem.bin"; >> + size = <0x4000>; >> + }; >> + }; >> + >> + signed_hdmi { >> + filename = "signed_hdmi.bin"; >> + >> + blob_5: blob-ext@5 { >> + filename = "signed_hdmi_imx8m.bin"; >> + }; >> + }; >> + >> + flash { >> + mkimage { >> + args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000"; >> + >> + blob { >> + filename = "u-boot-spl-ddr.bin"; >> + }; >> + >> + }; >> + >> + }; >> + >> + itb { >> + filename = "u-boot.itb"; >> + >> + fit { >> + description = "Configuration to load ATF before U-Boot"; >> + #address-cells = <1>; >> + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; >> + >> + images { >> + uboot { >> + description = "U-Boot (64-bit)"; >> + type = "standalone"; >> + arch = "arm64"; >> + compression = "none"; >> + load = <CONFIG_SYS_TEXT_BASE>; >> + >> + uboot_blob: blob-ext { >> + filename = "u-boot-nodtb.bin"; >> + }; >> + }; >> + >> + atf { >> + description = "ARM Trusted Firmware"; >> + type = "firmware"; >> + arch = "arm64"; >> + compression = "none"; >> + load = <0x910000>; >> + entry = <0x910000>; >> + >> + atf_blob: blob-ext { >> + filename = "bl31.bin"; >> + }; >> + }; >> + >> + fdt { >> + description = "NAME"; >> + type = "flat_dt"; >> + compression = "none"; >> + >> + uboot_fdt_blob: blob-ext { >> + filename = "u-boot.dtb"; >> + }; >> + }; >> + }; >> + >> + configurations { >> + default = "conf"; >> + >> + conf { >> + description = "NAME"; >> + firmware = "uboot"; >> + loadables = "atf"; >> + fdt = "fdt"; >> + }; >> + }; >> + }; >> + }; >> +}; >> diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig >> index 276b8bd974..c556e712b7 100644 >> --- a/arch/arm/mach-imx/imx8m/Kconfig >> +++ b/arch/arm/mach-imx/imx8m/Kconfig >> @@ -36,6 +36,7 @@ config TARGET_IMX8MQ_CM >> >> config TARGET_IMX8MQ_EVK >> bool "imx8mq_evk" >> + select BINMAN >> select IMX8MQ >> select IMX8M_LPDDR4 >> >> diff --git a/board/freescale/imx8mq_evk/Kconfig b/board/freescale/imx8mq_evk/Kconfig >> index c4d20ad7c7..a7c49744b3 100644 >> --- a/board/freescale/imx8mq_evk/Kconfig >> +++ b/board/freescale/imx8mq_evk/Kconfig >> @@ -10,6 +10,6 @@ config SYS_CONFIG_NAME >> default "imx8mq_evk" >> >> config IMX_CONFIG >> - default "arch/arm/mach-imx/imx8m/imximage.cfg" >> + default "board/freescale/imx8mq_evk/imximage.cfg" >> >> endif >> diff --git a/board/freescale/imx8mq_evk/imximage.cfg b/board/freescale/imx8mq_evk/imximage.cfg >> new file mode 100644 >> index 0000000000..74f12b30d2 >> --- /dev/null >> +++ b/board/freescale/imx8mq_evk/imximage.cfg >> @@ -0,0 +1,11 @@ >> +/* SPDX-License-Identifier: GPL-2.0+ */ >> +/* >> + * Copyright 2021 NXP >> + */ >> + >> +#define __ASSEMBLY__ >> + >> +FIT >> +BOOT_FROM sd >> +SIGNED_HDMI signed_hdmi.bin >> +LOADER mkimage.flash.mkimage 0x7e1000 >> diff --git a/configs/imx8mq_evk_defconfig b/configs/imx8mq_evk_defconfig >> index 62fe6f1523..5970d8c164 100644 >> --- a/configs/imx8mq_evk_defconfig >> +++ b/configs/imx8mq_evk_defconfig >> @@ -18,7 +18,7 @@ CONFIG_SYS_LOAD_ADDR=0x40480000 >> 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_BOARD_EARLY_INIT_F=y >> CONFIG_BOARD_LATE_INIT=y >> CONFIG_SPL_BOARD_INIT=y >> -- >> 2.30.0 >>
On 2021/11/12 1:24, Heiko Thiery wrote: > Hi Peng, > > Am Fr., 22. Okt. 2021 um 04:07 Uhr schrieb Peng Fan (OSS) > <peng.fan@oss.nxp.com>: >> >> From: Peng Fan <peng.fan@nxp.com> >> >> Switch to use binman to pack images > > After switching to binman you will hit the same issue I have in the > u-boot CI. The mkimage step will fail because the hdmi firmware blob > can not be found [1]. There is already a discuusion ongoing how to fix > that [2]. It should not. I not met failure before, let me try again. Thanks, Peng. > > [1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2021-October%2F464338.html&data=04%7C01%7Cpeng.fan%40nxp.com%7C801faca45846458ee4a908d9a5383734%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637722483129948474%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=KOwwQdaUvADXP5PEoniPUrcJ8tfsqb4wBF1KnfZmYqA%3D&reserved=0 > [2] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2021-November%2F466181.html&data=04%7C01%7Cpeng.fan%40nxp.com%7C801faca45846458ee4a908d9a5383734%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637722483129948474%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hLEvWAvxTEHffELh1cTIgILUm%2FsDbZFO86L0lP1WWGk%3D&reserved=0 > >> >> Signed-off-by: Peng Fan <peng.fan@nxp.com> >> --- >> arch/arm/dts/imx8mq-evk-u-boot.dtsi | 2 + >> arch/arm/dts/imx8mq-u-boot.dtsi | 122 ++++++++++++++++++++++++ >> arch/arm/mach-imx/imx8m/Kconfig | 1 + >> board/freescale/imx8mq_evk/Kconfig | 2 +- >> board/freescale/imx8mq_evk/imximage.cfg | 11 +++ >> configs/imx8mq_evk_defconfig | 2 +- >> 6 files changed, 138 insertions(+), 2 deletions(-) >> create mode 100644 arch/arm/dts/imx8mq-u-boot.dtsi >> create mode 100644 board/freescale/imx8mq_evk/imximage.cfg >> >> diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi b/arch/arm/dts/imx8mq-evk-u-boot.dtsi >> index 2cfc12b7e0..6f9c81462e 100644 >> --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi >> +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi >> @@ -1,5 +1,7 @@ >> // SPDX-License-Identifier: (GPL-2.0 OR MIT) >> >> +#include "imx8mq-u-boot.dtsi" >> + >> &usdhc1 { >> mmc-hs400-1_8v; >> }; >> diff --git a/arch/arm/dts/imx8mq-u-boot.dtsi b/arch/arm/dts/imx8mq-u-boot.dtsi >> new file mode 100644 >> index 0000000000..2c10e9b645 >> --- /dev/null >> +++ b/arch/arm/dts/imx8mq-u-boot.dtsi >> @@ -0,0 +1,122 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> +/* >> + * Copyright 2021 NXP >> + */ >> + >> +/ { >> + binman: binman { >> + multiple-images; >> + }; >> + >> +}; >> + >> +&binman { >> + u-boot-spl-ddr { >> + filename = "u-boot-spl-ddr.bin"; >> + pad-byte = <0xff>; >> + align-size = <4>; >> + align = <4>; >> + >> + u-boot-spl { >> + align-end = <4>; >> + }; >> + >> + blob_1: blob-ext@1 { >> + filename = "lpddr4_pmu_train_1d_imem.bin"; >> + size = <0x8000>; >> + }; >> + >> + blob_2: blob-ext@2 { >> + filename = "lpddr4_pmu_train_1d_dmem.bin"; >> + size = <0x4000>; >> + }; >> + >> + blob_3: blob-ext@3 { >> + filename = "lpddr4_pmu_train_2d_imem.bin"; >> + size = <0x8000>; >> + }; >> + >> + blob_4: blob-ext@4 { >> + filename = "lpddr4_pmu_train_2d_dmem.bin"; >> + size = <0x4000>; >> + }; >> + }; >> + >> + signed_hdmi { >> + filename = "signed_hdmi.bin"; >> + >> + blob_5: blob-ext@5 { >> + filename = "signed_hdmi_imx8m.bin"; >> + }; >> + }; >> + >> + flash { >> + mkimage { >> + args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000"; >> + >> + blob { >> + filename = "u-boot-spl-ddr.bin"; >> + }; >> + >> + }; >> + >> + }; >> + >> + itb { >> + filename = "u-boot.itb"; >> + >> + fit { >> + description = "Configuration to load ATF before U-Boot"; >> + #address-cells = <1>; >> + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; >> + >> + images { >> + uboot { >> + description = "U-Boot (64-bit)"; >> + type = "standalone"; >> + arch = "arm64"; >> + compression = "none"; >> + load = <CONFIG_SYS_TEXT_BASE>; >> + >> + uboot_blob: blob-ext { >> + filename = "u-boot-nodtb.bin"; >> + }; >> + }; >> + >> + atf { >> + description = "ARM Trusted Firmware"; >> + type = "firmware"; >> + arch = "arm64"; >> + compression = "none"; >> + load = <0x910000>; >> + entry = <0x910000>; >> + >> + atf_blob: blob-ext { >> + filename = "bl31.bin"; >> + }; >> + }; >> + >> + fdt { >> + description = "NAME"; >> + type = "flat_dt"; >> + compression = "none"; >> + >> + uboot_fdt_blob: blob-ext { >> + filename = "u-boot.dtb"; >> + }; >> + }; >> + }; >> + >> + configurations { >> + default = "conf"; >> + >> + conf { >> + description = "NAME"; >> + firmware = "uboot"; >> + loadables = "atf"; >> + fdt = "fdt"; >> + }; >> + }; >> + }; >> + }; >> +}; >> diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig >> index 276b8bd974..c556e712b7 100644 >> --- a/arch/arm/mach-imx/imx8m/Kconfig >> +++ b/arch/arm/mach-imx/imx8m/Kconfig >> @@ -36,6 +36,7 @@ config TARGET_IMX8MQ_CM >> >> config TARGET_IMX8MQ_EVK >> bool "imx8mq_evk" >> + select BINMAN >> select IMX8MQ >> select IMX8M_LPDDR4 >> >> diff --git a/board/freescale/imx8mq_evk/Kconfig b/board/freescale/imx8mq_evk/Kconfig >> index c4d20ad7c7..a7c49744b3 100644 >> --- a/board/freescale/imx8mq_evk/Kconfig >> +++ b/board/freescale/imx8mq_evk/Kconfig >> @@ -10,6 +10,6 @@ config SYS_CONFIG_NAME >> default "imx8mq_evk" >> >> config IMX_CONFIG >> - default "arch/arm/mach-imx/imx8m/imximage.cfg" >> + default "board/freescale/imx8mq_evk/imximage.cfg" >> >> endif >> diff --git a/board/freescale/imx8mq_evk/imximage.cfg b/board/freescale/imx8mq_evk/imximage.cfg >> new file mode 100644 >> index 0000000000..74f12b30d2 >> --- /dev/null >> +++ b/board/freescale/imx8mq_evk/imximage.cfg >> @@ -0,0 +1,11 @@ >> +/* SPDX-License-Identifier: GPL-2.0+ */ >> +/* >> + * Copyright 2021 NXP >> + */ >> + >> +#define __ASSEMBLY__ >> + >> +FIT >> +BOOT_FROM sd >> +SIGNED_HDMI signed_hdmi.bin >> +LOADER mkimage.flash.mkimage 0x7e1000 >> diff --git a/configs/imx8mq_evk_defconfig b/configs/imx8mq_evk_defconfig >> index 62fe6f1523..5970d8c164 100644 >> --- a/configs/imx8mq_evk_defconfig >> +++ b/configs/imx8mq_evk_defconfig >> @@ -18,7 +18,7 @@ CONFIG_SYS_LOAD_ADDR=0x40480000 >> 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_BOARD_EARLY_INIT_F=y >> CONFIG_BOARD_LATE_INIT=y >> CONFIG_SPL_BOARD_INIT=y >> -- >> 2.30.0 >> >
On Fri, Oct 22, 2021 at 10:42:16AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > Switch to use binman to pack images > > Signed-off-by: Peng Fan <peng.fan@nxp.com> Applied to u-boot/master, thanks!
diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi b/arch/arm/dts/imx8mq-evk-u-boot.dtsi index 2cfc12b7e0..6f9c81462e 100644 --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi @@ -1,5 +1,7 @@ // SPDX-License-Identifier: (GPL-2.0 OR MIT) +#include "imx8mq-u-boot.dtsi" + &usdhc1 { mmc-hs400-1_8v; }; diff --git a/arch/arm/dts/imx8mq-u-boot.dtsi b/arch/arm/dts/imx8mq-u-boot.dtsi new file mode 100644 index 0000000000..2c10e9b645 --- /dev/null +++ b/arch/arm/dts/imx8mq-u-boot.dtsi @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2021 NXP + */ + +/ { + binman: binman { + multiple-images; + }; + +}; + +&binman { + u-boot-spl-ddr { + filename = "u-boot-spl-ddr.bin"; + pad-byte = <0xff>; + align-size = <4>; + align = <4>; + + u-boot-spl { + align-end = <4>; + }; + + blob_1: blob-ext@1 { + filename = "lpddr4_pmu_train_1d_imem.bin"; + size = <0x8000>; + }; + + blob_2: blob-ext@2 { + filename = "lpddr4_pmu_train_1d_dmem.bin"; + size = <0x4000>; + }; + + blob_3: blob-ext@3 { + filename = "lpddr4_pmu_train_2d_imem.bin"; + size = <0x8000>; + }; + + blob_4: blob-ext@4 { + filename = "lpddr4_pmu_train_2d_dmem.bin"; + size = <0x4000>; + }; + }; + + signed_hdmi { + filename = "signed_hdmi.bin"; + + blob_5: blob-ext@5 { + filename = "signed_hdmi_imx8m.bin"; + }; + }; + + flash { + mkimage { + args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000"; + + blob { + filename = "u-boot-spl-ddr.bin"; + }; + + }; + + }; + + itb { + filename = "u-boot.itb"; + + fit { + description = "Configuration to load ATF before U-Boot"; + #address-cells = <1>; + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>; + + images { + uboot { + description = "U-Boot (64-bit)"; + type = "standalone"; + arch = "arm64"; + compression = "none"; + load = <CONFIG_SYS_TEXT_BASE>; + + uboot_blob: blob-ext { + filename = "u-boot-nodtb.bin"; + }; + }; + + atf { + description = "ARM Trusted Firmware"; + type = "firmware"; + arch = "arm64"; + compression = "none"; + load = <0x910000>; + entry = <0x910000>; + + atf_blob: blob-ext { + filename = "bl31.bin"; + }; + }; + + fdt { + description = "NAME"; + type = "flat_dt"; + compression = "none"; + + uboot_fdt_blob: blob-ext { + filename = "u-boot.dtb"; + }; + }; + }; + + configurations { + default = "conf"; + + conf { + description = "NAME"; + firmware = "uboot"; + loadables = "atf"; + fdt = "fdt"; + }; + }; + }; + }; +}; diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig index 276b8bd974..c556e712b7 100644 --- a/arch/arm/mach-imx/imx8m/Kconfig +++ b/arch/arm/mach-imx/imx8m/Kconfig @@ -36,6 +36,7 @@ config TARGET_IMX8MQ_CM config TARGET_IMX8MQ_EVK bool "imx8mq_evk" + select BINMAN select IMX8MQ select IMX8M_LPDDR4 diff --git a/board/freescale/imx8mq_evk/Kconfig b/board/freescale/imx8mq_evk/Kconfig index c4d20ad7c7..a7c49744b3 100644 --- a/board/freescale/imx8mq_evk/Kconfig +++ b/board/freescale/imx8mq_evk/Kconfig @@ -10,6 +10,6 @@ config SYS_CONFIG_NAME default "imx8mq_evk" config IMX_CONFIG - default "arch/arm/mach-imx/imx8m/imximage.cfg" + default "board/freescale/imx8mq_evk/imximage.cfg" endif diff --git a/board/freescale/imx8mq_evk/imximage.cfg b/board/freescale/imx8mq_evk/imximage.cfg new file mode 100644 index 0000000000..74f12b30d2 --- /dev/null +++ b/board/freescale/imx8mq_evk/imximage.cfg @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2021 NXP + */ + +#define __ASSEMBLY__ + +FIT +BOOT_FROM sd +SIGNED_HDMI signed_hdmi.bin +LOADER mkimage.flash.mkimage 0x7e1000 diff --git a/configs/imx8mq_evk_defconfig b/configs/imx8mq_evk_defconfig index 62fe6f1523..5970d8c164 100644 --- a/configs/imx8mq_evk_defconfig +++ b/configs/imx8mq_evk_defconfig @@ -18,7 +18,7 @@ CONFIG_SYS_LOAD_ADDR=0x40480000 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_BOARD_EARLY_INIT_F=y CONFIG_BOARD_LATE_INIT=y CONFIG_SPL_BOARD_INIT=y