[U-Boot-Users] U-Boot hang

Wolfgang Denk wd at denx.de
Wed Nov 12 12:15:42 CET 2003


In message <Pine.CYG.4.55.0311121116060.828 at sniper.ultra.si> you wrote:
> 
> > There is no real limit on the size of the image's segments,  but  due
> > to  the  broken memory layout of the ARM you have to be careful where
> > you place your image in RAM, and for  other  memory  mapping  details
> > like stack size.
> 
> memory map for this board:
...
> 0xA000 0000 - 0xA1FF FFFF (32 MiB) SD-RAM
> 	    - 0xA3FF FFFF (64 MiB)

And where did you place the U-Boot image? What's the stack size?

> That tells me it's in _undefined_instruction, if I'm not mistaken. But
> 0xa1fe003c is making me confused since it's _fiq. Does that mean that
> the interrupt has been raised ?

Another explanation is that you're attempting to run bogus code as  a
result of stack corruption.

I set a breakpoint at run_command, restarted and U-boot stopped correctly.
> $sp was 0x0 and info frame showed that local variables were located at
> 0xa1fbdf2c. The question here is: is $sp supposed to point to some location or
> is it OK if it's 0x0 ?

Answer this question yourself: is a C function  supposed  to  have  a
valid stack pointer or not?

> I'm used to debug regular programs and if I enter a function, backtrace
> will always show all the stack frames. Am I missing something here or
> is that saying that the stack is corrupt ?

2 x yes.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Q:  How many IBM CPU's does it take to execute a job?
A:  Four; three to hold it down, and one to rip its head off.




More information about the U-Boot mailing list