summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2006-09-11 19:48:30 +0000
committersos <sos@FreeBSD.org>2006-09-11 19:48:30 +0000
commit320be4d7621ff6087c57d04e2811b302cb44eb92 (patch)
treed390a2bbb3246633f83aeb075316613023856b44 /sys
parent902d47f2944163484df8f2847f9c7f70f3bfb457 (diff)
downloadFreeBSD-src-320be4d7621ff6087c57d04e2811b302cb44eb92.zip
FreeBSD-src-320be4d7621ff6087c57d04e2811b302cb44eb92.tar.gz
Add support for a few more Serverworks and lookalikes chips.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-chipset.c21
-rw-r--r--sys/dev/ata/ata-pci.h3
2 files changed, 15 insertions, 9 deletions
diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c
index 1bf83b0..0caeb8a 100644
--- a/sys/dev/ata/ata-chipset.c
+++ b/sys/dev/ata/ata-chipset.c
@@ -3952,14 +3952,17 @@ ata_serverworks_ident(device_t dev)
struct ata_pci_controller *ctlr = device_get_softc(dev);
struct ata_chip_id *idx;
static struct ata_chip_id ids[] =
- {{ ATA_ROSB4, 0x00, SWKS33, 0x00, ATA_UDMA2, "ROSB4" },
- { ATA_CSB5, 0x92, SWKS100, 0x00, ATA_UDMA5, "CSB5" },
- { ATA_CSB5, 0x00, SWKS66, 0x00, ATA_UDMA4, "CSB5" },
- { ATA_CSB6, 0x00, SWKS100, 0x00, ATA_UDMA5, "CSB6" },
- { ATA_CSB6_1, 0x00, SWKS66, 0x00, ATA_UDMA4, "CSB6" },
- { ATA_HT1000, 0x00, SWKS100, 0x00, ATA_UDMA5, "HT1000" },
- { ATA_HT1000_S1, 0x00, SWKS100, 0x00, ATA_SA150, "HT1000 SATA" },
- { ATA_HT1000_S2, 0x00, SWKSMIO, 0x00, ATA_SA150, "HT1000 SATA mmio" },
+ {{ ATA_ROSB4, 0x00, SWKS33, 0, ATA_UDMA2, "ROSB4" },
+ { ATA_CSB5, 0x92, SWKS100, 0, ATA_UDMA5, "CSB5" },
+ { ATA_CSB5, 0x00, SWKS66, 0, ATA_UDMA4, "CSB5" },
+ { ATA_CSB6, 0x00, SWKS100, 0, ATA_UDMA5, "CSB6" },
+ { ATA_CSB6_1, 0x00, SWKS66, 0, ATA_UDMA4, "CSB6" },
+ { ATA_HT1000, 0x00, SWKS100, 0, ATA_UDMA5, "HT1000" },
+ { ATA_HT1000_S1, 0x00, SWKS100, 4, ATA_SA150, "HT1000" },
+ { ATA_HT1000_S2, 0x00, SWKSMIO, 4, ATA_SA150, "HT1000" },
+ { ATA_K2, 0x00, SWKSMIO, 4, ATA_SA150, "K2" },
+ { ATA_FRODO4, 0x00, SWKSMIO, 4, ATA_SA150, "Frodo4" },
+ { ATA_FRODO8, 0x00, SWKSMIO, 8, ATA_SA150, "Frodo8" },
{ 0, 0, 0, 0, 0, 0}};
char buffer[64];
@@ -3989,7 +3992,7 @@ ata_serverworks_chipinit(device_t dev)
&ctlr->r_rid2, RF_ACTIVE)))
return ENXIO;
- ctlr->channels = 4;
+ ctlr->channels = ctlr->chip->cfg2;
ctlr->allocate = ata_serverworks_allocate;
ctlr->setmode = ata_sata_setmode;
return 0;
diff --git a/sys/dev/ata/ata-pci.h b/sys/dev/ata/ata-pci.h
index 0a80a5e..4d1192a 100644
--- a/sys/dev/ata/ata-pci.h
+++ b/sys/dev/ata/ata-pci.h
@@ -266,6 +266,9 @@ struct ata_connect_task {
#define ATA_HT1000 0x02141166
#define ATA_HT1000_S1 0x024b1166
#define ATA_HT1000_S2 0x024a1166
+#define ATA_K2 0x02401166
+#define ATA_FRODO4 0x02411166
+#define ATA_FRODO8 0x02421166
#define ATA_SILICON_IMAGE_ID 0x1095
#define ATA_SII3114 0x31141095
OpenPOWER on IntegriCloud