
Hi Wolfgang,
On Fri, Aug 6, 2010 at 11:46 AM, Wolfgang Denk wd@denx.de wrote:
Dear Ben Gardiner,
In message AANLkTi=Tcf1m7UMqs6iQj47E7PxndjkEX1BwU8RGyVyu@mail.gmail.com you wrote:
First, for the 'shared ram' region which is 128k@0x80000000 I tried: #define CONFIG_SYS_INIT_SP_ADDR (0x80000000 + 128*1024 -1)
The "-1" is probably a bad idea, as your stack will point to an odd address then. Try and make this "-8" instead. Or "-16".
Good point. Thank you.
But I think that the value loaded to sp is still wrong because of the restrictions on immediate arguments in ARM instructions.
with (0x80000000 + 128*1024 -16): --- c1080078 <call_board_init_f>: c1080078: e59fd328 ldr sp, [pc, #808] ; c10803a8 <fiq+0x48> c108007c: e3a00000 mov r0, #0 ; 0x0 c1080080: eb00017f bl c1080684 <board_init_f>
and with (0x80000000 + 128*1024 -8): --- c1080078 <call_board_init_f>: c1080078: e59fd328 ldr sp, [pc, #808] ; c10803a8 <fiq+0x48> c108007c: e3a00000 mov r0, #0 ; 0x0 c1080080: eb00017f bl c1080684 <board_init_f>
and neither image is bootable.
Then for the 'ARM local RAM' which is 8k@0xffff0000 I tried: #define CONFIG_SYS_INIT_SP_ADDR (0xffff0000 + 8*1024 -1)
Again, try "-8" instead. Or "-16".
doing so here yields unusable images also and the values assigned to sp seem to be the same as above.
with (0xffff0000 + 8*1024 - 16): --- c1080078 <call_board_init_f>: c1080078: e59fd328 ldr sp, [pc, #808] ; c10803a8 <fiq+0x48> c108007c: e3a00000 mov r0, #0 ; 0x0 c1080080: eb00017f bl c1080684 <board_init_f>
and with (0xffff0000 + 8*1024 - 8): ---- c1080078 <call_board_init_f>: c1080078: e59fd328 ldr sp, [pc, #808] ; c10803a8 <fiq+0x48> c108007c: e3a00000 mov r0, #0 ; 0x0 c1080080: eb00017f bl c1080684 <board_init_f>
Best Regards, Ben Gardiner
--- Nanometrics Inc. http://www.nanometrics.ca