aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2010-02-12 17:02:50 -0800
committerH. Peter Anvin <hpa@zytor.com>2010-02-12 17:02:50 -0800
commitf38420bf678cfa556a6a5c5591668d30063d4c15 (patch)
tree889c5ab73c79d729e8e3e39e828d3183b6dd476a
parenta68e1063c089a84675a01a8a0e1c3669d5b040c2 (diff)
downloadsyslinux.git-f38420bf678cfa556a6a5c5591668d30063d4c15.tar.gz
syslinux.git-f38420bf678cfa556a6a5c5591668d30063d4c15.tar.xz
syslinux.git-f38420bf678cfa556a6a5c5591668d30063d4c15.zip
pxelinux: complete but disable debugging code, not for productionsyslinux-3.85-pre10
Disable some debugging code that was never intended for production use. The intent is to track down specific memory-clobbering bugs. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--core/pxelinux.asm19
1 files changed, 14 insertions, 5 deletions
diff --git a/core/pxelinux.asm b/core/pxelinux.asm
index ff0f36c8..929ab673 100644
--- a/core/pxelinux.asm
+++ b/core/pxelinux.asm
@@ -255,12 +255,21 @@ _start1:
mov ds,ax
mov es,ax
+%if 0 ; debugging code only... not intended for production use
; Clobber the stack segment, to test for specific pathologies
mov di,STACK_BASE
mov cx,STACK_LEN >> 1
mov ax,0xf4f4
rep stosw
+ ; Clobber the tail of the 64K segment, too
+ extern __bss1_end
+ mov di,__bss1_end
+ sub cx,di ; CX = 0 previously
+ shr cx,1
+ rep stosw
+%endif
+
; That is all pushed onto the PXE stack. Save the pointer
; to it and switch to an internal stack.
mov [InitStack],sp
@@ -2258,11 +2267,11 @@ do_reset_pxe:
TRACER 'F'
;
-; Look to see if we are on an EFI CSM system. Some EFI
-; CSM systems put the BEV stack in low memory, which means
-; a return to the PXE stack will crash the system. However,
-; INT 18h works reliably, so in that case hack the stack and
-; point the "return address" to an INT 18h instruction.
+; Look to see if we are on an EFI CSM system. Some EFI CSM systems
+; (AMI CSM) put the BEV stack in low memory (just below 64K), which
+; means a return to the PXE stack will crash the system. However, INT
+; 18h works reliably, so in that case hack the stack and point the
+; "return address" to an INT 18h instruction.
;
; Hack the stack instead of the much simpler "just invoke INT 18h
; if we want to reset", so that chainloading other NBPs will work.