Greetings,
The confusion is that there are multiple stages to LinuxBIOS. All x86 machines start at 0xf000:fff0 in real mode. The flash itself lives at the top of the 4GB address space and the chipset arranges for an alias at the top of the 1MB real mode address space.
The instruction at that start address will be a jmp to the assembly language initialization code. Once the memory is set up, the next stage is copied from rom (possibly with decompression) to 0x80000 which includes _start. That code consists of a little assembly language (equivilant to crt0 in a normal C application) followed by the bulk of LinuxBIOS which is compiled from C. That code is entered at hardwaremain.
G'day, sjames
On Mon, 5 May 2003, Xavier Pegenaute wrote:
Hello,
i'm doing documentation about the code of LinuxBios with ADLO for my thesis, and i thought that may be you can helpme in things that are usefull to know for understand the code of LinuxBios. Of course after the document can be for linuxbios.
I started by a mail of Greg Watson that explain how is linked crt0.S and linuxbios, after this i started to explain the main things of hardwaremain.c that jump to the elfboot and finally elfboot to kernel.
Any one thing that is usefull to explain something else ?
Another thing that is a little confused in me .., the true point of start code, in some info say that is in 0xf0000, but in the compilation of ms7308e i see that is in:
linuxbios.map:00080004 T _start
i supose that then it depends of the motherboard ...
At the moment it's all. Thanks for all. Xavi.
Linuxbios mailing list Linuxbios@clustermatic.org http://www.clustermatic.org/mailman/listinfo/linuxbios