diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2001-03-10 05:04:07 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2001-03-10 05:04:07 +0000 |
commit | b7e20995db86208b2251a5c86650c10bb1a9c880 (patch) | |
tree | 31185386f93293d585728afa2a685d7cfaba8190 /sys/dev/pci | |
parent | 1e06e200b7fdf06722ba9a9d41d31a99e28b0f65 (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.c | 16 |
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); |