as far as I know, linux does not touch the BIOS data areas,
and "machine_real_start" sets the IDT to 0,3ff again (the
contents of the real-mode IDT are not modified by linux).
the only piece of hardware neccessary to reset was the interrupt
controller, in particular, the IRQ mapping.
> It is surprising it worked that well. You can't even boot
> DOS from DOS, DOS will have changed interrupt vectors which
> would cause a second DOS to fail. If Linux is booted from
> LOADLIN there will already be messed enough with the
interesting that you mention loadlin. when I run loadlin in a
DOS which I booted from linux, (boot linux->boot dos->boot linux),
the 2nd linux boot (by loadlin) will hang with the following message:
C:\LOADLIN> loadlin
[...]
Your current DOS/CPU configuration is:
load buffer size: 0x[*HANGING*]
This looks promising. I think I gonna download loadlin source now :-)
On the other hand, when instead of loadling MBR and executing it, I
do a far jmp to 0xf000:0xfff0 from "machine_real_start", normal
boot-procedure is exected without haning anywhere. So I think that the
bios-setup is doing some kind of initialisation/modification to whatver(!?)
which the "machine_real_start" function does not.
thanks,
herbert rosmanith
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/