PERFORCE change 213777 for review

Robert Watson rwatson at FreeBSD.org
Mon Jul 2 14:37:08 UTC 2012


http://p4web.freebsd.org/@@213777?ac=10

Change 213777 by rwatson at rwatson_svr_ctsrd_mipsbuild on 2012/07/02 14:36:44

	Define a kernel option to disable console-level flow control for
	writes in the Altera JTAG UART driver, and set in various BERI
	kernel configurations.  In the future we will try to do something
	more interesting with the AC bit.  This doesn't affect the
	high-level tty driver, which exposes flow control up the stack,
	but should prevent the boot from stalling when JTAG is not
	connected.

Affected files ...

.. //depot/projects/ctsrd/beribsd/src/sys/conf/options.mips#5 edit
.. //depot/projects/ctsrd/beribsd/src/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c#3 edit
.. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_MDROOT#5 edit
.. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_SDROOT#6 edit
.. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_SIM_MDROOT#2 edit

Differences ...

==== //depot/projects/ctsrd/beribsd/src/sys/conf/options.mips#5 (text+ko) ====

@@ -47,6 +47,8 @@
 ISA_MIPS64	opt_cputype.h
 ISA_MIPS64v2	opt_cputype.h
 
+ALTERA_JTAG_UART_FC_DISABLE	opt_jtag_uart.h
+
 COMPAT_FREEBSD32	opt_compat.h
 
 YAMON		opt_global.h

==== //depot/projects/ctsrd/beribsd/src/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c#3 (text+ko) ====

@@ -31,6 +31,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include "opt_jtag_uart.h"
+
 #include <sys/param.h>
 #include <sys/cons.h>
 #include <sys/endian.h>
@@ -154,6 +156,42 @@
 	    ALTERA_JTAG_UART_CONTROL_OFF)));
 }
 
+static inline void
+aju_cons_control_write(uint32_t v)
+{
+
+	mips_iowrite_uint32le(mips_phys_to_uncached(BERI_UART_BASE +
+	    ALTERA_JTAG_UART_CONTROL_OFF), v);
+}
+
+/*
+ * Routines to query (and clear) the AC bit, which indicates that a JTAG
+ * client has polled since it was last cleared.
+ */
+__unused static int
+aju_cons_ac_get(void)
+{
+	uint32_t v;
+
+	AJU_CONSOLE_LOCK_ASSERT();
+
+	v = aju_cons_control_read();
+	return ((v & ALTERA_JTAG_UART_CONTROL_AC) != 0);
+
+}
+
+__unused static int
+aju_cons_ac_clear(void)
+{
+	uint32_t v;
+
+	AJU_CONSOLE_LOCK_ASSERT();
+
+	v = aju_cons_control_read();
+	v &= ~ALTERA_JTAG_UART_CONTROL_AC;
+	aju_cons_control_write(v);
+}
+
 /*
  * Slightly higher-level routines aware of buffering and flow control.
  */
@@ -161,8 +199,12 @@
 aju_cons_writable(void)
 {
 
+#ifdef ALTERA_JTAG_UART_FC_DISABLE
+	return (1);
+#else
 	return ((aju_cons_control_read() &
 	    ALTERA_JTAG_UART_CONTROL_WSPACE) != 0);
+#endif
 }
 
 static int

==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_MDROOT#5 (text+ko) ====

@@ -21,6 +21,8 @@
 makeoptions	MFS_IMAGE=/local/scratch/rnw24/mdroot.img
 options 	ROOTDEVNAME=\"ufs:md0\"
 
+options 	ALTERA_JTAG_UART_FC_DISABLE
+
 device		altera_avgen
 device		altera_jtag_uart
 device		altera_sdcard

==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_SDROOT#6 (text+ko) ====

@@ -14,6 +14,8 @@
 
 options 	ROOTDEVNAME=\"ufs:altera_sdcard0\"
 
+options 	ALTERA_JTAG_UART_FC_DISABLE
+
 device		altera_avgen
 device		altera_jtag_uart
 device		altera_sdcard

==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_SIM_MDROOT#2 (text+ko) ====

@@ -20,6 +20,8 @@
 makeoptions	MFS_IMAGE=/local/scratch/rnw24/mdroot.img
 options 	ROOTDEVNAME=\"ufs:md0\"
 
+options 	ALTERA_JTAG_UART_FC_DISABLE
+
 device		altera_avgen
 device		altera_jtag_uart
 device		altera_sdcard


More information about the p4-projects mailing list