diff options
author | Michael Brown | 2011-05-17 23:48:52 +0200 |
---|---|---|
committer | Michael Brown | 2011-05-17 23:48:52 +0200 |
commit | d4f0c5d088ccbeb762496f08fd85a9e68a2d5a20 (patch) | |
tree | 1306539043ea06a3ae21a532d616040e518d654b /src | |
parent | [romprefix] Do not fall back to hooking INT19 by default (diff) | |
download | ipxe-d4f0c5d088ccbeb762496f08fd85a9e68a2d5a20.tar.gz ipxe-d4f0c5d088ccbeb762496f08fd85a9e68a2d5a20.tar.xz ipxe-d4f0c5d088ccbeb762496f08fd85a9e68a2d5a20.zip |
[romprefix] Force PnP header to a 16-byte boundary for IBM BIOSes
IBM BIOSes ignore the PnP header offset stored at address 0x1a and
instead scan for the $PnP signature on a 16-byte boundary. (This
alignment is not mandated by the PnP specification.)
Force PnP header to a 16-byte boundary to work around these BIOSes.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/i386/prefix/romprefix.S | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S index 421aa027..aa3465b2 100644 --- a/src/arch/i386/prefix/romprefix.S +++ b/src/arch/i386/prefix/romprefix.S @@ -104,6 +104,11 @@ pciheader_runtime_length: .long 0 .previous + /* PnP doesn't require any particular alignment, but IBM + * BIOSes will scan on 16-byte boundaries rather than using + * the offset stored at 0x1a + */ + .align 16 pnpheader: .ascii "$PnP" /* Signature */ .byte 0x01 /* Structure revision */ |