Menu:

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).

Table of Contents

  1. Recent updates
  2. Hardware support
  3. Software support
  4. Vendor support
  5. Driver / feature matrix

1. Recent updates

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.


2. Hardware support

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 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.


AHCI (newer Intel ICH, ULi, others)

Driver name: ahci

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.


Promise TX2/TX4

Driver name: sata_promise

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.


Promise SX4

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.


Promise SX8

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

Driver name: sata_sil

Summary: No TCQ/NCQ. Looks like a PATA controller, but with full SATA control including hotplug and PM.


Silicon Image 3124

Driver name: sata_sil24

Summary: Full TCQ/NCQ support, with full SATA control including hotplug and PM.

The 3124 is a nice, open design.


Broadcom/ServerWorks/Apple

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.


VIA

Driver name: sata_via

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.


NVIDIA

Driver name: sata_nv

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.


SiS 180-182

Driver name: sata_sis

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.


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 88SXxxxx

Driver name: sata_mv

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.


HighPoint (HPT)

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

Summary: No TCQ/NCQ. Looks like a PATA controller, but with full SATA control including hotplug and PM.


3. Software support

This SATA software feature status has been moved to its own page.


4. Vendor support

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.

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


Sponsors and assistance

The following companies have helped sponsor work on libata, either through my 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.


5. Driver / feature matrix

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:

yesYes, feature is present.
noNo, feature is not present. The hardware can support this feature, but driver code does not yet exist to support it.
neverFeature will never be implemented. Usually due to lack of hardware support for features, such as NCQ.
productionNo known major issues. New issues tend to get fixed quickly.
betaHas 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.