diff options
author | Michael Brown | 2011-05-17 16:27:47 +0200 |
---|---|---|
committer | Michael Brown | 2011-05-17 16:27:47 +0200 |
commit | 058b69d033ab626da5cb68d3b1028090a37cc2e3 (patch) | |
tree | 83e1099ac6ffa13e0d2464a446438dd77d90f6b1 /src | |
parent | [contrib] Update rom-o-matic to build iPXE (diff) | |
download | ipxe-058b69d033ab626da5cb68d3b1028090a37cc2e3.tar.gz ipxe-058b69d033ab626da5cb68d3b1028090a37cc2e3.tar.xz ipxe-058b69d033ab626da5cb68d3b1028090a37cc2e3.zip |
[romprefix] Remove special treatment for IBM BIOSes
Revert commit 38cd351 ("[romprefix] Attempt to gracefully handle
semi-PnP IBM BIOSes"), since the test for the "IBM " signature in %edi
is not sufficient to identify an IBM BIOS.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/i386/prefix/romprefix.S | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S index 49fd24b9..dd602ddb 100644 --- a/src/arch/i386/prefix/romprefix.S +++ b/src/arch/i386/prefix/romprefix.S @@ -13,7 +13,6 @@ FILE_LICENCE ( GPL2_OR_LATER ) #define PNP_SIGNATURE ( '$' + ( 'P' << 8 ) + ( 'n' << 16 ) + ( 'P' << 24 ) ) #define PMM_SIGNATURE ( '$' + ( 'P' << 8 ) + ( 'M' << 16 ) + ( 'M' << 24 ) ) #define PCI_SIGNATURE ( 'P' + ( 'C' << 8 ) + ( 'I' << 16 ) + ( ' ' << 24 ) ) -#define IBM_SIGNATURE ( ( 'I' << 24 ) + ( 'B' << 16 ) + ( 'M' << 8 ) + ' ' ) #define STACK_MAGIC ( 'L' + ( 'R' << 8 ) + ( 'E' << 16 ) + ( 'T' << 24 ) ) #define PMM_ALLOCATE 0x0000 #define PMM_FIND 0x0001 @@ -173,7 +172,6 @@ undiheader: init: /* Preserve registers, clear direction flag, set %ds=%cs */ pushaw - pushl %ebx pushw %ds pushw %es pushw %fs @@ -182,14 +180,15 @@ init: pushw %cs popw %ds - /* Shuffle some registers around. We need to use %di for the - * print_xxx functions, so shuffle as follows: + /* Shuffle some registers around. We need %di available for + * the print_xxx functions, and in a register that's + * addressable from %es, so shuffle as follows: * + * %di (pointer to PnP structure) => %bx * %bx (runtime segment address, for PCI 3.0) => %gs - * %edi (IBM signature) => %ebx */ movw %bx, %gs - movl %edi, %ebx + movw %di, %bx /* Store PCI bus:dev.fn address */ movw %ax, init_pci_busdevfn @@ -264,16 +263,7 @@ no_pci3: popl %edx popl %ebx - /* Check for IBM BIOS, which uses the PnP entry points but - * doesn't indicate PnP support. - */ - cmpl $IBM_SIGNATURE, %ebx - jne no_ibm - movw $init_message_ibm, %si - xorw %di, %di - call print_message - jmp pnp_done -no_ibm: /* Check for PnP BIOS. Although %es:di should point to the + /* Check for PnP BIOS. Although %es:di should point to the * PnP BIOS signature on entry, some BIOSes fail to do this. */ movw $( 0xf000 - 1 ), %bx @@ -426,7 +416,6 @@ no_pmm: popw %fs popw %es popw %ds - popl %ebx popaw /* Indicate boot capability to PnP BIOS, if present */ @@ -541,9 +530,6 @@ init_message: init_message_pci: .asciz " PCI" .size init_message_pci, . - init_message_pci -init_message_ibm: - .asciz " IBM" - .size init_message_ibm, . - init_message_ibm init_message_pnp: .asciz " PnP" .size init_message_pnp, . - init_message_pnp |