summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2001-03-10 05:04:07 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2001-03-10 05:04:07 +0000
commitb7e20995db86208b2251a5c86650c10bb1a9c880 (patch)
tree31185386f93293d585728afa2a685d7cfaba8190 /sys/dev/pci
parent1e06e200b7fdf06722ba9a9d41d31a99e28b0f65 (diff)
First support for 53c1010 chip. This enables support up to U2W for
either or both channels on the 53c1010. U3W/U160 support coming. The particulars of 53c1010 support was derived from the FreeBSD/Linux sym-2 driver under development by Gerard ROUDIER (groudier@FreeBSD.org). This first support ensures that registers and bits now reserved are not used by the 53c1010. It uses the new DFBC register to obtain DMA FIFO relics. A single new feature (SF_CHIP_C10) was added, rather than a new feature for each change the 53c1010 incorporates. These changes were sufficient to get the imbedded 53c1010 on a Tyan S2510U3NG board to support installation of OpenBSD to a Quantum Atlas 10K2 drive, and several subsequent 'make build' and 'make release' cycles using disks on both channels, with and without softupdates. More 53c1010 specific code is yet to be extracted from sym-2, including the changes necessary to enable U160.
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/siop_pci_common.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/dev/pci/siop_pci_common.c b/sys/dev/pci/siop_pci_common.c
index 2a6ffec49bc..72f34553d5c 100644
--- a/sys/dev/pci/siop_pci_common.c
+++ b/sys/dev/pci/siop_pci_common.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: siop_pci_common.c,v 1.3 2001/03/01 17:14:28 krw Exp $ */
+/* $OpenBSD: siop_pci_common.c,v 1.4 2001/03/10 05:04:06 krw Exp $ */
/* $NetBSD: siop_pci_common.c,v 1.6 2001/01/10 15:50:20 thorpej Exp $ */
/*
@@ -132,7 +132,7 @@ const struct siop_product_desc siop_products[] = {
SF_BUS_ULTRA2 | SF_BUS_WIDE,
7, 31, 7, 62, 4096
},
- { PCI_PRODUCT_SYMBIOS_896,
+ { PCI_PRODUCT_SYMBIOS_895A,
0x00,
SF_PCI_RL | SF_PCI_CLS | SF_PCI_WRI | SF_PCI_RM |
SF_CHIP_FIFO | SF_CHIP_PF | SF_CHIP_RAM | SF_CHIP_QUAD |
@@ -140,7 +140,7 @@ const struct siop_product_desc siop_products[] = {
SF_BUS_ULTRA2 | SF_BUS_WIDE,
7, 31, 7, 62, 8192
},
- { PCI_PRODUCT_SYMBIOS_895A,
+ { PCI_PRODUCT_SYMBIOS_896,
0x00,
SF_PCI_RL | SF_PCI_CLS | SF_PCI_WRI | SF_PCI_RM |
SF_CHIP_FIFO | SF_CHIP_PF | SF_CHIP_RAM | SF_CHIP_QUAD |
@@ -148,6 +148,14 @@ const struct siop_product_desc siop_products[] = {
SF_BUS_ULTRA2 | SF_BUS_WIDE,
7, 31, 7, 62, 8192
},
+ { PCI_PRODUCT_SYMBIOS_1010,
+ 0x00,
+ SF_PCI_RL | SF_PCI_CLS | SF_PCI_WRI | SF_PCI_RM |
+ SF_CHIP_FIFO | SF_CHIP_PF | SF_CHIP_RAM | SF_CHIP_QUAD |
+ SF_CHIP_LS | SF_CHIP_10REGS | SF_CHIP_C10 |
+ SF_BUS_ULTRA2 | SF_BUS_WIDE,
+ 7, 31, 0, 62, 8192
+ },
{ PCI_PRODUCT_SYMBIOS_1510D,
0x00,
SF_PCI_RL | SF_PCI_CLS | SF_PCI_WRI | SF_PCI_RM |
@@ -317,7 +325,7 @@ siop_pci_reset(sc)
ctest5 &= ~CTEST5_BBCK;
ctest5 |= (sc->maxburst - 1) & CTEST5_BBCK;
bus_space_write_1(sc->sc_rt, sc->sc_rh, SIOP_CTEST5, ctest5);
- } else {
+ } else if ((sc->features & SF_CHIP_C10) == 0) {
bus_space_write_1(sc->sc_rt, sc->sc_rh, SIOP_CTEST4,
bus_space_read_1(sc->sc_rt, sc->sc_rh, SIOP_CTEST4) |
CTEST4_BDIS);