From: Michael Brown Date: Tue, 17 May 2011 21:48:52 +0000 (+0100) Subject: [romprefix] Force PnP header to a 16-byte boundary for IBM BIOSes X-Git-Tag: v1.20.1~2120 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4f0c5d088ccbeb762496f08fd85a9e68a2d5a20;p=thirdparty%2Fipxe.git [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 --- diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S index 421aa0278..aa3465b2a 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 */