
Dear Wolfgang,
Am Mittwoch, 16. Juni 2010 14:56:31 schrieb Wolfgang Denk:
A new approach would be to link lowlevel_init directly at 0x00200000 (which is AT91SAM9260_SRAM0_BASE) but the code is located next to the "normal" .text segment. I've prepared a change to cpu/arm926ejs/u-boot.lds (I know it's still 2010.3 but that shouldn't matter now) which links lowlevel_init to 0x00200000. I added the symbols __lowlevel_init_start and __lowlevel_init_end to be used to copy the function from it's LMA to it's VMA address. I'm rather unsure if this will work as I thought, Of course more has to be done, like
- Make SRAM address configureable
- Only link to this if CONFIG_SKIP_LOWLEVEL_INIT is not defined
- Maybe create a region for that
- ...
Any opinions, hints, more elegant methods?
Who loads the code to SRAM?
This code has to be added before bl here: start.S:165-167
#ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_crit #endif
As start.S is generic to arm926ejs there have to be an extra #ifdef or something.
Best regards, Alexander