[U-Boot] OMAP3 Regression after merging ARM relocation code for custom board
Luca Ceresoli
luca at lucaceresoli.net
Tue Mar 15 17:46:27 CET 2011
Hi,
I ported U-boot to a custom BeagleBoard-derivative board, which is running
fine so far.
Now I'm trying to upgrade from the current codebase (v2010.06) to a more
recent one. My custom U-boot stopped booting after merging the
ARM relocation code implemented in september 2010 by Heiko Schocher,
even though I think I've changed my code where needed.
More in detail, my code base works perfectly if merged with the upstream
code (from git://git.denx.de/u-boot.git) until the commit before the ARM
relocation series:
4fff329 nand_boot_fsl_nfc.c: make "nfc" a "static const" pointer
It stops working when I merge these 3 commits (plus an arbitrarily large
amount of the following ones):
f1d2b31 ARM: add relocation support
e48b7c0 ARM: implement relocation for ARM11
561142a ARM: implement relocation for ARM V7 (OMAP)
plus this patch to my code (copied from the Beagle code changes in commit
561142a above):
diff --git a/board/mycompany/myboard/config.mk b/board/mycompany/myboard/config.mk
index 150b30c..a9c88d2 100644
--- a/board/mycompany/myboard/config.mk
+++ b/board/mycompany/myboard/config.mk
@@ -30,4 +30,4 @@
# (mem base + reserved)
# For use with external or internal boots.
-TEXT_BASE = 0x80e80000
+TEXT_BASE = 0x80008000
diff --git a/include/configs/omap3_myboard.h b/include/configs/omap3_myboard.h
index c62febd..be0d9a9 100644
--- a/include/configs/omap3_myboard.h
+++ b/include/configs/omap3_myboard.h
@@ -333,4 +333,9 @@ extern unsigned int boot_flash_sec;
extern unsigned int boot_flash_type;
#endif
+/* additions for new relocation code, must added to all boards */
+#undef CONFIG_SYS_ARM_WITHOUT_RELOC /* This board is tested with relocation support */
+#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_SP_ADDR (LOW_LEVEL_SRAM_STACK - CONFIG_SYS_GBL_DATA_SIZE)
+
#endif /* __CONFIG_H */
The result is that U-boot does not print any single character on the serial
console, and I'm lost since I can't use a JTAG emulator.
As I am not expert in the low-level U-boot code, I don't know where to look
at. Any suggestion would be appreciated.
Here are a few more details that might be relevant.
The board is a BeagleBoard derivative, with the same CPU (OMAP3530,
Cortex-A8) and NAND flash chip.
The RAM chip is the same model, but we have only one 128 MB chip instead of
two.
There's also a LAN chip (SMC911x family).
I started my porting from the upstream repository at
git://git.denx.de/u-boot.git and created a branch.
Here I added a new board, initially equal to Beagle, then I removed some
unwanted features (JFFS2, board detection), added some wanted ones
(UBI/UBIFS, LAN driver, CONFIG_CMD_NET) and adapdet the default environment.
I also changed CONFIG_SYS_MALLOC_LEN from 128kB to 1MB, as it was not enough
for UBI to work.
Thanks in advance,
Luca
More information about the U-Boot
mailing list