Re: [Etherboot-developers] rtl_disable and random kernel crash.
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Ken Y. <ke...@nl...> - 2001-04-08 12:35:42
|
>I think the source of the problems with local booting and 4.7.23 is the >PCI_PNP_HEADER patch. If you look closely at the code below the "over:" >label at line 138, the "#ifdef - #endif" labels for PCI_PNP_HEADER and >NOINT19H are mismatched (i.e., "#endif /* PCI_PNP_HEADER */" appears >_between_ the "#ifdef NOINT19H" conditional and its associated "#endif"). You're right. The wrong comments are attached to the #endifs, but nonetheless the code is also not what was intended. That's what happens when your brain gets mushed by trying to save lines and looking at inverse logic. >I think the original intention was: >1. If compiled for PCI_PNP, the system BIOS will invoke the "blockmove" >entrypoint defined in the "$PnP" structure, so there is no need to do _any_ >initialization via the option ROM entry at offset 3 in the code (which jumps >to label "over:"). I'm not sure of the significance of returning 0x20 in ax >at this point, so I left it there. The initialisation has to return 0x20 in %ax to indicate a bootable device. >2. If the ROM is not PCI_PNP, you have two options: trap INT19, or not. >2a. INT19 trapped: patch the INT19 vector, and return to the system BIOS, >which will invoke INT19 when initialization is complete and it is ready to >boot. >2b. No INT19 trap: assume no further initialization by the system BIOS is >necessary - simply grab control and don't give it back. > >I submit the code below is more correct than that currently in 4.7.23. >This may (or may not) resolve some of the issues with inability to "local" >boot after the etherboot ROM is invoked. Thanks, you found the problem. I'll fix this now. |