[U-Boot] OMAP3 Regression after merging ARM relocation code for custom board

Albert ARIBAUD albert.aribaud at free.fr
Tue Mar 15 20:16:09 CET 2011


Le 15/03/2011 17:46, Luca Ceresoli a écrit :
> 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

Hi Luca,

As several fixes were introduced after the ARM relocation commits you 
are talking about, I would suggest not to try and progressively merge 
U-boot into your changes, but rather to rebase your branch  directly on 
top of the current master of u-boot or u-boot-arm, so that you have all 
fixes which followed ARM relocation work.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list