From: Michael Brown Date: Sat, 6 Sep 2008 02:19:03 +0000 (+0100) Subject: [pxe] Add a dummy PXENV+ entry point at UNDI_CS:0000 X-Git-Tag: v0.9.4~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0beec8bafea20437a8ec3cae89abfc6c53152af;p=thirdparty%2Fipxe.git [pxe] Add a dummy PXENV+ entry point at UNDI_CS:0000 Wyse Streaming Manager server (WLDRM13.BIN) assumes that the PXENV+ entry point is at UNDI_CS:0000; apparently, somebody at Wyse has difficulty distinguishing between the words "may" and "must"... Add a dummy entry point at UNDI_CS:0000, which just jumps to the correct entry point. --- diff --git a/src/arch/i386/interface/pxe/pxe_entry.S b/src/arch/i386/interface/pxe/pxe_entry.S index c55e581f8..e5d327a5d 100644 --- a/src/arch/i386/interface/pxe/pxe_entry.S +++ b/src/arch/i386/interface/pxe/pxe_entry.S @@ -103,6 +103,16 @@ pxenv: * none **************************************************************************** */ + /* Wyse Streaming Manager server (WLDRM13.BIN) assumes that + * the PXENV+ entry point is at UNDI_CS:0000; apparently, + * somebody at Wyse has difficulty distinguishing between the + * words "may" and "must"... + */ + .section ".text16.null" + .code16 +pxenv_null_entry: + jmp pxenv_entry + .section ".text16" .code16 pxenv_entry: diff --git a/src/arch/i386/scripts/i386.lds b/src/arch/i386/scripts/i386.lds index 7d63dae63..729ad30a9 100644 --- a/src/arch/i386/scripts/i386.lds +++ b/src/arch/i386/scripts/i386.lds @@ -66,10 +66,12 @@ SECTIONS { . = _text16_link_addr; _text16 = .; - . += 1; /* Prevent NULL being valid */ + /* We need to allow code at the NULL address in .text16 */ .text16 : AT ( _text16_load_offset + __text16 ) { __text16 = .; + *(.text16.null) + . += 1; /* Prevent NULL being valid */ *(.text16) *(.text16.*) _etext16_progbits = .;