summaryrefslogtreecommitdiff
path: root/pxelinux.asm
diff options
context:
space:
mode:
authorhpa <hpa>2002-04-23 01:22:22 +0000
committerhpa <hpa>2002-04-23 01:22:22 +0000
commit5add070b2aa84ae4e31a1a58053163faa86a6146 (patch)
treec1f0f34ad70fbcd296bbd402b30c10b7b8da6f9b /pxelinux.asm
parenta2d316977bf5a8bfa6b420071a8a6108adc877ee (diff)
downloadsyslinux-5add070b2aa84ae4e31a1a58053163faa86a6146.tar.gz
Set up %fs before invoking the final transfer sequence.
Diffstat (limited to 'pxelinux.asm')
-rw-r--r--pxelinux.asm9
1 files changed, 6 insertions, 3 deletions
diff --git a/pxelinux.asm b/pxelinux.asm
index e14846e2..acb8d41b 100644
--- a/pxelinux.asm
+++ b/pxelinux.asm
@@ -1984,6 +1984,8 @@ nk_noinitrd:
; and the real mode stuff to 90000h. We assume that all bzImage kernels are
; capable of starting their setup from a different address.
;
+ mov ax,real_mode_seg
+ mov fs,ax
;
; Copy command line. Unfortunately, the kernel boot protocol requires
@@ -2614,8 +2616,6 @@ loadinitrd:
call load_high ; Load the file
call crlf
- mov si,loading_msg ; Write new "Loading " for
- call cwritestr ; the benefit of the kernel
pop es ; Restore original ES
ret
@@ -2643,6 +2643,8 @@ load_high:
mov es,bx
.read_loop:
+ and si,si ; If SI == 0 then we have end of file
+ jz .eof
push si
mov si,dot_msg
call cwritestr
@@ -2692,6 +2694,7 @@ load_high:
sub eax,ecx
jnz .read_loop ; More to read...
+.eof:
pop es
ret
@@ -4927,7 +4930,7 @@ myipaddr_msg db 'My IP address seems to be ',0
tftpprefix_msg db 'TFTP prefix: ', 0
localboot_msg db 'Booting from local disk...', CR, LF, 0
cmdline_msg db 'Command line: ', CR, LF, 0
-ready_msg db ' ready.', CR, LF, 0
+ready_msg db 'Ready.', CR, LF, 0
trying_msg db 'Trying to load: ', 0
crlfloading_msg db CR, LF ; Fall through
loading_msg db 'Loading ', 0