Module Name:    src
Committed By:   matt
Date:           Wed Feb  1 02:05:14 UTC 2012

Modified Files:
        src/sys/arch/evbmips/rasoc: machdep.c
        src/sys/arch/mips/ralink: ralink_com.c ralink_var.h

Log Message:
Fix early console support.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/evbmips/rasoc/machdep.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/mips/ralink/ralink_com.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mips/ralink/ralink_var.h

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/evbmips/rasoc/machdep.c
diff -u src/sys/arch/evbmips/rasoc/machdep.c:1.5 src/sys/arch/evbmips/rasoc/machdep.c:1.6
--- src/sys/arch/evbmips/rasoc/machdep.c:1.5	Tue Aug 16 06:59:19 2011
+++ src/sys/arch/evbmips/rasoc/machdep.c	Wed Feb  1 02:05:14 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.5 2011/08/16 06:59:19 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.6 2012/02/01 02:05:14 matt Exp $	*/
 /*-
  * Copyright (c) 2011 CradlePoint Technology, Inc.
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.5 2011/08/16 06:59:19 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.6 2012/02/01 02:05:14 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/boot_flag.h>
@@ -107,13 +107,13 @@ mach_init(void)
 
 	memset(edata, 0, kernend - (vaddr_t)edata);
 
-#ifdef RA_CONSOLE_EARLY
+#ifdef RALINK_CONSOLE_EARLY
 	/*
 	 * set up early console
 	 *  cannot printf until sometime (?) in mips_vector_init
 	 *  meanwhile can use the ra_console_putc primitive if necessary
 	 */
-	ra_console_early();
+	ralink_console_early();
 #endif
 
 	/* set CPU model info for sysctl_hw */

Index: src/sys/arch/mips/ralink/ralink_com.c
diff -u src/sys/arch/mips/ralink/ralink_com.c:1.2 src/sys/arch/mips/ralink/ralink_com.c:1.3
--- src/sys/arch/mips/ralink/ralink_com.c:1.2	Thu Jul 28 15:38:49 2011
+++ src/sys/arch/mips/ralink/ralink_com.c	Wed Feb  1 02:05:14 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ralink_com.c,v 1.2 2011/07/28 15:38:49 matt Exp $	*/
+/*	$NetBSD: ralink_com.c,v 1.3 2012/02/01 02:05:14 matt Exp $	*/
 /*-
  * Copyright (c) 2011 CradlePoint Technology, Inc.
  * All rights reserved.
@@ -130,7 +130,7 @@
 /* ralink_com.c -- Ralink 3052 uart console driver */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ralink_com.c,v 1.2 2011/07/28 15:38:49 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ralink_com.c,v 1.3 2012/02/01 02:05:14 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -195,6 +195,45 @@ uart_write(const u_int offset, const uin
 	*RA_IOREG_VADDR(RA_UART_LITE_BASE, offset) = val;
 }
 
+#ifdef RALINK_CONSOLE_EARLY
+static int
+ralink_cngetc(dev_t dv)
+{
+        if ((uart_read(RA_UART_LSR) & LSR_RXRDY) == 0)
+		return -1;
+
+	return uart_read(RA_UART_RBR) & 0xff;
+}
+
+static void
+ralink_cnputc(dev_t dv, int c)
+{
+	int timo = 150000;
+
+        while ((uart_read(RA_UART_LSR) & LSR_TXRDY) == 0 && --timo > 0)
+		;
+
+	uart_write(RA_UART_TBR, c);
+	__asm __volatile("sync");
+
+	timo = 150000;
+        while ((uart_read(RA_UART_LSR) & LSR_TSRE) == 0 && --timo > 0)
+		;
+}
+
+static struct consdev ralink_earlycons = {
+	.cn_putc = ralink_cnputc,
+	.cn_getc = ralink_cngetc,
+	.cn_pollc = nullcnpollc,
+};
+
+void
+ralink_console_early(void)
+{
+	cn_tab = &ralink_earlycons;
+}
+#endif
+
 
 int
 ralink_com_match(device_t parent, cfdata_t cf, void *aux)

Index: src/sys/arch/mips/ralink/ralink_var.h
diff -u src/sys/arch/mips/ralink/ralink_var.h:1.4 src/sys/arch/mips/ralink/ralink_var.h:1.5
--- src/sys/arch/mips/ralink/ralink_var.h:1.4	Wed Aug  3 16:26:53 2011
+++ src/sys/arch/mips/ralink/ralink_var.h	Wed Feb  1 02:05:14 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ralink_var.h,v 1.4 2011/08/03 16:26:53 matt Exp $	*/
+/*	$NetBSD: ralink_var.h,v 1.5 2012/02/01 02:05:14 matt Exp $	*/
 /*-
  * Copyright (c) 2011 CradlePoint Technology, Inc.
  * All rights reserved.
@@ -57,8 +57,8 @@ extern int ra_check_memo_reg(int);
 /* helper defines */
 #define MS_TO_HZ(ms) ((ms) * hz / 1000)
 
-#ifdef RA_CONSOLE_EARLY
-extern void ra_console_early(void);
+#ifdef RALINK_CONSOLE_EARLY
+extern void ralink_console_early(void);
 #endif
 
 #endif	/* _RALINK_VAR_H_ */

Reply via email to