On Wed, Nov 28, 2018 at 07:24:21AM +0100, Gerd Hoffmann wrote:
On Tue, Nov 27, 2018 at 09:19:09PM -0500, Kevin
That is very odd. I'm pretty sure iPXE
normally does register itself
as a BEV - any idea why it's now hooking int19?
It's not ipxe.
Ah, okay. The bugzilla entry is confusing for those without access to
the full report.
It is the rom of a intel nic, attached to a guest via
It does both, register bev and hook int19. No clue why. The only
reason I can think of is backward compatibility to firmware so old that
it doesn't know pnp roms. Which is a silly thing in pci express
hardware. Maybe they carry forward that code since decades ...
It's also possible that the nic attempted to verify the bios was pnp
compatible, but seabios failed that check for some reason. More
likely that the nic optionrom is just broken though.
of making a change like this, because there's a good chance
it will break something in some other obscure software.
I've added a rather verbose message printing some information about the
rom because of that.
Unfortunately, I fear no one will see that warning in practice -
instead I fear a problem would appear as an obscure regression.
FWIW, the following is from the "BIOS Boot Specification" v1.01:
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
Which I read as an indicator that recapturing the int 0x19 vector was
known to cause problems.
I think fixing
this in iPXE would be preferable if possible.
See above. ipxe doesn't need fixing.
In comment #29 and #32 of the above bugzilla, it is mentioned there
are other workarounds - do those not work in practice? It sounds like
maybe this particular rom should just be blacklisted somehow.