
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