On Mon, Feb 25, 2008 at 06:25:14PM +0900, Jun Koi wrote:
On 2/25/08, Jun Koi junkoi2004@gmail.com wrote:
Hmm somehow I missed it: that is the _start in romlayout.S. But then the question is: why the _start code jump back to itself at start up???
Ah, now I see what happens. The -fwhole-program --combine option really confuses me!
Hi Jun,
The code is entered in 16bit mode at ffff:fff0 (romlayout.S) - it then jumps to "post16" in romlayout.S. The code there transitions the CPU to 32bit mode and jumps to _start in post.c. After we initilize everything, the cpu is transitioned back to 16bit mode and an "int 0x19" is executed to start the standard boot process.
The _start in romlayout.S is confusing - I put it there to silence a linker warning. I'll clean that up.
-Kevin