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

View file

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

View file

@ -5,7 +5,6 @@
/ { / {
binman: binman { binman: binman {
multiple-images;
}; };
#ifdef CONFIG_OPTEE #ifdef CONFIG_OPTEE
@ -92,78 +91,83 @@
}; };
&binman { &binman {
u-boot-spl-ddr { filename = "flash.bin";
filename = "u-boot-spl-ddr.bin"; section {
pad-byte = <0xff>; pad-byte = <0x00>;
align-size = <4>;
align = <4>;
u-boot-spl { #ifdef CONFIG_FSPI_CONF_HEADER
align-end = <4>; fspi_conf_block {
filename = "u-boot-spl.bin"; filename = CONFIG_FSPI_CONF_FILE;
};
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"; 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 #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) #if defined(CONFIG_IMX8M_LPDDR4) || defined(CONFIG_IMX8M_DDR4)
ddr-2d-imem-fw { ddr-2d-imem-fw {
#ifdef CONFIG_IMX8M_LPDDR4 #ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_2d_imem.bin"; filename = "lpddr4_pmu_train_2d_imem.bin";
#else #else
filename = "ddr4_imem_2d_201810.bin"; filename = "ddr4_imem_2d_201810.bin";
#endif #endif
type = "blob-ext"; type = "blob-ext";
align-end = <4>; align-end = <4>;
}; };
ddr-2d-dmem-fw { ddr-2d-dmem-fw {
#ifdef CONFIG_IMX8M_LPDDR4 #ifdef CONFIG_IMX8M_LPDDR4
filename = "lpddr4_pmu_train_2d_dmem.bin"; filename = "lpddr4_pmu_train_2d_dmem.bin";
#else #else
filename = "ddr4_dmem_2d_201810.bin"; filename = "ddr4_dmem_2d_201810.bin";
#endif #endif
type = "blob-ext"; type = "blob-ext";
align-end = <4>; align-end = <4>;
}; };
#endif #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 { fit {
description = "Configuration to load ATF before U-Boot"; description = "Configuration to load ATF before U-Boot";
@ -172,6 +176,11 @@
#endif #endif
fit,fdt-list = "of-list"; fit,fdt-list = "of-list";
#address-cells = <1>; #address-cells = <1>;
#ifdef CONFIG_FSPI_CONF_HEADER
offset = <0x59000>;
#else
offset = <0x58000>;
#endif
images { images {
uboot { 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 { &binman {
itb { section {
fit { fit {
images { images {
fdt-dto-imx8mp-dhcom-som-overlay-eth1xfast { fdt-dto-imx8mp-dhcom-som-overlay-eth1xfast {

View file

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

View file

@ -6,7 +6,6 @@
/ { / {
binman: binman { binman: binman {
multiple-images;
}; };
#ifdef CONFIG_OPTEE #ifdef CONFIG_OPTEE
@ -83,55 +82,52 @@
#endif #endif
&binman { &binman {
u-boot-spl-ddr { filename = "flash.bin";
filename = "u-boot-spl-ddr.bin"; section {
pad-byte = <0xff>; pad-byte = <0x00>;
align-size = <4>;
align = <4>;
u-boot-spl { nxp-imx8mimage {
align-end = <4>; 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 { section {
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 {
filename = "u-boot-spl-ddr.bin"; 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 { fit {
description = "Configuration to load ATF before U-Boot"; description = "Configuration to load ATF before U-Boot";
@ -140,6 +136,7 @@
#endif #endif
fit,fdt-list = "of-list"; fit,fdt-list = "of-list";
#address-cells = <1>; #address-cells = <1>;
offset = <0x58000>;
images { images {
uboot { 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 { &binman {
/delete-node/ signed-hdmi; section {
nxp-imx8mimage {
signed-hdmi { section {
filename = "signed_hdmi.bin"; signed-hdmi-imx8m {
filename = "signed_dp_imx8m.bin";
signed-dp-imx8m { };
filename = "signed_dp_imx8m.bin"; };
type = "blob-ext";
}; };
}; };
}; };

View file

@ -5,7 +5,6 @@
/ { / {
binman: binman { binman: binman {
multiple-images;
}; };
}; };
@ -35,65 +34,58 @@
}; };
&binman { &binman {
u-boot-spl-ddr { filename = "flash.bin";
align = <4>; section {
align-size = <4>; pad-byte = <0x00>;
filename = "u-boot-spl-ddr.bin";
pad-byte = <0xff>;
u-boot-spl { nxp-imx8mimage {
align-end = <4>; filename = "u-boot-spl-mkimage.bin";
filename = "u-boot-spl.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 { section {
filename = "lpddr4_pmu_train_1d_imem.bin"; align = <4>;
align-end = <4>; align-size = <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 {
filename = "u-boot-spl-ddr.bin"; 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 { fit {
description = "Configuration to load ATF before U-Boot"; 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";
};
};
}; };