Module Name: src
Committed By: dsl
Date: Thu Nov 19 22:10:03 UTC 2009
Modified Files:
src/sys/arch/i386/stand/lib: message.S
src/sys/arch/i386/stand/mbr: mbr.S
Log Message:
Move code for outputting directly to the serial port into message.S
Allows it to be enabled for other parts of the boot sequence.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/i386/stand/lib/message.S
cvs rdiff -u -r1.21 -r1.22 src/sys/arch/i386/stand/mbr/mbr.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/i386/stand/lib/message.S
diff -u src/sys/arch/i386/stand/lib/message.S:1.3 src/sys/arch/i386/stand/lib/message.S:1.4
--- src/sys/arch/i386/stand/lib/message.S:1.3 Mon Apr 28 20:23:25 2008
+++ src/sys/arch/i386/stand/lib/message.S Thu Nov 19 22:10:03 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: message.S,v 1.3 2008/04/28 20:23:25 martin Exp $ */
+/* $NetBSD: message.S,v 1.4 2009/11/19 22:10:03 dsl Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -33,6 +33,10 @@
.global message, message_1
+#if defined(BOOT_MSG_COM0) && !defined(COM_PORT_VAL)
+#define COM_PORT_VAL $0x3f8 /* Value for COM1 */
+#endif
+
/*
* message: write the error message in %ds:%esi to the console
*/
@@ -49,9 +53,18 @@
message_1: /* for dump_eax */
lodsb
1:
+#ifdef COM_PORT_VAL
+ mov COM_PORT_VAL, %dx
+ outb %al, %dx
+ add $5, %dl
+2: inb %dx
+ test $0x40, %al
+ jz 2b
+#else
movb $0x0e, %ah
movw $0x0001, %bx
int $0x10
+#endif
lodsb
testb %al, %al
jnz 1b
Index: src/sys/arch/i386/stand/mbr/mbr.S
diff -u src/sys/arch/i386/stand/mbr/mbr.S:1.21 src/sys/arch/i386/stand/mbr/mbr.S:1.22
--- src/sys/arch/i386/stand/mbr/mbr.S:1.21 Wed Nov 18 20:51:22 2009
+++ src/sys/arch/i386/stand/mbr/mbr.S Thu Nov 19 22:10:03 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: mbr.S,v 1.21 2009/11/18 20:51:22 dsl Exp $ */
+/* $NetBSD: mbr.S,v 1.22 2009/11/19 22:10:03 dsl Exp $ */
/*
* Copyright (c) 1999-2004 The NetBSD Foundation, Inc.
@@ -602,26 +602,7 @@
message_crlf:
call message
movw $crlf, %si
-#ifdef COM_PORT_VAL
-message:
- pusha
-message_1:
- lodsb
- test %al, %al
- jz 3f
- mov COM_PORT_VAL, %dx
- outb %al, %dx
- add $5, %dl
-2: inb %dx
- test $0x40, %al
- jz 2b
- jmp message_1
-3: popa
- ret
-#else
#include <message.S>
-#endif
-
#if 0
#include <dump_eax.S>
#endif