summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-02-08 09:58:09 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-02-08 09:58:09 -0800
commit0264d03fc1ac26b65ee4c28b136d88794cb88214 (patch)
treecf6f9f6de78c000b133397fb63b8b812bc03315f
parent945a8c5cb5512e472eb894ffa0520e69b8ab54e8 (diff)
downloadsyslinux-0264d03fc1ac26b65ee4c28b136d88794cb88214.tar.gz
PXELINUX: ES:BX -> PXENV+, so we can't have ES:DI -> $PnP.
This broke chainbooting FreeBSD at least.
-rw-r--r--NEWS1
-rw-r--r--bootsect.inc6
2 files changed, 7 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 43912b78..c8e472fb 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,7 @@ Changes in 3.36:
* New MBR which can boot from logical partitions.
* SYSLINUX: Fix bug in detecting special extensions which was
introduced in 3.35 :(
+ * PXELINUX: Unbreak chainbooting FreeBSD (and possibly others.)
Changes in 3.35:
* MEMDISK: New "safeint" mode.
diff --git a/bootsect.inc b/bootsect.inc
index d52aefba..66e1886a 100644
--- a/bootsect.inc
+++ b/bootsect.inc
@@ -136,6 +136,11 @@ replace_bootstrap:
mov [es:di+12],esi ; New ESI
mov [es:di+6],bx ; New DS
+%ifndef IS_PXELINUX
+ ; DON'T DO THIS FOR PXELINUX...
+ ; For PXE, ES:BX -> PXENV+, and this would corrupt
+ ; that use.
+
; Hunt for $PnP header if one exists
mov ax,0F000h
mov fs,ax
@@ -163,6 +168,7 @@ replace_bootstrap:
; Found a valid $PnP header, point ES:DI to it
mov [es:di+8], bx ; New DI
mov [es:di+4], fs ; New ES
+%endif
.donepnp:
pop ax ; Copy list count