summaryrefslogtreecommitdiff
path: root/gpxe/src/arch/i386/prefix/nbiprefix.S
diff options
context:
space:
mode:
Diffstat (limited to 'gpxe/src/arch/i386/prefix/nbiprefix.S')
-rw-r--r--gpxe/src/arch/i386/prefix/nbiprefix.S13
1 files changed, 8 insertions, 5 deletions
diff --git a/gpxe/src/arch/i386/prefix/nbiprefix.S b/gpxe/src/arch/i386/prefix/nbiprefix.S
index d4904b73..d1753e30 100644
--- a/gpxe/src/arch/i386/prefix/nbiprefix.S
+++ b/gpxe/src/arch/i386/prefix/nbiprefix.S
@@ -32,11 +32,11 @@ segment_header:
.byte 0
.byte 0x04 /* Last segment */
.long 0x00007e00
-imglen: .long _load_size - 512
-memlen: .long _load_size - 512
+imglen: .long _filesz - 512
+memlen: .long _filesz - 512
.size segment_header, . - segment_header
- .section ".zinfo.fixup", "a" /* Compressor fixup information */
+ .section ".zinfo.fixup", "a", @progbits /* Compressor fixups */
.ascii "SUBL"
.long imglen
.long 1
@@ -52,7 +52,7 @@ memlen: .long _load_size - 512
*****************************************************************************
*/
entry:
- /* Install low and high memory regions */
+ /* Install gPXE */
call install
/* Jump to .text16 segment */
@@ -64,7 +64,10 @@ entry:
pushl $main
pushw %cs
call prot_call
- popl %eax /* discard */
+ popl %ecx /* discard */
+
+ /* Uninstall gPXE */
+ call uninstall
/* Reboot system */
int $0x19