This status report applies to the latest SATA driver release, found in kernels >= 2.6.18-git5 (i.e. what will be 2.6.19).
Error handling has been rewritten. NCQ and device hotplug have been merged. Port multiplier and power management support is maturing rapidly. PATA support continues, with the help of Alan Cox and others.
Summary: No TCQ/NCQ. Looks like a PATA controller, but with a few added, non-standard SATA port controls. Hardware does not support hotplug. "Warmplug" support is possible.
Update: ICH6/7/8 include support for addressing the SATA PHY registers. This is not yet supported in Linux, mainly because some BIOS do not fill in the necessary (PCI BAR) resources.
Update: Boot-time, probe-time issues continue to persist in some cases, related to the "PCS" register. The ata_piix driver in 2.6.18 and later provides a "force_pcs" module option to help users deal with this (values: 0=default, 1=ignore PCS, 2=honor PCS). Play around with 'force_pcs' if you have device detection problems.
Summary: Full NCQ support, full SATA control including hotplug and PM.
Note1: AHCI specification is completely open.
Note2: ATI, Intel, JMicron, NVIDIA, SiS, ULi and VIA are currently known to have deployed AHCI in their chipsets.
Hopefully others will follow. AHCI is a nice, open design.
Summary: No TCQ. Newer cards support NCQ. Full SATA control including hotplug and PM on all.
Issue #5: Some boards appear to have PATA as well as SATA ports. PATA is currently supported only in the libata-dev.git#promise-sata-pata branch.
Summary: No TCQ/NCQ. No SATA control (bridged PATA solution), so hotplug and SATA PM are not possible.
Issue #6: The SX4 hardware is not fully utilized by the Linux kernel driver. The SX4 hardware includes an on-board DIMM and hardware XOR offload. Using the on-board DIMM as cache, and issuing each RAID transaction once (instead of once for each disk), will result in increased performance, but the driver doesn't do that yet. SX4 hardware is very "RAID friendly", particularly RAID1/5. Users may wish to use the Promise driver to fully utilize the hardware.
Issue #7: With certain DIMMs (make sure they are top-quality ECC registered), there have been reports of data corruption.
Summary: Per-host queues, mostly full SATA control via firmware, including hotplug, PM, TCQ and NCQ support.
Not suited to libata architecture, a separate block driver "sx8" has been written for this hardware.
Needs ATAPI support, so it may wind up using libata after all, for the non-disk devices.
Summary: No TCQ/NCQ. Looks like a PATA controller, but with full SATA control including hotplug and PM.
Summary: Full TCQ/NCQ support, with full SATA control including hotplug and PM.
The 3124 is a nice, open design.
Summary: Huge per-device queues, full SATA control including hotplug and PM for the "Frodo4" and "Frodo8" boards. Apple K2 SATA, which also uses this chipset, has all the feature of Frodo4/8 save the host DMA queueing feature ("QDMA"). QDMA supports legacy TCQ, but not NCQ.
Update: Newer cards support NCQ via QDMA.
Summary: No TCQ/NCQ. Looks like a PATA controller, but with full SATA control including hotplug and PM.
NOTE: Newer VIA chipsets are AHCI, and use the ahci driver rather than the sata_via driver.
Summary: No TCQ/NCQ in early chipsets. NCQ support added in later chipsets. Looks like a PATA controller, but with full SATA control including hotplug and PM.
Update: NVIDIA has provided information (under NDA) that permits implementation of NCQ support, and a sample Linux implementation (patch) as well. Unfortunately, the patch needs debugging, and no one seems to have the time or motivation.
NOTE: Newer NVIDIA chipsets are AHCI, and use the ahci driver rather than the sata_nv driver.
Summary: No TCQ/NCQ. Looks like a PATA controller, but with full SATA control including hotplug and PM.
NOTE: Newer SiS chipsets are AHCI, and use the ahci driver rather than the sata_sis driver.
Summary: Advanced queueing controller, with full SATA phy control. Only used in non-RAID mode, even though this chip provides real hardware RAID capabilities.
Summary: NCQ and 64-bit DAC support possible, but not implemented. Looks like a PATA controller, but with full SATA control including hotplug and PM.
Summary: Similar to ServerWorks "frodo": per-device queues,
full SATA control including hotplug.
The 88SX50xx series supports TCQ, but not NCQ or PM.
The 88SX6xxx series supports TCQ, NCQ, and PM.
The 88SX7xxx series supports TCQ, NCQ, and PM.
Some of the recent HighPoint cards are based on the Marvell 88SX50xx chips. These will be supported by the Marvell libata driver (in progress, see above).
Newer cards pretend they are SCSI, and are supported by the hptiop driver.
Summary: No control over SATA phy at all (no hotplug/PM). Has per-device hardware queues, and supports legacy TCQ.
Docs are public (yay!), though there are apparently a lot of details not in the public docs that are necessary for proper use of Pacific Digital's ADMA controllers.
Not suited for libata architecture.
Separate open source SCSI driver for 3-ware hardware exists.
Summary: No TCQ/NCQ. Looks like a PATA controller, but with full SATA control including hotplug and PM.
Open chipsets:
ADMA: Pacific Digital Talon, others?
AHCI: ATI, Intel ICH6-ICH8, JMicron, NVIDIA, SiS, VIA
Intel ICH5-ICH8
Intel 31244 (Vitesse 7174)
Promise 2037x, 20319, 205xx family
Silicon Image 311x family
Silicon Image 3124 family
List in alpha order. If I'm forgetting somebody, let me know.
Driver | Maturity | new EH | NCQ | Device Hotplug |
Suspend |
---|---|---|---|---|---|
ahci | production | yes | yes | yes | yes |
ata_piix | production | yes | never | no | yes |
pdc_adma | beta | no | no | no | no |
sata_mv | beta | no | no | no | no |
sata_nv | production | yes | no | yes | no |
sata_promise | production | no | no | no | no |
sata_qstor | beta | no | no | no | no |
sata_sil | production | yes | never | yes | yes |
sata_sil24 | production | yes | yes | yes | yes |
sata_sis | production | yes | never | no | no |
sata_svw | production | yes | no | no | no |
sata_sx4 | beta | no | never | never | no |
sata_uli | production | yes | never | no | no |
sata_via | production | yes | never | no | no |
sata_vsc | production | yes | never | no | no |
Key:
yes | Yes, feature is present. |
no | No, feature is not present. The hardware can support this feature, but driver code does not yet exist to support it. |
never | Feature will never be implemented. Usually due to lack of hardware support for features, such as NCQ. |
production | No known major issues. New issues tend to get fixed quickly. |
beta | Has open issues, and new issues may get fixed less quickly. |
Note: When all drivers are converted to new EH, the 'new EH' feature column will be removed.