summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-pci.h
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2009-04-27 17:29:51 +0000
committerjkim <jkim@FreeBSD.org>2009-04-27 17:29:51 +0000
commit3c49b58ce468aab699bcef9841ddfc8072bd5c12 (patch)
tree64c5c8bf60966200d0d392e41c8922c367605a21 /sys/dev/ata/ata-pci.h
parentca804bea3e4b9f7bbdf116d9869376542187b1a3 (diff)
downloadFreeBSD-src-3c49b58ce468aab699bcef9841ddfc8072bd5c12.zip
FreeBSD-src-3c49b58ce468aab699bcef9841ddfc8072bd5c12.tar.gz
- Always force AHCI mode on a ATI/AMD SB600/700/800 SATA controller. These
controllers may be configured as legacy IDE mode by modifying subclass and progif without actually changing PCI device IDs. Instead of complicating code, we always force AHCI mode while probing. Also we restore AHCI mode while resuming per ATI/AMD register programming/requirement guides. - Fix SB700/800 "combined" mode. Unlike SB600, this PATA controller can combine two SATA ports and emulate one PATA channel as primary or secondary depending on BIOS configuration. When the combined mode is disabled, this channel disappears and it works just like SB600 PATA controller, however. - Add more PCI device IDs for SB700/800 and adjust device descriptions. SB800 shares the same PCI device IDs and added two more SATA IDs.
Diffstat (limited to 'sys/dev/ata/ata-pci.h')
-rw-r--r--sys/dev/ata/ata-pci.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-pci.h b/sys/dev/ata/ata-pci.h
index 9e31bc7..42f478e 100644
--- a/sys/dev/ata/ata-pci.h
+++ b/sys/dev/ata/ata-pci.h
@@ -108,6 +108,11 @@ struct ata_pci_controller {
#define ATA_ATI_IXP600_S1 0x43801002
#define ATA_ATI_IXP700 0x439c1002
#define ATA_ATI_IXP700_S1 0x43901002
+#define ATA_ATI_IXP700_S2 0x43911002
+#define ATA_ATI_IXP700_S3 0x43921002
+#define ATA_ATI_IXP700_S4 0x43931002
+#define ATA_ATI_IXP800_S1 0x43941002
+#define ATA_ATI_IXP800_S2 0x43951002
#define ATA_CENATEK_ID 0x16ca
#define ATA_CENATEK_ROCKET 0x000116ca
@@ -458,6 +463,7 @@ int ata_ahci_ch_attach(device_t dev);
int ata_ahci_ch_detach(device_t dev);
int ata_ahci_ch_suspend(device_t dev);
int ata_ahci_ch_resume(device_t dev);
+int ata_ahci_ctlr_reset(device_t dev);
void ata_ahci_reset(device_t dev);
int ata_marvell_edma_chipinit(device_t);
int ata_sii_chipinit(device_t);
OpenPOWER on IntegriCloud