From 594e3d5d6fae31d84de0facf6f79f01780cde441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Schmidt?= Date: Mon, 11 Sep 2006 19:48:30 +0000 Subject: [PATCH] Add support for a few more Serverworks and lookalikes chips. --- sys/dev/ata/ata-chipset.c | 21 ++++++++++++--------- sys/dev/ata/ata-pci.h | 3 +++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c index 1bf83b077227..0caeb8a00224 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 0a80a5e479a6..4d1192a8215a 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