On 10/11/2010 02:41 PM, Sebastian Herbszt wrote:
H. Peter Anvin wrote:
On 10/11/2010 01:30 PM, Anthony Liguori wrote:
On 10/11/2010 02:59 PM, Gleb Natapov wrote:
No boot rom should do that. extboot wreaks havoc when it is used. And since virtio is now supported by bios there is no reason to use it.
You don't really have a choice. You could be doing hardware passthrough and the ROM on the card may hijack int19.
The BBS standard actually documents how to deal with that -- it pretty much works out to "let the card initialize, then see if it mucked with int19, and then put int19 back... if we want to run that card, then we invoke the int19 that the card set up."
The BIOS Boot Specification, Version 1.01 from January 11, 1996 seems not to recommend this:
3.4 Legacy IPL Devices
"Legacy IPL devices will be allowed to take control of the system (via hooking interrupts) in both Legacy and PnP systems. The Plug and Play BIOS specification recommends that Legacy devices that hook a bootstrap interrupt such as INT 19h, 18h, or 13h have the interrupt re-captured by the BIOS. This is not done because grabbing an interrupt vector back after a device has hooked it can produce unpredictable results. Further, by allowing the card to take control, the behavior of these Legacy cards will be the same on both PnP and Legacy machines."
6.8 Notes on the POST Process
"The Plug and Play BIOS Specification says that if a Legacy IPL device's option ROM captures INT 18h or INT 19h, the BIOS should save this vector and then restore the original one put there by the BIOS. The BIOS Boot Specification deviates from this in that these vectors are not recaptured after each Legacy option ROM returns from initialization. That would be considered unsafe."
Sorry, you're right -- I confused the PNPBIOS spec with the BBS spec (and compounded the error by correctly remembering that BBS overrides PNPBIOS).
-hpa