
In message Pine.CYG.4.55.0311121218030.828@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