Messages in this thread | | | From | "H.Rosmanith (Kernel Mailing List)" <> | Subject | Re: emm386 hangs when booting from linux | Date | Sat, 1 Mar 2003 00:43:44 +0100 (MET) |
| |
> Booting DOS from Linux is not as easy as booting Linux from > DOS. DOS relies much more on the BIOS, and the state of the > computer as it is setup by the BIOS. What needs to be right > for DOS to work is the contents of the BIOS data areas of > RAM, and the interrupt vector table, and state of some of > the hardware.
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/
| |