From 1b8a1be1a1f143ce6294e2dcd5244d995cdba8cf Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Fri, 30 Jun 2023 23:30:53 -0300 Subject: [PATCH] spl: spl_legacy: Fix spl_end address Currently, spl_end points to the __bss_end address, which is an external RAM address instead of the end of the SPL text section in the internal RAM. This causes boot failures on imx6-colibri, for example: ``` Trying to boot from MMC1 SPL: Image overlaps SPL resetting ... ``` Fix this problem by assigning spl_end to _image_binary_end, as this symbol properly represents the end of the SPL text section. From u-boot-spl.map: .end *(.__end) 0x00000000009121a4 _image_binary_end = . Fixes: 77aed22b48ab ("spl: spl_legacy: Add extra address checks") Reported-by: Francesco Dolcini Signed-off-by: Fabio Estevam Tested-by: Tom Rini Reviewed-by: Marek Vasut Tested-by: Marek Vasut # DH i.MX6Q DHCOM PDK2 --- common/spl/spl_legacy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/spl/spl_legacy.c b/common/spl/spl_legacy.c index d34bc5492e..095443c63d 100644 --- a/common/spl/spl_legacy.c +++ b/common/spl/spl_legacy.c @@ -19,7 +19,7 @@ static void spl_parse_legacy_validate(uintptr_t start, uintptr_t size) { uintptr_t spl_start = (uintptr_t)_start; - uintptr_t spl_end = (uintptr_t)__bss_end; + uintptr_t spl_end = (uintptr_t)_image_binary_end; uintptr_t end = start + size; if ((start >= spl_start && start < spl_end) || -- 2.39.5