[U-Boot-Users] U-Boot hang

Wolfgang Denk wd at denx.de
Wed Nov 12 16:10:28 CET 2003


In message <Pine.CYG.4.55.0311121218030.828 at sniper.ultra.si> you wrote:
>
> > > 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?
> 
> I'm downloading U-boot to 0x00000000 (FLASH), but it's relocating to
> 0xa1fe0000 (TEXT_ADDRESS).

0xA1FFFFFF - 0xa1fe0000 = 128 kB.

> Stack size: #define CONFIG_STACKSIZE        (120<<10)      /* stack size */

How do you manage to squeeze 120k of stack AND the U-Boot image in  a
total of 128 kB?

> > Answer this question yourself: is a C function  supposed  to  have  a
> > valid stack pointer or not?
> 
> yes Sir, but I might not know everything that could be used/is a valid hack.

When U-Boot is running from RAM it expects  a  normal  C  environment
including a unlimited stack (well, in theory at least).

> I've also noticed that after running "help help" command, the run_command
> is executed and has a valid cmd ptr. But when the function processes the
> input parameters (calling processes_macros and then parse_line) the cmd ptr
> points to 0x0. This indicates that the stack is being corrupted, am I right ?

Right.

> I will investigate the stack setup and will get back on that.

Try what happens when setting TEXT_BASE = 0xA1F00000 ...

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
"And it should be the law: If you use  the  word  `paradigm'  without
knowing  what  the  dictionary  says  it  means,  you  go to jail. No
exceptions."                     - David Jones @ Megatest Corporation




More information about the U-Boot mailing list