summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2007-01-09 03:29:54 +0100
committerMichael Brown2007-01-09 03:29:54 +0100
commit2436dac281caa1549a297938e7938e2faf35c2fe (patch)
treedb9054f8094fb50386c8dd590dc2a726a479b7bb
parentProvide storage for an undi_device structure representing the preloaded (diff)
downloadipxe-2436dac281caa1549a297938e7938e2faf35c2fe.tar.gz
ipxe-2436dac281caa1549a297938e7938e2faf35c2fe.tar.xz
ipxe-2436dac281caa1549a297938e7938e2faf35c2fe.zip
Populate preloaded_undi device when applicable.
-rw-r--r--src/arch/i386/prefix/pxeprefix.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/arch/i386/prefix/pxeprefix.S b/src/arch/i386/prefix/pxeprefix.S
index 8b485e48f..62b934842 100644
--- a/src/arch/i386/prefix/pxeprefix.S
+++ b/src/arch/i386/prefix/pxeprefix.S
@@ -691,6 +691,15 @@ run_etherboot:
/* Install Etherboot */
call install
+#ifdef PXELOADER_KEEP_UNDI
+ /* Copy our undi_device structure to the preloaded_undi variable */
+ movw %bx, %es
+ movw $preloaded_undi, %di
+ movw $undi_device, %si
+ movw $undi_device_size, %cx
+ rep movsb
+#endif
+
/* Jump to .text16 segment with %ds pointing to .data16*/
movw %bx, %ds
pushw %ax