diff options
author | jkim <jkim@FreeBSD.org> | 2009-04-27 17:29:51 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2009-04-27 17:29:51 +0000 |
commit | 3c49b58ce468aab699bcef9841ddfc8072bd5c12 (patch) | |
tree | 64c5c8bf60966200d0d392e41c8922c367605a21 /sys/dev/ata/ata-pci.h | |
parent | ca804bea3e4b9f7bbdf116d9869376542187b1a3 (diff) | |
download | FreeBSD-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.h | 6 |
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); |