
Hello
2008/10/7 Wolfgang Denk wd@denx.de:
I'm trying to understand how it's done on ARM --
On ARM it's being done wrong - no real relocation is preformed;
What do you mean by "real relocation"? As per start.S bootcode is copied from ROM to RAM.
instead, U-Boot is liked to a fixed address in RAM. The startup code (mostly assembler) can run from ROM (too).
However, this is possible if only startup code is in NOR flash.
The problem with the ARM implementation is that the link address is fixed, i. e. it cannot be adjusted to varying RAM sizes.
Usually one ports U-Boot on a board with predefined hardware layout, i.e. flash, SDRAM and peripherals are fixed. If hardware changes, say SDRAM size, no big deal to make two/three distinct u-boot images -- after all it ends up by changing TEXT_BASE only, as I understand.