aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-06-14 16:21:10 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-06-14 16:21:10 -0700
commit6bb2cbbf970aec9cb480de6e0df4918ffc766c0b (patch)
tree097c02fdaeec9f15f9dd84a44a5a5d72fe0f9b06
parent21e8f68b76dda9fa4dd8a70fcfe1d574cad37cc5 (diff)
parentfdc246e2f9df9db4eb141a58e20a7272598345b4 (diff)
downloadsyslinux-elf-6bb2cbbf970aec9cb480de6e0df4918ffc766c0b.tar.gz
syslinux-elf-6bb2cbbf970aec9cb480de6e0df4918ffc766c0b.tar.xz
syslinux-elf-6bb2cbbf970aec9cb480de6e0df4918ffc766c0b.zip
Merge branch 'syslinux-3.8x'
-rw-r--r--NEWS6
-rw-r--r--core/bootsect.inc21
-rw-r--r--version2
3 files changed, 25 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 5a18525b..b6c37f1c 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,12 @@ Starting with 1.47, changes marked with SYSLINUX, PXELINUX, ISOLINUX
or EXTLINUX apply to that specific program only; other changes apply
to all derivatives.
+Changes in 3.83:
+ * PXELINUX: clear memory before handing over to a chainloaded
+ NBP. This may help avoid a bug in Windows RIS.
+ * PXELINUX: fix localboot after NBP chainloading on certain
+ BIOSes (including ASUS A8N-E, but possibly others.)
+
Changes in 3.82:
* isohybrid: fix the -partok logic for loading from a partition.
* ISOLINUX: deal with systems which return from INT 13h with
diff --git a/core/bootsect.inc b/core/bootsect.inc
index b107eb5c..200f00ad 100644
--- a/core/bootsect.inc
+++ b/core/bootsect.inc
@@ -74,21 +74,36 @@ load_bootsec:
xor ax,ax
rep movsw
pop si ; DS:SI points to partition info
+ xor bx,bx
%elif IS_ISOLINUX
mov dl,[DriveNumber]
+ xor bx,bx
%elif IS_PXELINUX
mov byte [KeepPXE],03h ; Chainloading + keep PXE
call reset_pxe
+ lfs si,[InitStack]
+ ; Put restore DS, EDX and ESI to the true initial values
+ mov bx,[fs:si+6]
+ mov edx,[fs:si+28]
+ mov esi,[fs:si+12]
%endif
- xor bx,bx
;
; replace_bootstrap for the special case where we have exactly one
-; descriptor.
+; descriptor, based in low memory. We will generate a second descriptor
+; to clear remaining FBM.
;
replace_bootstrap_one:
- push word 1 ; Length of descriptor list
+ mov eax,[trackbuf] ; Base address
+ add eax,[trackbuf+8] ; Length
+ movzx ecx,word [BIOS_fbm]
+ shl ecx,10 ; Free Base Memory
+ sub ecx,eax
+ mov [trackbuf+12],eax
+ or dword [trackbuf+16],-1 ; Zero memory
+ mov [trackbuf+20],ecx
+ push word 2 ; Length of descriptor list
; Fall through
;
diff --git a/version b/version
index 2fc94187..f2649fb3 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-3.82 2009
+3.83 2009