From d4f0c5d088ccbeb762496f08fd85a9e68a2d5a20 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 17 May 2011 22:48:52 +0100 Subject: [PATCH] [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 --- src/arch/i386/prefix/romprefix.S | 5 +++++ 1 file changed, 5 insertions(+) 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 */