Module Name:    src
Committed By:   nisimura
Date:           Sun Apr  8 10:38:34 UTC 2012

Modified Files:
        src/sys/arch/sandpoint/stand/altboot: brdsetup.c globals.h

Log Message:
Add an entry for Terastation TGL miconv2 satellite processor which
features a more complex protocol than Linkstation/Kurobox.


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/sandpoint/stand/altboot/brdsetup.c
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/sandpoint/stand/altboot/globals.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/sandpoint/stand/altboot/brdsetup.c
diff -u src/sys/arch/sandpoint/stand/altboot/brdsetup.c:1.27 src/sys/arch/sandpoint/stand/altboot/brdsetup.c:1.28
--- src/sys/arch/sandpoint/stand/altboot/brdsetup.c:1.27	Sat Jan 14 22:36:54 2012
+++ src/sys/arch/sandpoint/stand/altboot/brdsetup.c	Sun Apr  8 10:38:34 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: brdsetup.c,v 1.27 2012/01/14 22:36:54 phx Exp $ */
+/* $NetBSD: brdsetup.c,v 1.28 2012/04/08 10:38:34 nisimura Exp $ */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -56,6 +56,7 @@ BRD_DECL(qnap);
 BRD_DECL(iomega);
 BRD_DECL(dlink);
 BRD_DECL(nhnas);
+BRD_DECL(kurot4);
 
 static void brdfixup(void);
 static void setup(void);
@@ -170,6 +171,13 @@ static struct brdprop brdlist[] = {
 	"eumb", 0x4500, 9600,
 	NULL, nhnasbrdfix, NULL, nhnasreset },
     {
+	"miconv2",
+	"KuroBox/T4",
+	BRD_KUROBOXT4,
+	0,
+	"eumb", 0x4600, 57600,
+	kurot4setup, kurot4brdfix, NULL, NULL },
+    {
 	"unknown",
 	"Unknown board",
 	BRD_UNKNOWN,
@@ -207,7 +215,7 @@ brdsetup(void)
 	char *consname;
 	int consport;
 	uint32_t extclk;
-	unsigned pchb, pcib, dev11, dev13, dev15, dev16, val;
+	unsigned pchb, pcib, dev11, dev12, dev13, dev15, dev16, val;
 	extern struct btinfo_memory bi_mem;
 	extern struct btinfo_console bi_cons;
 	extern struct btinfo_clock bi_clk;
@@ -229,6 +237,7 @@ brdsetup(void)
 	busclock = 0;
 
 	dev11 = pcimaketag(0, 11, 0);
+	dev12 = pcimaketag(0, 12, 0);
 	dev13 = pcimaketag(0, 13, 0);
 	dev15 = pcimaketag(0, 15, 0);
 	dev16 = pcimaketag(0, 16, 0);
@@ -243,7 +252,10 @@ brdsetup(void)
 	}
 	else if (PCI_CLASS(pcicfgread(dev11, PCI_CLASS_REG)) == PCI_CLASS_ETH) {
 		/* ADMtek AN985 (tlp) or RealTek 8169S (re) at dev 11 */
-		brdtype = BRD_KUROBOX;
+		if (PCI_VENDOR(pcicfgread(dev12, PCI_ID_REG)) != 0x1095)
+			brdtype = BRD_KUROBOX;
+		else
+			brdtype = BRD_KUROBOXT4;
 	}
 	else if (PCI_VENDOR(pcicfgread(dev15, PCI_ID_REG)) == 0x11ab) {
 		/* SKnet/Marvell (sk) at dev 15 */
@@ -764,6 +776,23 @@ nhnasreset()
 }
 
 void
+kurot4setup(struct brdprop *brd)
+{
+
+	if (PCI_VENDOR(pcicfgread(pcimaketag(0, 11, 0), PCI_ID_REG)) == 0x10ec)
+		brd->extclk = 32768000; /* decr 2457600Hz */
+	else
+		brd->extclk = 32521333; /* decr 2439100Hz */
+}
+
+void
+kurot4brdfix(struct brdprop *brd)
+{
+
+	init_uart(uart2base, 38400, LCR_8BITS | LCR_PEVEN);
+}
+
+void
 _rtt(void)
 {
 	uint32_t msr;

Index: src/sys/arch/sandpoint/stand/altboot/globals.h
diff -u src/sys/arch/sandpoint/stand/altboot/globals.h:1.16 src/sys/arch/sandpoint/stand/altboot/globals.h:1.17
--- src/sys/arch/sandpoint/stand/altboot/globals.h:1.16	Sun Jan 22 13:08:16 2012
+++ src/sys/arch/sandpoint/stand/altboot/globals.h	Sun Apr  8 10:38:34 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: globals.h,v 1.16 2012/01/22 13:08:16 phx Exp $ */
+/* $NetBSD: globals.h,v 1.17 2012/04/08 10:38:34 nisimura Exp $ */
 
 #ifdef DEBUG
 #define	DPRINTF(x)	printf x
@@ -22,6 +22,7 @@ extern int brdtype;
 #define BRD_STORCENTER		103
 #define BRD_DLINKDSM		104
 #define BRD_NH230NAS		105
+#define BRD_KUROBOXT4		106
 #define BRD_UNKNOWN		-1
 
 struct brdprop {

Reply via email to