u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
* [PATCH] imx: mx7: spl: fix CONFIG_SPL_MAX_SIZE definition
@ 2021-09-28 11:40 Matthias Schiffer
  2021-10-07 14:14 ` sbabic
  0 siblings, 1 reply; 2+ messages in thread
From: Matthias Schiffer @ 2021-09-28 11:40 UTC (permalink / raw)
  To: Stefano Babic, Fabio Estevam
  Cc: NXP i.MX U-Boot Team, u-boot, Matthias Schiffer

The CONFIG_SPL_MAX_SIZE definition did not account for all areas that
are used by the boot ROM according to the manual, causing boot failures
due to truncated SPL images when actually hitting this limit.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
---
 include/configs/imx7_spl.h | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/include/configs/imx7_spl.h b/include/configs/imx7_spl.h
index 01d1cd83b23..128f612392f 100644
--- a/include/configs/imx7_spl.h
+++ b/include/configs/imx7_spl.h
@@ -18,15 +18,23 @@
  *  - Set the stack at the end of the free area section, at 0x00946BB8.
  *  - The BOOT ROM loads what they consider the firmware image
  *    which consists of a 4K header in front of us that contains the IVT, DCD
- *    and some padding thus 'our' max size is really 0x00946BB8 - 0x00911000.
- *    64KB is more then enough for the SPL.
+ *    and some padding. However, the manual also states that the ROM uses the
+ *    OCRAM_EPCD and OCRAM_PXP areas for itself. While the SPL is free to use
+ *    this range for stack and malloc, the SPL itself must fit below 0x920000,
+ *    or the image will be truncated in at least some boot modes like USB SDP.
+ *    Thus our max size is really 0x00920000 - 0x00912000. If necessary,
+ *    CONFIG_SPL_TEXT_BASE could be moved to 0x00911000 to gain 4KB of space
+ *    for the SPL, but 56KB should be more than enough for the SPL.
  */
-#define CONFIG_SPL_MAX_SIZE		0x10000
+#define CONFIG_SPL_MAX_SIZE		0xE000
 #define CONFIG_SPL_STACK		0x00946BB8
 /*
- * Pad SPL to 68KB (4KB header + 64KB max size). This allows to write the
- * SPL/U-Boot combination generated with u-boot-with-spl.imx directly to a
- * boot media (given that boot media specific offset is configured properly).
+ * Pad SPL to 68KB (4KB header + 56KB max size + 8KB extra padding)
+ * The extra padding could be removed, but this value was used historically
+ * based on an incorrect CONFIG_SPL_MAX_SIZE definition.
+ * This allows to write the SPL/U-Boot combination generated with
+ * u-boot-with-spl.imx directly to a boot media (given that boot media specific
+ * offset is configured properly).
  */
 #define CONFIG_SPL_PAD_TO		0x11000
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH] imx: mx7: spl: fix CONFIG_SPL_MAX_SIZE definition
  2021-09-28 11:40 [PATCH] imx: mx7: spl: fix CONFIG_SPL_MAX_SIZE definition Matthias Schiffer
@ 2021-10-07 14:14 ` sbabic
  0 siblings, 0 replies; 2+ messages in thread
From: sbabic @ 2021-10-07 14:14 UTC (permalink / raw)
  To: Matthias Schiffer, U-Boot

> The CONFIG_SPL_MAX_SIZE definition did not account for all areas that
> are used by the boot ROM according to the manual, causing boot failures
> due to truncated SPL images when actually hitting this limit.
> Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-10-07 14:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-28 11:40 [PATCH] imx: mx7: spl: fix CONFIG_SPL_MAX_SIZE definition Matthias Schiffer
2021-10-07 14:14 ` sbabic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).