
On Wed, 7 Jul 2004, Friedrich, Lars wrote:
Maybe, but I don't think so. At least I see no code in ARMBoot to relocate the exception vectors.
Because they can't be. The vectors always sit at address 0000'0000, and thus in the flash. You can only change that by turning on the MMU. So the relocated entry points are loaded to the pc via ldr, the only exception being the RESET vector, obviosly. In other words, interrupts in ARMboot can only be used _after_ relocation.
I think you fail to understand the problem.
IF the flash memory is mapped to an area != 0x0 AND the SDRAM memory is mapped to 0x0 BUT the _TEXT_BASE does not start at 0x0, THEN the exception vectors will not work, as there is no proper handling of this case in the current code.
All other issues you have raised are correct, but fail to recognize the situation.
You are right, but I wasn't trying to. :-) I was merely clarifying how things were done in ARMboot, when things still worked consistently (granted, for a much smaller set of machines/archs.) In other words, it is not ARMboot's fault that you're running into problems. I don't know how U-Boot does it today, and specifically, how your board configures things.
I agree this is not much help for you and I apologise for the noise.
Regards, Marius