[U-Boot] [PATCH] arm: vf610: fix boot from SD-card

Stefan Agner stefan at agner.ch
Thu Jan 8 18:18:25 CET 2015


Boot from SD-card (and probably also from NAND) was broken since
commit d6d07a9bec ("arm: vf610: add NAND support for vf610twr").
It looks like the increased size of U-Boot lead to a situation
where the boot ROM overwrote its own stack/heap while loading
U-Boot from the SD-card to the SRAM. However, U-Boot worked fine
when loaded through USB serial loader directly into SRAM. It
looks like loading from SD-card uses other stack/heap location
then the serial loader (or maybe no stack or heap at all).
This fix moves U-Boot to gfxRAM, which is 512kB in size and is not
used by the boot ROM nor the SD-card loader of it.

Signed-off-by: Stefan Agner <stefan at agner.ch>
---
We use U-Boot from gfxRAM on Vybrid since quite a while for the
Colibri VF50/VF61 modules in our downstream U-Boot branch. Hence
this is quite well tested.

Just today I discovered that this is broken on the Tower module.
Back then, when I made the offending change, I only tested on the
Tower board using the serial loader, since I thought the behaviour
should be exactly the same. But now, I know better... :-)

If still possible, it would be great to get this into v2015.01...

 include/configs/vf610twr.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h
index 6fd0b17..bd79e81 100644
--- a/include/configs/vf610twr.h
+++ b/include/configs/vf610twr.h
@@ -125,7 +125,10 @@
 #define CONFIG_BOOTDELAY		3
 
 #define CONFIG_LOADADDR			0x82000000
-#define CONFIG_SYS_TEXT_BASE		0x3f008000
+
+/* We boot from the gfxRAM area of the OCRAM. */
+#define CONFIG_SYS_TEXT_BASE		0x3f408000
+#define CONFIG_BOARD_SIZE_LIMIT		524288
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"script=boot.scr\0" \
-- 
2.2.1



More information about the U-Boot mailing list