Module Name:    src
Committed By:   nisimura
Date:           Mon Feb  7 13:35:21 UTC 2011

Modified Files:
        src/sys/arch/sandpoint/pci: pci_machdep.c

Log Message:
add StorCenter heuristic by PCI vendor ID detection.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/sandpoint/pci/pci_machdep.c

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/pci/pci_machdep.c
diff -u src/sys/arch/sandpoint/pci/pci_machdep.c:1.20 src/sys/arch/sandpoint/pci/pci_machdep.c:1.21
--- src/sys/arch/sandpoint/pci/pci_machdep.c:1.20	Mon Dec 20 00:25:42 2010
+++ src/sys/arch/sandpoint/pci/pci_machdep.c	Mon Feb  7 13:35:21 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep.c,v 1.20 2010/12/20 00:25:42 matt Exp $	*/
+/*	$NetBSD: pci_machdep.c,v 1.21 2011/02/07 13:35:21 nisimura Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.20 2010/12/20 00:25:42 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.21 2011/02/07 13:35:21 nisimura Exp $");
 
 #include "opt_pci.h"
 
@@ -94,6 +94,7 @@
 #define BRD_KUROBOX		100
 #define BRD_QNAPTS101		101
 #define BRD_SYNOLOGY		102
+#define BRD_STORCENTER		103
 #define BRD_UNKNOWN		-1
 
 #define	PCI_CONFIG_ENABLE	0x80000000UL
@@ -103,7 +104,7 @@
     struct pcibus_attach_args *pba)
 {
 	pcitag_t tag;
-	pcireg_t dev11, dev22, dev15;
+	pcireg_t dev11, dev22, dev15, dev13;
 
 	tag = pci_make_tag(pba->pba_pc, pba->pba_bus, 11, 0);
 	dev11 = pci_conf_read(pba->pba_pc, tag, PCI_CLASS_REG);
@@ -142,6 +143,14 @@
 		brdtype = BRD_SYNOLOGY;
 		return;
 	}
+	tag = pci_make_tag(pba->pba_pc, pba->pba_bus, 13, 0);
+	dev13 = pci_conf_read(pba->pba_pc, tag, PCI_ID_REG);
+	if (PCI_VENDOR(dev13) == PCI_VENDOR_VIATECH) {
+		/* VIA 6410 PCIIDE at dev 13 */
+		brdtype = BRD_STORCENTER;
+		return;
+	}
+	
 	brdtype = BRD_UNKNOWN;
 }
 
@@ -327,6 +336,7 @@
 		/* map line 12,13-15 to EPIC IRQ4,0-2 */
 		*ihp = (line == 12) ? 4 : line - 13;
 		break;
+	case BRD_STORCENTER:
 	default:
 		/* map line 12-15 to EPIC IRQ0-3 */
 		*ihp = line - 12;

Reply via email to