[Midnightbsd-cvs] src: pxeldr.S: merge changes

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Nov 13 10:02:48 EST 2008


Log Message:
-----------
merge changes

Modified Files:
--------------
    src/sys/boot/i386/pxeldr:
        pxeldr.S (r1.3 -> r1.4)

-------------- next part --------------
Index: pxeldr.S
===================================================================
RCS file: /home/cvs/src/sys/boot/i386/pxeldr/pxeldr.S,v
retrieving revision 1.3
retrieving revision 1.4
diff -L sys/boot/i386/pxeldr/pxeldr.S -L sys/boot/i386/pxeldr/pxeldr.S -u -r1.3 -r1.4
--- sys/boot/i386/pxeldr/pxeldr.S
+++ sys/boot/i386/pxeldr/pxeldr.S
@@ -13,7 +13,7 @@
  * purpose.
  *
  * $MidnightBSD$
- * $FreeBSD: src/sys/boot/i386/pxeldr/pxeldr.S,v 1.13 2004/05/14 20:29:30 ru Exp $
+ * $FreeBSD: src/sys/boot/i386/pxeldr/pxeldr.S,v 1.15 2006/09/05 19:28:03 ru Exp $
  */
 
 /*
@@ -26,6 +26,8 @@
  * separate PXE-aware client just to load the loader.
  */
 
+#include <sys/reboot.h>
+
 /*
  * Memory locations.
  */
@@ -54,10 +56,6 @@
 		.set KARGS_FLAGS_PXE,0x2	# flag to indicate booting from
 						#  PXE loader
 /*
- * Boot howto bits
- */
-		.set RB_SERIAL,0x1000		# serial console
-/*
  * Segment selectors.
  */
 		.set SEL_SDATA,0x8		# Supervisor data
@@ -120,11 +118,11 @@
 #ifdef PROBE_KEYBOARD
 /*
  * Look at the BIOS data area to see if we have an enhanced keyboard.  If not,
- * set the RBX_SERIAL bit in the howto byte.
+ * set the RBX_DUAL and RBX_SERIAL bits in the howto byte.
  */
 		testb $KEYBOARD_BIT, MEM_BIOS_KEYBOARD # keyboard present?
 		jnz keyb			# yes, so skip
-		orl $RB_SERIAL, (%bx)		# enable serial console
+		orl $(RB_MULTIPLE | RB_SERIAL), (%bx) # enable serial console
 keyb:
 #endif
 /*
@@ -228,13 +226,17 @@
 		jmp putstr			# keep looping
 
 /*
- * Enable A20
+ * Enable A20. Put an upper limit on the amount of time we wait for the
+ * keyboard controller to get ready (65K x ISA access time). If
+ * we wait more than that amount, the hardware is probably
+ * legacy-free and simply doesn't have a keyboard controller.
+ * Thus, the A20 line is already enabled.
  */
 seta20: 	cli				# Disable interrupts
 		xor %cx,%cx			# Clear
 seta20.1:	inc %cx				# Increment, overflow?
 		jz seta20.3			# Yes
-		inb $0x64,%al			# Get Status
+		inb $0x64,%al			# Get status
 		testb $0x2,%al			# Busy?
 		jnz seta20.1			# Yes
 		movb $0xd1,%al			# Command: Write


More information about the Midnightbsd-cvs mailing list