]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[romprefix] Force PnP header to a 16-byte boundary for IBM BIOSes
authorMichael Brown <mcb30@ipxe.org>
Tue, 17 May 2011 21:48:52 +0000 (22:48 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 17 May 2011 21:48:52 +0000 (22:48 +0100)
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>
src/arch/i386/prefix/romprefix.S

index 421aa02789139d2baaea623c0b5d66d2079a98c7..aa3465b2a4b0a83b14c5b3bf990bad232707174a 100644 (file)
@@ -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 */