aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2014-08-21 15:59:11 +0100
committerMichael Brown <mcb30@ipxe.org>2014-08-22 15:05:05 +0100
commit16e235987fae94e53db293990ad4f2d816b72326 (patch)
treef184c3e5ee33aed4696f22d0a04c2d129b36cd96 /src
parentec7c331ca34d4fc8fd4038f7d76e5bc17236da77 (diff)
downloadipxe-16e235987fae94e53db293990ad4f2d816b72326.zip
ipxe-16e235987fae94e53db293990ad4f2d816b72326.tar.gz
ipxe-16e235987fae94e53db293990ad4f2d816b72326.tar.bz2
[romprefix] Do not preserve unused register %di
Since some PnP BIOSes fail to set %es:di to point to the PnP signature on entry, we identify a PnP BIOS by scanning through the top 64kB of base memory looking for the PnP structure. We therefore don't actually use the values of %es:di provided to the initialisation entry point, and so there is no need to preserve them. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r--src/arch/i386/prefix/romprefix.S9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S
index ae18f05..9999440 100644
--- a/src/arch/i386/prefix/romprefix.S
+++ b/src/arch/i386/prefix/romprefix.S
@@ -208,15 +208,8 @@ init:
pushw %cs
popw %ds
- /* 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
- */
+ /* Store PCI 3.0 runtime segment address for later use */
movw %bx, %gs
- movw %di, %bx
/* Store PCI bus:dev.fn address */
movw %ax, init_pci_busdevfn