diff options
author | sos <sos@FreeBSD.org> | 2005-08-12 16:54:11 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2005-08-12 16:54:11 +0000 |
commit | 3419beff854c126fe64406cd29854bab72cdb265 (patch) | |
tree | 8cdb86004ad8f9bb2a75e3503d6719c53916719f /sys/dev | |
parent | 1cdb29903d112cea74f61db27d513c63cccc806c (diff) | |
download | FreeBSD-src-3419beff854c126fe64406cd29854bab72cdb265.zip FreeBSD-src-3419beff854c126fe64406cd29854bab72cdb265.tar.gz |
Add support for the Promise PDC4071[89] chips used on fx the Fasttrak TX4300.
Docs kindly provided by Promise.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/ata/ata-all.c | 1 | ||||
-rw-r--r-- | sys/dev/ata/ata-chipset.c | 5 | ||||
-rw-r--r-- | sys/dev/ata/ata-pci.h | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 1e74e01..03ec49a 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -769,6 +769,7 @@ ata_mode2str(int mode) case ATA_UDMA5: return "UDMA100"; case ATA_UDMA6: return "UDMA133"; case ATA_SA150: return "SATA150"; + case ATA_SA300: return "SATA300"; default: if (mode & ATA_DMA_MASK) return "BIOSDMA"; diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c index c9b3292..8156ce6 100644 --- a/sys/dev/ata/ata-chipset.c +++ b/sys/dev/ata/ata-chipset.c @@ -208,6 +208,7 @@ ata_generic_setmode(device_t dev, int mode) static void ata_sata_setmode(device_t dev, int mode) { + struct ata_pci_controller *ctlr = device_get_softc(GRANDPARENT(dev)); struct ata_device *atadev = device_get_softc(dev); /* @@ -220,7 +221,7 @@ ata_sata_setmode(device_t dev, int mode) atadev->param.satacapabilities != 0xffff) { if (!ata_controlcmd(dev, ATA_SETFEATURES, ATA_SF_SETXFER, 0, ata_limit_mode(dev, mode, ATA_UDMA6))) - atadev->mode = ATA_SA150; + atadev->mode = ctlr->chip->max_dma; } else { mode = ata_limit_mode(dev, mode, ATA_UDMA5); @@ -2233,6 +2234,8 @@ ata_promise_ident(device_t dev) { ATA_PDC20622, 0, PRMIO, PRSX4X, ATA_SA150, "Promise PDC20622" }, { ATA_PDC40518, 0, PRMIO, PRSATA2, ATA_SA150, "Promise PDC40518" }, { ATA_PDC40519, 0, PRMIO, PRSATA2, ATA_SA150, "Promise PDC40519" }, + { ATA_PDC40718, 0, PRMIO, PRSATA2, ATA_SA300, "Promise PDC40718" }, + { ATA_PDC40719, 0, PRMIO, PRSATA2, ATA_SA300, "Promise PDC40719" }, { 0, 0, 0, 0, 0, 0}}; char buffer[64]; uintptr_t devid = 0; diff --git a/sys/dev/ata/ata-pci.h b/sys/dev/ata/ata-pci.h index 1f9e8c3..8d29a0e 100644 --- a/sys/dev/ata/ata-pci.h +++ b/sys/dev/ata/ata-pci.h @@ -203,6 +203,8 @@ struct ata_connect_task { #define ATA_PDC20580 0x3570105a #define ATA_PDC40518 0x3d18105a #define ATA_PDC40519 0x3519105a +#define ATA_PDC40718 0x3d17105a +#define ATA_PDC40719 0x3515105a #define ATA_PDC20617 0x6617105a #define ATA_PDC20618 0x6626105a #define ATA_PDC20619 0x6629105a |