
Dear Reinhard Meyer,
In message 4C98A78D.7070407@emk-elektronik.de you wrote:
What bothers me really here is the huge increase in code size.
As has been pointed out by others, there are several factors that contribute to that code.
And, on almost all AT91 systems booting will be through a first boot loader, which sets up SDRAM, loads u-boot to the "correct" address and jumps to it.
When you have to support multiple memory configurations that "correct" address is typically right in the middle of your RAM.
Assume you have a system with 64 or 128 MB of RAM. In the old way, U-Boot will probably sit somewhere at offset 63 MB or so, close to the end of the "small" configuration.
On the big board this is neatly splitting the RAM into two small chunks - please explain to a customer why he cannot load a 64 MB image to RAM when there are 128 MB of RAM on his board, 127 MB of these actually unused?
r why you need multiple binary images of U-Boot if you want to initialize and pass some memory at the end of RAM for further use in Linux, say frame buffer, or PRAM, or a log buffer?
All low level init and relocation is not required in such cases.
Relocation is still needed.
Best regards,
Wolfgang Denk