
Hello,
I recently spent quite a lot of time finding a problem where U-boot was overwriting part of its stack onto my kernel that I had downloaded via tftpboot.
The board I am using is a Sequoia, powerpc 440EPx board running U-boot 1.2.0-gc0c292b2 (Jun 5 2007 - 07:16:12).
I found that when I booted my Linux kernel, part of its text space was corrupted upon entry. I traced this back to U-boot writing a command line and board info record into its own stack space (- 2048 bytes). This happens in common/cmd_bootm.c
What surprised me was that this board (fairly old now) has 256M of memory, but U-boot's stack pointer was around the 8MB point (the pointer to the board info record passed into my kernel is address 0x007ffe70 -- just under 8M).
So I have a couple of questions:
1) Any idea why the stack pointer would be so low in memory? 2) Is there any way to tell, once the board is up and running U-boot, where its stack space is so that I can be sure to avoid running into it?
The U-boot that is running on this board wasn't compiled with DEBUG enabled.
Thanks for your consideration,
- Corey