[romprefix] Preserve %edi when issuing INT 1A,B101
authorMichael Brown <mcb30@etherboot.org>
Tue, 26 Aug 2008 04:03:19 +0000 (05:03 +0100)
committerMichael Brown <mcb30@etherboot.org>
Tue, 26 Aug 2008 04:03:19 +0000 (05:03 +0100)
INT 1A,B101 (get PCI BIOS version) will overwrite %edi.

src/arch/i386/prefix/romprefix.S

index 8b2e20b..b22cbab 100644 (file)
@@ -177,6 +177,7 @@ init:
        /* Check for PCI BIOS version */
        pushl   %ebx
        pushl   %edx
+       pushl   %edi
        stc
        movw    $0xb101, %ax
        int     $0x1a
@@ -199,7 +200,8 @@ init:
 1:     /* PCI <3.0: set %gs (runtime segment) = %cs (init-time segment) */
        pushw   %cs
        popw    %gs
-2:     popl    %edx
+2:     popl    %edi
+       popl    %edx
        popl    %ebx
 
        /* Check for PnP BIOS */