[PATCH] imx8mq: Generate a single bootable flash.bin again

After the conversion to binman in commit c1ecd03d90c7 ("imx: imx8mq_evk: switch to binman"), it is necessary to flash both flash.bin and u-boot.itb to get a bootable system. Prior to this commit, only flash.bin was needed.
Such new requirement breaks existing distro mechanisms to generate the final binary because the extra u-boot.itb is now required.
Generate a final flash.bin that can be used again as a single bootable binary to keep the original behavior.
After this change the SPL binary is called spl.bin, which is a more descriptive name for its purpose, and can still be used standalone (for example, for secure boot purposes).
Also update imx8mq_evk.rst to remove the u-boot.itb copy step.
This is a cherry-pick of 028abfd9b157 ("imx8mm-evk: Generate a single bootable flash.bin again") adjusted to apply to i.MX8MQ.
Signed-off-by: Patrick Wildt patrick@blueri.se --- arch/arm/dts/imx8mq-u-boot.dtsi | 19 ++++++++++++++++++- arch/arm/mach-imx/imx8m/imximage.cfg | 2 +- doc/board/nxp/imx8mq_evk.rst | 1 - 3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/arch/arm/dts/imx8mq-u-boot.dtsi b/arch/arm/dts/imx8mq-u-boot.dtsi index 2c10e9b645..8a6075c77b 100644 --- a/arch/arm/dts/imx8mq-u-boot.dtsi +++ b/arch/arm/dts/imx8mq-u-boot.dtsi @@ -50,7 +50,9 @@ }; };
- flash { + spl { + filename = "spl.bin"; + mkimage { args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
@@ -119,4 +121,19 @@ }; }; }; + + imx-boot { + filename = "flash.bin"; + pad-byte = <0x00>; + + spl: blob-ext@1 { + offset = <0x0>; + filename = "spl.bin"; + }; + + uboot: blob-ext@2 { + offset = <0x57c00>; + filename = "u-boot.itb"; + }; + }; }; diff --git a/arch/arm/mach-imx/imx8m/imximage.cfg b/arch/arm/mach-imx/imx8m/imximage.cfg index 9c6eaf0a6d..2a3f959183 100644 --- a/arch/arm/mach-imx/imx8m/imximage.cfg +++ b/arch/arm/mach-imx/imx8m/imximage.cfg @@ -8,4 +8,4 @@ FIT BOOT_FROM sd SIGNED_HDMI signed_hdmi.bin -LOADER mkimage.flash.mkimage 0x7e1000 +LOADER u-boot-spl-ddr.bin 0x7e1000 diff --git a/doc/board/nxp/imx8mq_evk.rst b/doc/board/nxp/imx8mq_evk.rst index 92eeda79aa..aa1ecfb47a 100644 --- a/doc/board/nxp/imx8mq_evk.rst +++ b/doc/board/nxp/imx8mq_evk.rst @@ -50,7 +50,6 @@ Burn the flash.bin to MicroSD card offset 33KB: .. code-block:: bash
$sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=33 conv=notrunc - $sudo dd if=u-boot.itb of=/dev/sd[x] bs=1024 seek=384 conv=notrunc
Boot ----

Hi Patrick,
On 08/01/2022 11:58, Patrick Wildt wrote:
After the conversion to binman in commit c1ecd03d90c7 ("imx: imx8mq_evk: switch to binman"), it is necessary to flash both flash.bin and u-boot.itb to get a bootable system. Prior to this commit, only flash.bin was needed.
Such new requirement breaks existing distro mechanisms to generate the final binary because the extra u-boot.itb is now required.
Generate a final flash.bin that can be used again as a single bootable binary to keep the original behavior.
After this change the SPL binary is called spl.bin, which is a more descriptive name for its purpose, and can still be used standalone (for example, for secure boot purposes).
Also update imx8mq_evk.rst to remove the u-boot.itb copy step.
This is a cherry-pick of 028abfd9b157 ("imx8mm-evk: Generate a single bootable flash.bin again") adjusted to apply to i.MX8MQ.
Signed-off-by: Patrick Wildt patrick@blueri.se
Thanks for the patch:
Reviewed-by: Fabio Estevam festevam@denx.de

On 08/01/2022 11:58, Patrick Wildt wrote:
After the conversion to binman in commit c1ecd03d90c7 ("imx: imx8mq_evk: switch to binman"), it is necessary to flash both flash.bin and u-boot.itb to get a bootable system. Prior to this commit, only flash.bin was needed.
Such new requirement breaks existing distro mechanisms to generate the final binary because the extra u-boot.itb is now required.
Generate a final flash.bin that can be used again as a single bootable binary to keep the original behavior.
After this change the SPL binary is called spl.bin, which is a more descriptive name for its purpose, and can still be used standalone (for example, for secure boot purposes).
Also update imx8mq_evk.rst to remove the u-boot.itb copy step.
This is a cherry-pick of 028abfd9b157 ("imx8mm-evk: Generate a single bootable flash.bin again") adjusted to apply to i.MX8MQ.
"apply to imx8mq_evk."
Also, the subject should be imx8mq_evk: Generate...
Feel free to resubmit with these two minor changes and keep my Reviewed-by tag.
Thanks,
Fabio Estevam

On Sat, Jan 08, 2022 at 12:10:49PM -0300, Fabio Estevam wrote:
On 08/01/2022 11:58, Patrick Wildt wrote:
After the conversion to binman in commit c1ecd03d90c7 ("imx: imx8mq_evk: switch to binman"), it is necessary to flash both flash.bin and u-boot.itb to get a bootable system. Prior to this commit, only flash.bin was needed.
Such new requirement breaks existing distro mechanisms to generate the final binary because the extra u-boot.itb is now required.
Generate a final flash.bin that can be used again as a single bootable binary to keep the original behavior.
After this change the SPL binary is called spl.bin, which is a more descriptive name for its purpose, and can still be used standalone (for example, for secure boot purposes).
Also update imx8mq_evk.rst to remove the u-boot.itb copy step.
This is a cherry-pick of 028abfd9b157 ("imx8mm-evk: Generate a single bootable flash.bin again") adjusted to apply to i.MX8MQ.
"apply to imx8mq_evk."
Also, the subject should be imx8mq_evk: Generate...
Feel free to resubmit with these two minor changes and keep my Reviewed-by tag.
Thanks,
Fabio Estevam
Hi,
but it's not only imx8mq_evk. Tom has merged the patchset that switches *all* i.MX8MQ boards to Binman, which means that this change touches not only imx8mq_evk but all i.MX8MQ boards. The only thing that is specific to imx8mq_evk is the documentation change.
Should I still change it?
Thanks, Patrick

On 08/01/2022 12:16, Patrick Wildt wrote:
but it's not only imx8mq_evk. Tom has merged the patchset that switches *all* i.MX8MQ boards to Binman, which means that this change touches not only imx8mq_evk but all i.MX8MQ boards. The only thing that is specific to imx8mq_evk is the documentation change.
Ah, OK. It was not clear when I read the commit log, but I agree now after reading your reply.
Should I still change it?
Maybe put in the commit log that all i.MX8MQ boards have been converted to binman would avoid some confusion.
Thanks,
Fabio Estevam

On Sat, Jan 08, 2022 at 12:24:29PM -0300, Fabio Estevam wrote:
On 08/01/2022 12:16, Patrick Wildt wrote:
but it's not only imx8mq_evk. Tom has merged the patchset that switches *all* i.MX8MQ boards to Binman, which means that this change touches not only imx8mq_evk but all i.MX8MQ boards. The only thing that is specific to imx8mq_evk is the documentation change.
Ah, OK. It was not clear when I read the commit log, but I agree now after reading your reply.
Should I still change it?
Maybe put in the commit log that all i.MX8MQ boards have been converted to binman would avoid some confusion.
Thanks,
Fabio Estevam
Ok, I agree that the previous wording as bad. I have sent a v2 *without* your Reviewed-By tag. Please have a look and check if you like that wording better.
Thanks, Patrick
participants (2)
-
Fabio Estevam
-
Patrick Wildt