[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