Hardware, driver status

From ata Wiki
Revision as of 07:09, 19 April 2008 by Jgarzik (Talk | contribs)

Jump to: navigation, search

Contents

Recent updates

Port multiplier support is maturing. A few SAS/SATA controllers now supported.

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

Supported chipsets in kernel 2.6.25 are

AMD SB600/700/800
Intel ICH6 - ICH10, ESB2 and Tolapai.
JMicron 360,361,363,365,366
Marvell 6121,6145
NVIDIA MCP65,MCP67,MCP73,MCP77,MCP79,MCP7B
SiS 966, 968
ULi M5288
VIA vt8251

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.

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

Supported chipsets in kernel 2.6.25 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.

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 (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 which is enabled by default. Some users have encountered issues with hotplug and with command timeouts on some systems. If problems occur, this support can be disabled using the adma=0 module option to sata_nv.

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 presently not enabled by default. It can be enabled using the swncq=1 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.

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.

Software support

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

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: Acard ATP8620, 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 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)
  • Dell
  • HP
  • Intel
  • Marvell
  • Maxtor
  • NVIDIA
  • Pacific Digital
  • Promise
  • Red Hat
  • Seagate
  • SGI
  • Silicon Image
  • SiS
  • ULi Electronics
  • VIA
  • Western Digital

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 some yes yes
sata_promise production yes no yes 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.
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.
Personal tools