diff options
| author | Michael Brown | 2014-08-21 16:59:11 +0200 |
|---|---|---|
| committer | Michael Brown | 2014-08-22 16:05:05 +0200 |
| commit | 16e235987fae94e53db293990ad4f2d816b72326 (patch) | |
| tree | f184c3e5ee33aed4696f22d0a04c2d129b36cd96 /src/arch | |
| parent | [efi] Dump details of any calls to our dummy block and disk I/O protocols (diff) | |
| download | ipxe-16e235987fae94e53db293990ad4f2d816b72326.tar.gz ipxe-16e235987fae94e53db293990ad4f2d816b72326.tar.xz ipxe-16e235987fae94e53db293990ad4f2d816b72326.zip | |
[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/arch')
| -rw-r--r-- | src/arch/i386/prefix/romprefix.S | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S index ae18f05d0..999944013 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 |
