summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhpa <hpa>2003-11-21 08:00:22 +0000
committerhpa <hpa>2003-11-21 08:00:22 +0000
commit4e754168b72c41cd19d9ae1be835e651ab9d402c (patch)
treef4f1dac891cd17ee57855445aef7b66cb78d9a70
parent6c906a898cfcd5232979847b4f14901e68fc9e38 (diff)
downloadsyslinux-4e754168b72c41cd19d9ae1be835e651ab9d402c.tar.gz
Fix handling of loading large "boot sectors"
-rw-r--r--NEWS2
-rw-r--r--bootsect.inc2
-rw-r--r--pxelinux.asm4
3 files changed, 5 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index 282f8816..b8bcb742 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Changes in 2.07:
address of the boot interface to the kernel as a
command-line option.
* mkdiskimage: fix the generation of the end limit.
- * PXELINUX: Fix bug in chainloading of other NBPs.
+ * PXELINUX: Fix multiple bugs in chainloading of other NBPs.
* MEMDISK: Fix bug that would occationally cause "ran out of
input data" when using compressed disk images.
diff --git a/bootsect.inc b/bootsect.inc
index 2fca7818..24ebab6e 100644
--- a/bootsect.inc
+++ b/bootsect.inc
@@ -36,7 +36,7 @@ load_bootsec:
push cx
%endif
xchg dx,ax
- shr eax,16
+ shl eax,16
xchg dx,ax ; Now EAX = file length
mov edi, 100000h
call load_high
diff --git a/pxelinux.asm b/pxelinux.asm
index 3431a492..fd0d62cc 100644
--- a/pxelinux.asm
+++ b/pxelinux.asm
@@ -379,7 +379,9 @@ _start1:
;
; Now we need to find the !PXE structure. It's *supposed* to be pointed
; to by SS:[SP+4], but support INT 1Ah, AX=5650h method as well.
-;
+; FIX: ES:BX should point to the PXENV+ structure on entry as well.
+; We should make that the second test, and not trash ES:BX...
+;
cmp dword [es:bx], '!PXE'
je have_pxe