[U-Boot] [PATCH v2 4/4] imx: mkimage: add size check to the u-boot.imx make target

Marcel Ziswiler marcel at ziswiler.com
Fri Nov 9 14:31:17 UTC 2018


From: Marcel Ziswiler <marcel.ziswiler at toradex.com>

The make macro to check if the binary exceeds the board size limit is
taken straight from the root Makefile.

Without this and e.g. enabled EFI Vybrid fails booting as the regular
size limit check does not take the final u-boot.imx binary size into
account which is bigger due to alignment as well as IMX header stuff.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>
Reviewed-by: Fabio Estevam <festevam at gmail.com>

---

Changes in v2:
- Dropped CONFIG_CMDLINE_EDITING and SPI support to save another 8 Kb of
  precious space. Alternatively, I may have to drop full EFI support
  which costs more than 36 Kb.

 arch/arm/mach-imx/Makefile | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 72fe23a2b9..53d9e5f42b 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -58,6 +58,21 @@ obj-$(CONFIG_CMD_HDMIDETECT) += cmd_hdmidet.o
 obj-$(CONFIG_CMD_DEKBLOB) += cmd_dek.o
 endif
 
+ifneq ($(CONFIG_BOARD_SIZE_LIMIT),)
+BOARD_SIZE_CHECK = \
+        @actual=`wc -c $@ | awk '{print $$1}'`; \
+        limit=`printf "%d" $(CONFIG_BOARD_SIZE_LIMIT)`; \
+        if test $$actual -gt $$limit; then \
+                echo "$@ exceeds file size limit:" >&2 ; \
+                echo "  limit:  $$limit bytes" >&2 ; \
+                echo "  actual: $$actual bytes" >&2 ; \
+                echo "  excess: $$((actual - limit)) bytes" >&2; \
+                exit 1; \
+        fi
+else
+BOARD_SIZE_CHECK =
+endif
+
 PLUGIN = board/$(BOARDDIR)/plugin
 
 ifeq ($(CONFIG_USE_IMXIMG_PLUGIN),y)
@@ -101,6 +116,7 @@ u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
 
 u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
 	$(call if_changed,mkimage)
+	$(BOARD_SIZE_CHECK)
 
 ifeq ($(CONFIG_OF_SEPARATE),y)
 MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \
-- 
2.14.5



More information about the U-Boot mailing list