Bläddra i källkod

[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 år sedan
förälder
incheckning
c0beec8baf
2 ändrade filer med 13 tillägg och 1 borttagningar
  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 Visa fil

103
  *   none
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
 	.section ".text16"
116
 	.section ".text16"
107
 	.code16
117
 	.code16
108
 pxenv_entry:
118
 pxenv_entry:

+ 3
- 1
src/arch/i386/scripts/i386.lds Visa fil

66
     . = _text16_link_addr;
66
     . = _text16_link_addr;
67
     _text16 = .;
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
     .text16 : AT ( _text16_load_offset + __text16 ) {
71
     .text16 : AT ( _text16_load_offset + __text16 ) {
72
 	__text16 = .;
72
 	__text16 = .;
73
+	*(.text16.null)
74
+	. += 1;			/* Prevent NULL being valid */
73
 	*(.text16)
75
 	*(.text16)
74
 	*(.text16.*)
76
 	*(.text16.*)
75
 	_etext16_progbits = .;
77
 	_etext16_progbits = .;

Laddar…
Avbryt
Spara