[SeaBIOS] [PATCH] optionrom: disallow int19 redirect for pnp roms.

Kevin O'Connor kevin at koconnor.net
Wed Nov 28 16:31:41 CET 2018

On Wed, Nov 28, 2018 at 07:24:21AM +0100, Gerd Hoffmann wrote:
> On Tue, Nov 27, 2018 at 09:19:09PM -0500, Kevin O'Connor wrote:
> > 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 pci passthrough.
> 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.

> > I'm leery 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
Legacy machines.


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.


More information about the SeaBIOS mailing list