From 0264d03fc1ac26b65ee4c28b136d88794cb88214 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 8 Feb 2007 09:58:09 -0800 Subject: [PATCH] PXELINUX: ES:BX -> PXENV+, so we can't have ES:DI -> $PnP. This broke chainbooting FreeBSD at least. --- NEWS | 1 + bootsect.inc | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/NEWS b/NEWS index 43912b7..c8e472f 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 d52aefb..66e1886 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 -- 2.7.4