ARM: dts: imx: Convert i.MX8M flash.bin image generation to binman

Rework the flash.bin image generation such that it uses the new binman
nxp_imx8mimage etype. This way, the flash.bin is assembled in correct
order using plain binman, without any workarounds or sections assembled
in special DT node order.

Reviewed-By: Tim Harvey <tharvey@gateworks.com>
Tested-By: Tim Harvey <tharvey@gateworks.com> # imx8mm_venice
Tested-by: Fabio Estevam <festevam@gmail.com> # imx8mm-evk and imx8mn-evk
Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
Marek Vasut 2024-04-26 01:00:37 +02:00 committed by Fabio Estevam
parent 6509e007e9
commit 37e50627ef
8 changed files with 222 additions and 321 deletions

View file

@ -5,7 +5,6 @@
/ {
binman: binman {
multiple-images;
};
#ifdef CONFIG_OPTEE
@ -43,56 +42,61 @@
};
&binman {
u-boot-spl-ddr {
align = <4>;
align-size = <4>;
filename = "u-boot-spl-ddr.bin";
pad-byte = <0xff>;
filename = "flash.bin";
section {
pad-byte = <0x00>;
u-boot-spl {
align-end = <4>;
filename = "u-boot-spl.bin";
};
ddr-1d-imem-fw {
filename = "lpddr4_pmu_train_1d_imem.bin";
align-end = <4>;
#ifdef CONFIG_FSPI_CONF_HEADER
fspi_conf_block {
filename = CONFIG_FSPI_CONF_FILE;
type = "blob-ext";
size = <0x1000>;
};
#endif
ddr-1d-dmem-fw {
filename = "lpddr4_pmu_train_1d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
nxp-imx8mimage {
filename = "u-boot-spl-mkimage.bin";
nxp,boot-from = "sd";
nxp,rom-version = <1>;
nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
args; /* Needed by mkimage etype superclass */
ddr-2d-imem-fw {
filename = "lpddr4_pmu_train_2d_imem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-2d-dmem-fw {
filename = "lpddr4_pmu_train_2d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
};
spl {
filename = "spl.bin";
mkimage {
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
blob {
section {
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";
};
ddr-1d-imem-fw {
filename = "lpddr4_pmu_train_1d_imem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-1d-dmem-fw {
filename = "lpddr4_pmu_train_1d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-2d-imem-fw {
filename = "lpddr4_pmu_train_2d_imem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-2d-dmem-fw {
filename = "lpddr4_pmu_train_2d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
};
};
};
itb {
filename = "u-boot.itb";
fit {
description = "Configuration to load ATF before U-Boot";
@ -101,6 +105,11 @@
#endif
fit,fdt-list = "of-list";
#address-cells = <1>;
#ifdef CONFIG_FSPI_CONF_HEADER
offset = <0x58C00>;
#else
offset = <0x57c00>;
#endif
images {
uboot {
@ -166,43 +175,6 @@
};
};
};
imx-boot {
filename = "flash.bin";
pad-byte = <0x00>;
#ifdef CONFIG_FSPI_CONF_HEADER
fspi_conf_block {
filename = CONFIG_FSPI_CONF_FILE;
type = "blob-ext";
size = <0x1000>;
};
spl {
filename = "spl.bin";
offset = <0x1000>;
type = "blob-ext";
};
binman_uboot: uboot {
filename = "u-boot.itb";
offset = <0x58C00>;
type = "blob-ext";
};
#else
spl {
filename = "spl.bin";
offset = <0x0>;
type = "blob-ext";
};
binman_uboot: uboot {
filename = "u-boot.itb";
offset = <0x57c00>;
type = "blob-ext";
};
#endif
};
};
&clk {

View file

@ -35,8 +35,12 @@
bootph-pre-ram;
};
&binman_uboot {
offset = <0x5fc00>;
&binman {
section {
fit {
offset = <0x5fc00>;
};
};
};
&gpio1 {

View file

@ -5,7 +5,6 @@
/ {
binman: binman {
multiple-images;
};
#ifdef CONFIG_OPTEE
@ -92,78 +91,83 @@
};
&binman {
u-boot-spl-ddr {
filename = "u-boot-spl-ddr.bin";
pad-byte = <0xff>;
align-size = <4>;
align = <4>;
filename = "flash.bin";
section {
pad-byte = <0x00>;
u-boot-spl {
align-end = <4>;
filename = "u-boot-spl.bin";
};
ddr-1d-imem-fw {
#ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_1d_imem.bin";
#elif CONFIG_IMX8M_DDR4
filename = "ddr4_imem_1d_201810.bin";
#else
filename = "ddr3_imem_1d.bin";
#endif
#ifdef CONFIG_FSPI_CONF_HEADER
fspi_conf_block {
filename = CONFIG_FSPI_CONF_FILE;
type = "blob-ext";
align-end = <4>;
offset = <0x400>;
};
ddr-1d-dmem-fw {
#ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_1d_dmem.bin";
#elif CONFIG_IMX8M_DDR4
filename = "ddr4_dmem_1d_201810.bin";
#else
filename = "ddr3_dmem_1d.bin";
#endif
type = "blob-ext";
align-end = <4>;
};
nxp-imx8mimage {
filename = "u-boot-spl-mkimage.bin";
nxp,boot-from = "sd";
nxp,rom-version = <2>;
nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
args; /* Needed by mkimage etype superclass */
section {
filename = "u-boot-spl-ddr.bin";
pad-byte = <0xff>;
align-size = <4>;
align = <4>;
u-boot-spl {
align-end = <4>;
filename = "u-boot-spl.bin";
};
ddr-1d-imem-fw {
#ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_1d_imem.bin";
#elif CONFIG_IMX8M_DDR4
filename = "ddr4_imem_1d_201810.bin";
#else
filename = "ddr3_imem_1d.bin";
#endif
type = "blob-ext";
align-end = <4>;
};
ddr-1d-dmem-fw {
#ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_1d_dmem.bin";
#elif CONFIG_IMX8M_DDR4
filename = "ddr4_dmem_1d_201810.bin";
#else
filename = "ddr3_dmem_1d.bin";
#endif
type = "blob-ext";
align-end = <4>;
};
#if defined(CONFIG_IMX8M_LPDDR4) || defined(CONFIG_IMX8M_DDR4)
ddr-2d-imem-fw {
ddr-2d-imem-fw {
#ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_2d_imem.bin";
filename = "lpddr4_pmu_train_2d_imem.bin";
#else
filename = "ddr4_imem_2d_201810.bin";
filename = "ddr4_imem_2d_201810.bin";
#endif
type = "blob-ext";
align-end = <4>;
};
type = "blob-ext";
align-end = <4>;
};
ddr-2d-dmem-fw {
ddr-2d-dmem-fw {
#ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_2d_dmem.bin";
filename = "lpddr4_pmu_train_2d_dmem.bin";
#else
filename = "ddr4_dmem_2d_201810.bin";
filename = "ddr4_dmem_2d_201810.bin";
#endif
type = "blob-ext";
align-end = <4>;
};
type = "blob-ext";
align-end = <4>;
};
#endif
};
spl {
filename = "spl.bin";
mkimage {
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x912000";
blob {
filename = "u-boot-spl-ddr.bin";
};
};
};
itb {
filename = "u-boot.itb";
fit {
description = "Configuration to load ATF before U-Boot";
@ -172,6 +176,11 @@
#endif
fit,fdt-list = "of-list";
#address-cells = <1>;
#ifdef CONFIG_FSPI_CONF_HEADER
offset = <0x59000>;
#else
offset = <0x58000>;
#endif
images {
uboot {
@ -237,42 +246,4 @@
};
};
};
imx-boot {
filename = "flash.bin";
pad-byte = <0x00>;
#ifdef CONFIG_FSPI_CONF_HEADER
fspi_conf_block {
filename = CONFIG_FSPI_CONF_FILE;
type = "blob-ext";
offset = <0x400>;
};
spl {
filename = "spl.bin";
offset = <0x1000>;
type = "blob-ext";
};
binman_uboot: uboot {
filename = "u-boot.itb";
offset = <0x59000>;
type = "blob-ext";
};
#else
spl {
offset = <0x0>;
filename = "spl.bin";
type = "blob-ext";
};
binman_uboot: uboot {
offset = <0x58000>;
filename = "u-boot.itb";
type = "blob-ext";
};
#endif
};
};

View file

@ -136,7 +136,7 @@
};
&binman {
itb {
section {
fit {
images {
fdt-dto-imx8mp-dhcom-som-overlay-eth1xfast {

View file

@ -136,7 +136,7 @@
};
&binman {
itb {
section {
fit {
images {
fip {

View file

@ -6,7 +6,6 @@
/ {
binman: binman {
multiple-images;
};
#ifdef CONFIG_OPTEE
@ -83,55 +82,52 @@
#endif
&binman {
u-boot-spl-ddr {
filename = "u-boot-spl-ddr.bin";
pad-byte = <0xff>;
align-size = <4>;
align = <4>;
filename = "flash.bin";
section {
pad-byte = <0x00>;
u-boot-spl {
align-end = <4>;
};
nxp-imx8mimage {
filename = "u-boot-spl-mkimage.bin";
nxp,boot-from = "sd";
nxp,rom-version = <2>;
nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
args; /* Needed by mkimage etype superclass */
ddr-1d-imem-fw {
filename = "lpddr4_pmu_train_1d_imem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
ddr-1d-dmem-fw {
filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
ddr-2d-imem-fw {
filename = "lpddr4_pmu_train_2d_imem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
ddr-2d-dmem-fw {
filename = "lpddr4_pmu_train_2d_dmem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
};
spl {
filename = "spl.bin";
mkimage {
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x920000";
blob {
section {
filename = "u-boot-spl-ddr.bin";
pad-byte = <0xff>;
align-size = <4>;
align = <4>;
u-boot-spl {
align-end = <4>;
};
ddr-1d-imem-fw {
filename = "lpddr4_pmu_train_1d_imem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
ddr-1d-dmem-fw {
filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
ddr-2d-imem-fw {
filename = "lpddr4_pmu_train_2d_imem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
ddr-2d-dmem-fw {
filename = "lpddr4_pmu_train_2d_dmem_202006.bin";
type = "blob-ext";
align-end = <4>;
};
};
};
};
itb {
filename = "u-boot.itb";
fit {
description = "Configuration to load ATF before U-Boot";
@ -140,6 +136,7 @@
#endif
fit,fdt-list = "of-list";
#address-cells = <1>;
offset = <0x58000>;
images {
uboot {
@ -195,21 +192,4 @@
};
};
};
imx-boot {
filename = "flash.bin";
pad-byte = <0x00>;
spl {
filename = "spl.bin";
offset = <0x0>;
type = "blob-ext";
};
binman_uboot: uboot {
filename = "u-boot.itb";
offset = <0x58000>;
type = "blob-ext";
};
};
};

View file

@ -11,14 +11,13 @@
};
&binman {
/delete-node/ signed-hdmi;
signed-hdmi {
filename = "signed_hdmi.bin";
signed-dp-imx8m {
filename = "signed_dp_imx8m.bin";
type = "blob-ext";
section {
nxp-imx8mimage {
section {
signed-hdmi-imx8m {
filename = "signed_dp_imx8m.bin";
};
};
};
};
};

View file

@ -5,7 +5,6 @@
/ {
binman: binman {
multiple-images;
};
};
@ -35,65 +34,58 @@
};
&binman {
u-boot-spl-ddr {
align = <4>;
align-size = <4>;
filename = "u-boot-spl-ddr.bin";
pad-byte = <0xff>;
filename = "flash.bin";
section {
pad-byte = <0x00>;
u-boot-spl {
align-end = <4>;
filename = "u-boot-spl.bin";
};
nxp-imx8mimage {
filename = "u-boot-spl-mkimage.bin";
nxp,boot-from = "sd";
nxp,rom-version = <1>;
nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
args; /* Needed by mkimage etype superclass */
ddr-1d-imem-fw {
filename = "lpddr4_pmu_train_1d_imem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-1d-dmem-fw {
filename = "lpddr4_pmu_train_1d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-2d-imem-fw {
filename = "lpddr4_pmu_train_2d_imem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-2d-dmem-fw {
filename = "lpddr4_pmu_train_2d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
};
signed-hdmi {
filename = "signed_hdmi.bin";
signed-hdmi-imx8m {
filename = "signed_hdmi_imx8m.bin";
type = "blob-ext";
};
};
spl {
filename = "spl.bin";
mkimage {
args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
blob {
section {
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";
};
ddr-1d-imem-fw {
filename = "lpddr4_pmu_train_1d_imem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-1d-dmem-fw {
filename = "lpddr4_pmu_train_1d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-2d-imem-fw {
filename = "lpddr4_pmu_train_2d_imem.bin";
align-end = <4>;
type = "blob-ext";
};
ddr-2d-dmem-fw {
filename = "lpddr4_pmu_train_2d_dmem.bin";
align-end = <4>;
type = "blob-ext";
};
signed-hdmi-imx8m {
filename = "signed_hdmi_imx8m.bin";
type = "blob-ext";
};
};
};
};
itb {
filename = "u-boot.itb";
fit {
description = "Configuration to load ATF before U-Boot";
@ -158,21 +150,4 @@
};
};
};
imx-boot {
filename = "flash.bin";
pad-byte = <0x00>;
spl {
filename = "spl.bin";
offset = <0x0>;
type = "blob-ext";
};
binman_uboot: uboot {
filename = "u-boot.itb";
offset = <0x57c00>;
type = "blob-ext";
};
};
};