[U-Boot-Users] Help with crash
Richard Danter
richard.danter at ntlworld.com
Tue Jul 5 13:02:44 CEST 2005
Hi All,
I have been making some progress with porting U-Boot to a 7400/107
board. I now have serial out, but crash before the code is relocated to
RAM. Can anyone help me please?
The last thing I see on the serial console is:
Reserving 48 Bytes for Global Data at: 03fc9f98
I think the address looks OK as I have 64MB RAM on this board so Global
Data is just below the top of that.
This is where I get to in lib_ppc/board.c:
/*
* Finally, we set up a new (bigger) stack.
*
* Leave some safety gap for SP, force alignment on 16 byte
boundary
* Clear initial stack frame
*/
addr_sp -= 16;
fff036b4 subi r31,r26,0x1078
fff036b8 crclr cr6
fff036bc bl printf
debug ("Reserving %d Bytes for Global Data at: %08lx\n",
fff036c0 li r4,0x30
fff036c4 lwz r3,-0x7FC4(r30)
fff036c8 mr r5,r24
addr_sp &= ~0xF;
fff036cc clrrwi r31,r31,4
fff036d0 crclr cr6
fff036d4 bl printf
fff036d8 mr r11,r31
fff036dc subi r31,r31,4
fff036e0 stw r25,__fixup_entries(r11) <== Crash here
*((ulong *) addr_sp)-- = 0;
debug ("Stack Pointer at: %08lx\n", addr_sp);
fff036e4 lwz r3,-0x7FC0(r30)
fff036e8 stw r25,__fixup_entries(r31)
fff036ec subi r31,r31,4
fff036f0 mr r4,r31
fff036f4 crclr cr6
fff036f8 bl printf
When I step through the instruction at fff036e0 I end up at 700, which
is the Program Exception vector (srr0 = 0x800, srr1 = 80000) which
implies an illegal instruction?
From the System.map file I can see that __fixup_entries is 0. Is this
correct?
Can anyone suggest where I should be looking to fix this? I appreciate I
have not given much info, I can send more if you let me know what you need.
Thanks
Rich
More information about the U-Boot
mailing list