summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2003-01-19 13:03:20 +0000
committersos <sos@FreeBSD.org>2003-01-19 13:03:20 +0000
commit80b484084f1ab3514accc48ab19213b67631aba0 (patch)
tree756a4051cdfde6711ab67129058eb16e29b98125 /sys/dev
parent3152c15fb9a94ff22ad3d2fb141ea990a97f47d8 (diff)
downloadFreeBSD-src-80b484084f1ab3514accc48ab19213b67631aba0.zip
FreeBSD-src-80b484084f1ab3514accc48ab19213b67631aba0.tar.gz
Add support for the ServerWorks CSB6.
The support for the 3'rd channel is only experimental.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ata/ata-dma.c7
-rw-r--r--sys/dev/ata/ata-pci.c6
2 files changed, 12 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c
index 2e149e5..d5a3fc5 100644
--- a/sys/dev/ata/ata-dma.c
+++ b/sys/dev/ata/ata-dma.c
@@ -963,8 +963,10 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
atadev->mode = ATA_PIO0 + apiomode;
return;
+ case 0x02131166: /* ServerWorks CSB6 ATA 100 controller (chan 0+1) */
case 0x02121166: /* ServerWorks CSB5 ATA66/100 controller */
- if (udmamode >= 5 && chiprev >= 0x92) {
+ if (udmamode >= 5 && (chiptype == 0x02131166 ||
+ (chiptype == 0x02121166 && chiprev >= 0x92))) {
error = ata_command(atadev, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
@@ -984,6 +986,9 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
return;
}
}
+ /* FALLTHROUGH */
+
+ case 0x02171166: /* ServerWorks CSB6 ATA 66 controller (chan 2) */
if (udmamode >= 4) {
error = ata_command(atadev, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c
index f855c48..d77d65a 100644
--- a/sys/dev/ata/ata-pci.c
+++ b/sys/dev/ata/ata-pci.c
@@ -248,6 +248,12 @@ ata_pci_match(device_t dev)
else
return "ServerWorks CSB5 ATA66 controller";
+ case 0x02131166:
+ return "ServerWorks CSB6 ATA100 controller (channel 0+1)";
+
+ case 0x02171166:
+ return "ServerWorks CSB6 ATA66 controller (channel 2)";
+
case 0x4d33105a:
return "Promise ATA33 controller";
OpenPOWER on IntegriCloud