[PATCH] ARM: i.MX8M: limit PBL size to 0x3f000

Ahmad Fatoum a.fatoum at pengutronix.de
Fri Oct 20 05:17:10 PDT 2023

On i.MX8M(Q/M/N/P), barebox PBL is loaded 0x1000 bytes into ITCM
at address 0x7e00_1000. ITCM is 128K followed by 128K of DTCM.

Therefore, in total, barebox PBL may not exceed 0x3f000. Now that we
have a common macro for defining boards, let's add a
MAX_PBL_MEMORY_SIZE_$(entrypoint) into it, so check that we don't
exceed this size at runtime.

Boards that trip over this, should consider using get_builtin_firmware_ext
to offload binaries into barebox proper.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
 images/Makefile.imx | 1 +
 1 file changed, 1 insertion(+)

diff --git a/images/Makefile.imx b/images/Makefile.imx
index 50f0a64b3091..ca09853c4b6e 100644
--- a/images/Makefile.imx
+++ b/images/Makefile.imx
@@ -26,6 +26,7 @@ $(eval
 ifeq ($($(strip $(1))), y)
 	pblb-y += $(strip $(2))
 	CFG_$(strip $(2)).pblb.imximg = $(board)/$(strip $(3)).imxcfg
+	MAX_PBL_MEMORY_SIZE_$(strip $(2)) = 0x3f000
 	FILE_barebox-$(strip $(4)).img    = $(strip $(2)).pblb.pimximg
 	FILE_barebox-$(strip $(4))-s.img  = $(strip $(2)).pblb.psimximg
 	image-y += barebox-$(strip $(4)).img

More information about the barebox mailing list