Page 1 of 1
Linux boot
Posted: Mon Aug 04, 2003 6:43 am
by Silverhawk
Does someone know why the linux boot reallocates itself from 0x7c00 to 0x90000 ?
I really don't understand...
thanks !
Linux boot : another one !
Posted: Mon Aug 04, 2003 7:08 am
by Silverhawk
Now, I have another question !
This is a quote frome the linux bootsect.S :
! ok, we've written the message, now
! we want to load the system (at 0x10000)
mov ax,#SYSSEG
mov es,ax ! segment of 0x010000
call read_it
call kill_motor
call print_nl
We aren't in Pmode !!! How is it possible to load the system at physical address 0x100000 ???
I really don't understand too...
Re:Linux boot
Posted: Mon Aug 04, 2003 8:12 am
by Therx
it isn't 0x100000 but 0x10000
Re:Linux boot
Posted: Tue Aug 05, 2003 1:52 am
by Silverhawk
Yes, but a segment of 0x10000 gives a physical address of 0x100000 ??
Re:Linux boot
Posted: Tue Aug 05, 2003 2:22 am
by Therx
Sorry I may be wrong as I havn't done much in real mode addressing but the solution may be this:-
I know that somehow 16bit addresses allow you to access just over 1mb (look through the boot sector topics from a while ago) and if the code copied there is small then it may work.
Just a guess
Pete
Re:Linux boot
Posted: Tue Aug 05, 2003 5:14 am
by Silverhawk
Thanks Pete !
I will look after it...
Re:Linux boot
Posted: Tue Aug 05, 2003 5:54 am
by Pype.Clicker
Silverhawk wrote:
Yes, but a segment of 0x10000 gives a physical address of 0x100000 ??
you may not have a segment of 0x10000 as the ES register is only 16bits wide.
Code: Select all
@asm-i386/boot.h:
#define DEF_SYSSEG 0x1000
@boot/setup.S
SYSSEG = DEF_SYSSEG # 0x1000, system loaded at 0x10000 (65536).
so the actual ES value is 0x1000, which means the logical address 0x10000 will be used.
for sure linux comments could be less confuse here.
Re:Linux boot
Posted: Tue Aug 05, 2003 6:24 am
by Silverhawk
OK you're right !
I've read the code with more attention, and indeed, we're at physical address 0x10000...
I 've believe what the comments...
Thanks Pype.Cliker