Browse Source

[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.
tags/v0.9.4
Michael Brown 15 years ago
parent
commit
c0beec8baf
2 changed files with 13 additions and 1 deletions
  1. 10
    0
      src/arch/i386/interface/pxe/pxe_entry.S
  2. 3
    1
      src/arch/i386/scripts/i386.lds

+ 10
- 0
src/arch/i386/interface/pxe/pxe_entry.S View File

@@ -103,6 +103,16 @@ pxenv:
103 103
  *   none
104 104
  ****************************************************************************
105 105
  */
106
+	/* Wyse Streaming Manager server (WLDRM13.BIN) assumes that
107
+	 * the PXENV+ entry point is at UNDI_CS:0000; apparently,
108
+	 * somebody at Wyse has difficulty distinguishing between the
109
+	 * words "may" and "must"...
110
+	 */
111
+	.section ".text16.null"
112
+	.code16
113
+pxenv_null_entry:
114
+	jmp	pxenv_entry
115
+
106 116
 	.section ".text16"
107 117
 	.code16
108 118
 pxenv_entry:

+ 3
- 1
src/arch/i386/scripts/i386.lds View File

@@ -66,10 +66,12 @@ SECTIONS {
66 66
     . = _text16_link_addr;
67 67
     _text16 = .;
68 68
 
69
-    . += 1;			/* Prevent NULL being valid */
69
+    /* We need to allow code at the NULL address in .text16 */
70 70
 
71 71
     .text16 : AT ( _text16_load_offset + __text16 ) {
72 72
 	__text16 = .;
73
+	*(.text16.null)
74
+	. += 1;			/* Prevent NULL being valid */
73 75
 	*(.text16)
74 76
 	*(.text16.*)
75 77
 	_etext16_progbits = .;

Loading…
Cancel
Save