summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiago De Franco <hiago.franco@toradex.com>2023-09-15 16:42:49 -0300
committerHiago De Franco <hiago.franco@toradex.com>2023-09-15 16:48:34 -0300
commit75892564f73ddfe8652ad0ba9de850164924ccdc (patch)
tree7c25db335f8aa696f4f393cefa24ee6b2df8b54e
parent81a446adde4296c7e68f916bc536414a1caa1397 (diff)
u-boot-toradex: Backport patch to include nand padding in makefile
This commit backports a patch that adds the NAND padding function to the U-Boot Makefile, eliminating the need to maintain this function within the Yocto recipe. Related-to: TEI-1029 Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex/0001-arm-imx-add-u-boot-nand.imx-to-boot-from-NAND-withou.patch61
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex_2022.07.bb24
2 files changed, 62 insertions, 23 deletions
diff --git a/recipes-bsp/u-boot/u-boot-toradex/0001-arm-imx-add-u-boot-nand.imx-to-boot-from-NAND-withou.patch b/recipes-bsp/u-boot/u-boot-toradex/0001-arm-imx-add-u-boot-nand.imx-to-boot-from-NAND-withou.patch
new file mode 100644
index 0000000..b00ae98
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex/0001-arm-imx-add-u-boot-nand.imx-to-boot-from-NAND-withou.patch
@@ -0,0 +1,61 @@
+From c74098299453e0a7cb5b9c710a66c9d579142a0d Mon Sep 17 00:00:00 2001
+From: Luca Ceresoli <luca.ceresoli@bootlin.com>
+Date: Fri, 10 Mar 2023 11:07:52 +0100
+Subject: [PATCH] arm: imx: add u-boot-nand.imx to boot from NAND without SPL
+
+U-Boot can be booted from NAND without SPL by prepending the DCD header to
+the actual U-Boot binary. However this requires prepending 1024 bytes to
+u-boot.imx (DCD + u-boot.bin).
+
+There is already a similar target to build spl/u-boot-nand-spl.imx, add the
+same option for no-SPL boot.
+
+Tested on i.MX6ULL.
+
+The resulting layout of u-boot-nand.imx is:
+
+ - Offset 0x0000 (0 KiB): padding
+ - Offset 0x0400 (1 KiB): DCD header
+ - Offset 0x1000 (4 KiB): u-boot.bin
+
+Upstream-Status: Backport [95942f99a7057359c07bf383214d57154e2466fe]
+Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
+---
+ Makefile | 3 +++
+ arch/arm/mach-imx/Makefile | 6 ++++++
+ 2 files changed, 9 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index 98867fbe06..402adbe26c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1562,6 +1562,9 @@ endif
+ u-boot.uim: u-boot.bin FORCE
+ $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
+
++u-boot-nand.imx: u-boot.imx FORCE
++ $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
++
+ u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL $(if $(CONFIG_OF_SEPARATE),u-boot.img,u-boot.uim) FORCE
+ $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
+
+diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
+index aa0b6447f1..e9b484fa9b 100644
+--- a/arch/arm/mach-imx/Makefile
++++ b/arch/arm/mach-imx/Makefile
+@@ -132,6 +132,12 @@ u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
+ u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
+ $(call if_changed,mkimage)
+
++quiet_cmd_u-boot-nand_imx = GEN $@
++cmd_u-boot-nand_imx = (dd bs=1024 count=1 if=/dev/zero 2>/dev/null) | cat - $< > $@
++
++u-boot-nand.imx: u-boot.imx FORCE
++ $(call if_changed,u-boot-nand_imx)
++
+ ifeq ($(CONFIG_MULTI_DTB_FIT),y)
+ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \
+ -T $(IMAGE_TYPE) -e $(CONFIG_SYS_TEXT_BASE)
+--
+2.40.1
+
diff --git a/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb b/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb
index 6fda945..4b9a433 100644
--- a/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb
+++ b/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb
@@ -26,6 +26,7 @@ TDX_PATCHES = " \
file://0001-apalis-colibri_imx6-imx6ull-_imx7-update-env-memory-.patch \
file://0001-configs-colibri-imx7-Fix-bad-block-table-in-flash-co.patch \
file://0001-colibri_imx6-fix-RALAT-and-WALAT-values.patch \
+ file://0001-arm-imx-add-u-boot-nand.imx-to-boot-from-NAND-withou.patch \
"
SRC_URI:append = " ${TDX_PATCHES}"
SRC_URI:append:use-nxp-bsp:colibri-imx7 = " \
@@ -36,33 +37,10 @@ inherit toradex-u-boot-localversion
UBOOT_INITIAL_ENV = "u-boot-initial-env"
-PADDING_DIR = "${B}"
-nand_padding () {
- # pad the end of U-Boot with 0x00 up to the the end of the CSF area
- #PAD_END=$(echo -n "0x"; od -X -j 0x24 -N 4 u-boot.imx | sed -e '/................/!d' -e 's/........\(.*\)/\1/')
- #PAD_END=$(( $PAD_END - 0x400 ))
- #objcopy -I binary -O binary --pad-to $PAD_END u-boot.imx u-boot.imx.zero-padded
- # assume that the above never need more than 10k of padding and skip the
- # shell magic to get a correct size.
- dd bs=10k count=1 if=/dev/zero | cat ${PADDING_DIR}/u-boot.imx - > ${PADDING_DIR}/u-boot.imx.zero-padded
-
- # U-Boot is flashed 1k into a NAND block, create a binary which prepends
- # U-boot with 1k of zeros to ease flashing
- dd bs=1024 count=1 if=/dev/zero | cat - ${PADDING_DIR}/u-boot.imx.zero-padded > ${PADDING_DIR}/u-boot-nand.imx
-}
-
# build imx-boot from within U-Boot
inherit ${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '1', 'imx-boot-container', '')}
DEPENDS:imx-boot-container += "bc-native bison-native dtc-native python3-setuptools-native swig-native"
-do_compile:append:colibri-imx6ull () {
- nand_padding
-}
-
-do_compile:append:colibri-imx7 () {
- nand_padding
-}
-
BOOT_TOOLS = "imx-boot-tools"
do_deploy:append:mx8m-generic-bsp() {
# Deploy u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary