Hardware, driver status
Link Power Management support for AHCI capable hardware is maturing, though a few devices have issues.
Information on the capabilites of the devices themselves is present in the list of hardware features.
Intel ICH "IDE" mode
Driver name: ata_piix
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/9/10, PCH 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: ICH5 includes support for MSI at its SATA controller in non combined mode. This is not yet supported in Linux.
Driver name: acard-ahci
Summary: Full NCQ and full SATA control including hotplug and PM. Looks like a standard AHCI controller, but with a few differences requiring a different driver.
Update: Hotplug and NCQ are not yet supported by the driver
AHCI (newer Intel ICH, ULi, others)
Driver name: ahci
Supported chipsets are:
|Intel||3100, CE 3100, ICH6 ~ ICH10, ESB2, NM10, PCH and Tolapai, "6 Series"|
|JMicron||360, 361, 363, 365, 366|
|Marvell||6121, 6145, 88SExxxx series|
|NVIDIA||MCP65, MCP67, MCP73, MCP77, MCP79|
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.
Driver name: sata_promise
Summary: No TCQ. Newer cards support NCQ. Full SATA control including hotplug and PM on all.
Driver name: sata_sx4
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.
Driver name: sx8
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.
Silicon Image 3112/3114/3512
Driver name: sata_sil
Silicon Image 3124
Driver name: sata_sil24
Supported chipsets are sil-3124, sil-3131, sil-3132, and sil-3531.
Summary: Full TCQ/NCQ support, with full SATA control including hotplug and PM.
The 3124 is a nice, open design.
sata_sil24 has FIS-switching Port Multiplier support. It generally works quite well but there are some known bandwidth limitations which show up with the higher bandwidth requirements from PMP.
- The PCI-X variant (3124) on 32 bit PCI @ 33MHz can reach the PCI bus limit.
- I don't know how well it performs on a PCI-X bus with higher bandwidth limit. If you have some numbers, please let me know.
- The PCI-e variant (3132) has enough host side bandwidth to saturate the SATA bus (300MB/s) but due to limitations in the number of posted requests, it maxes out at around 120MB/s when the PCI-e Max Payload Size is set to the minimum of 128bytes which is the setting used by most consumer motherboards. Some highend boards have options to configure Max Payload Size to higher values (e.g. MSI K8N Neo4-F and Neo4 Platinum) and allow 3132 to reach higher throughput.
My generic (SYBA) PCI-X 3124 gives 184MB/s reads with an SSD that is rated at only 175MB/s. looks good for higher transfer rates on this card. --Ykill 02:38, 30 March 2010 (UTC)
Driver name: sata_svw
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.
Driver name: sata_via
NOTE: Newer VIA chipsets are AHCI, and use the ahci driver rather than the sata_via driver.
Driver name: sata_nv
Summary: No TCQ/NCQ in early chipsets. NCQ support added in later chipsets (nForce4 and later). Looks like a PATA controller, but with full SATA control including hotplug and PM.
nForce4 (CK804/MCP04) chipsets support 64-bit DMA and NCQ using the chipset's ADMA interface. This is now not enabled by default due to some reported issues, such as with hotplug and with command timeouts on some systems. If desired, this support can be enabled using the adma=1 module option to sata_nv.
There appear to be some error handling issues in the nForce4 SATA controllers, where system lockups or machine check exceptions can occur when the driver attempts to access the controller registers as part of error handling. The precise cause of this is presently not publicly known but seems likely to be a chipset bug. This is especially noticeable with ATAPI devices such as DVD drives as read errors are much more likely than with hard drives. This has also been known to happen in Windows so it does not appear to be a driver issue.
MCP51 (some nForce 4xx) and MCP55 (nForce 5xx) chipsets support NCQ (but no 64-bit DMA) using the chipset's SWNCQ interface. This support is now enabled by default. It can be disabled using the swncq=0 module option to sata_nv. The MCP61 chipset also has SWNCQ support, but apparently it can't be used with this chipset due to hardware bugs.
NOTE: Newer NVIDIA chipsets are AHCI, and use the ahci driver rather than the sata_nv driver.
Driver name: sata_sis
NOTE: Newer SiS chipsets are AHCI, and use the ahci driver rather than the sata_sis driver.
Pacific Digital QStor
Driver name: sata_qstor
Summary: Advanced queueing controller, with full SATA phy control. Only used in non-RAID mode, even though this chip provides real hardware RAID capabilities.
Vitesse 7174 / Intel 31244
Driver name: sata_vsc
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.
Marvell 88SX5xxx 88SX6xxx 88SX7xxx
Driver name: sata_mv
Summary: Similar to ServerWorks "frodo": per-device queues, full SATA control including hotplug. The 88SX50xx "GEN_I" series supports TCQ, but not NCQ or PM.
The 88SX6xxx "GEN_II" series (6040, 6041, 6080, and 6081) supports TCQ, NCQ, and PM.
The 88SX7xxx "GEN_IIE" series (6042, 7042, and various system-on-chip hosts) supports TCQ, NCQ, FBS, and PM.
Driver name: sata_mv or hptiop (sometimes)
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.
ADMA (including Pacific Digital Talon SATA)
Driver name: pdc_adma
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.
3ware SATA RAID
Driver name: 3w-9xxx or 3w-xxxx
Not suited for libata architecture.
Separate open source SCSI driver for 3-ware hardware exists.
ULi (nee ALi) Electronics SATA
Driver name: sata_uli
This SATA software status has been moved to its own page.
Completely open chipsets
I make an effort to highlight vendors that support their chipsets by posting hardware documentation publicly (open hardware). In an effort to provide positive reinforcement, I also make an effort to give priority to performing engineering tasks on open hardware.
- ADMA: Pacific Digital Talon, others?
- AHCI: Acard ATP8620, ATI/AMD SB7x0
- Intel 31244 (Vitesse 7174)
- Promise 2037x, 20319, 205xx family
- Silicon Image 311x family, 3124 family, 3132
Partially open chipsets
Vendor has posted some hardware documentation publicly but BIOS specification and BIOS specification update documents needed to workaround errata, require NDA.
- Intel 6300ESB, 631xESB-632xESB
- Intel ICH5-ICH10
- Intel PCH
Sponsors and assistance
The following companies have helped sponsor work on libata, either through Jeff Garzik's work with Red Hat, or through donations of hardware, or through access to hardware documentation, or through access to engineers.
List in alpha order. If I'm forgetting somebody, let me know.
- Broadcom (Serverworks)
- Pacific Digital
- Red Hat
- Silicon Image
- ULi Electronics
- Western Digital
See also the list of hardware features
|Driver||Maturity||new EH||NCQ||Device Hotplug||Suspend|
|yes||Yes, feature is present.|
|some||Feature supported on some device models supported by this driver.|
|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.|