Calling the kernel from a mini-bootloader
Guillaume Dargaud
dargaud at lpsc.in2p3.fr
Tue Jul 22 20:49:49 EST 2008
Thank you Milton for the detailed explanation. It'll take me quite a while
to digest it.
As a follow up to my previous messages, I now have a working kernel and a
working bootloader... but not when they are both together.
Case in point:
- load zImage.elf to DRAM 0x400000 with JTAG debugger. Run it. It runs fine.
- Load Bootloader.elf to BRAM 0xFFFF0000 with JTAG debugger. Run it. It runs
fine (but it doesn't do much yet).
- Now load both of the previous ones, and have the bootloader perform a jump
to kernel:
typedef void tFunc(void);
((tFunc *)0x400000)();
The kernel seems to start:
loaded at: 00400000 004EA19C
board data at: 004E8120 004E819C
relocated to: 0040405C 004040D8
zimage at: 00404E48 004E7A7E
avail ram: 004EB000 08000000
Linux/PPC load: console=ttyUL0,115200 rw root=/dev/nfs ip=bootp
Uncompressing Linux...done.
Now booting the kernel
But then it hangs for exactly 3 minutes, nothing on the serial port, before
the bootloader restarts.
Why should the behavior be different whether it's started from the debugger
or from my bootloader ?
--
Guillaume Dargaud
http://www.gdargaud.net/
More information about the Linuxppc-dev
mailing list