Serial ATA (SATA) chipsets — Linux support status
Problem: Serial ATA (also known as S-ATA or SATA) chipsets are rapidly replacing legacy "parallel ATA" (PATA, i.e., regular ATA/133) chipsets — but many Linux installers' kernels don't yet support many Serial ATA chipsets. If yours isn't supported, you have an installation obstacle. SuSE's, Fedora Core 2's, Gentoo's, Knoppix's, Debian-sarge release candidates, and Mandrakelinux's installation kernels have a good selection of the required drivers. Scott Kveton's Debian netinst image does, likewise — see Links/Resources.
Note: There is no such thing as a distribution or its installer (generically) "having SATA support" (or not). Please send anyone speaking in such terms to this page. (Some SATA chipsets have been supported since practically forever, as their programming interfaces are unchanged from PATA predecessors. Others are brand-new and require new drivers from scratch.)
There are three workaround options:
1. Switch the motherboard BIOS back to "legacy ATA mode" (parallel ATA = PATA). Complete a Linux installation. Fetch or build a kernel with support for your chipset. Switch the BIOS setting back. (Potential catch: It's claimed that Dell Optiplex GX270 and Dell Precision Workstation 360 desktop units, using Intel ICH5 SATA chipsets, don't support switching to legacy ATA mode. This might be true of some others.)
2. Rebuild your installer using kernel 2.4.27 or later, which includes libata, desirable since it adds many new chipsets and gives a (potential, subject to physical read limits, etc.) ~10M/s speed boost to some others compared to the quite slow 2.4.x drivers/ide set.
3. Temporarily add a regular PATA drive to your system. Install Linux onto that. Fetch or build a kernel with support for your chipset. Migrate your system to the SATA drives.
Driver Overview: Linux kernels have two ATA ("IDE") driver sets:
"drivers/ide": This is the traditional ATA driver set, maintained by Bartlomiej Zolnierkiewicz (before that, Andre Hedrick). Contrary to popular belief, it includes low-level drivers for many common SATA chipsets.
Optionally, on top of drivers/ide block-device (generic mass storage access) drivers, one can load drivers to provide software-level suport for BIOS services enabling various types of manufacturer-specific software RAID (called "fakeraid", below):
For 2.4 kernels, Linux's software-RAID (fakeraid) driver collection is called "ataraid", which has subdrivers for the various manufacturers' different software RAID schemes. Using ataraid results in your partitions being addressed using a /dev/ataraid/d0p1 (etc.) device-naming convention. Note: Support greatly improved circa-2.4.23.
For 2.6 kernels, Linux's software-RAID (fakeraid) driver collection is called "dmraid" (Device Mapper RAID). So far (Sept 2004), Promise Fasttrack, Highpoint 37X, Intel ICH5/6, LSI, and SiI 3112A/Medley are supported: http://tienstra4.flatnet.tudelft.nl/~gerte/gen2dmraid/
I'm pretty sure manufacturers' proprietary drivers, where available, are designed to fit the above framework.
"libata": This is the newer ATA driver set for selected SATA chipsets only, maintained by Jeff Garzik, leveraging the kernel's well-tested SCSI layer. Garzik developed it in the 2.6 kernel series. 2.4 support was available only with a backported patch until libata's inclusion in 2.4.27 and later.
libata causes each SATA port appear as a new SCSI bus. There are individual low-level drivers for the individual SATA chipsets, e.g., ahci, ata_adma, ata_piix, sata_nv, sata_promise, sata_sil, sata_sx4, sata_svw, sata_via, sata_vsc.
Hardware RAID cards have drivers outside these two collections (e.g., 3w-xxxx, 3w-9xxx, aacraid, cciss, dac960, dpt_i2o, gdth, ips, megaraid, megaraid2, mpt*).
Driver Support for Each Known SATA Chipset:
(Caveats: Don't assume this page's data are perfect. Also, if a card's price makes it seem too good to be true, it probably is.)
The first and more-important of two issues raised by these chipsets is what's required to make Linux see block devices on them at all.
(link) 3Ware Escalade 9xxx and 8xxx family (e.g., 8506, 8006) — real hardware RAID. Supported by its own (3w-xxxx) driver in 2.4.18 or earlier: essentially any recent 2.4 kernel. Uses exact same driver as prior (non-SATA) 7xxx series. Faster at sequential reads than the Adaptec cards, if you tune the readahead buffers. Note: 3Ware provides utilities to support ATA hotswap with its host adapters (only), if using suitable drive enclosures/connectors. Model 9500S-8 (8-port card) accepts an optional battery backup unit.
(link) Areca — this entry is a placeholder, until I know more about the Areca ARC-11xx, ARC-12xx, and any kindred. PCI-X and PCI-Express cards. Model ARC-1120 has a battery backup unit option. Said to use Marvell 88SX60xx chips.
(link) ADMA — fakeraid. Please see entry for Pacific Digital, as no other manufacturers yet implement this open-standard hardware spec.
(link) AHCI mode — fakeraid. Intel's Advanced Host Controller Interface is an open-standard PCI abstract device layer for mass-storage access describing a fairly advanced SATA interface ("HBA" = host bus adapter), in theory supporting native command queuing (NCQ) with per-device queues, hotplug, port multiplexer, etc. It's currently represented by Intel's ICH6-R and ICH6-M chipsets; SiS, VIA, and ULi (formerly ALi) have some planned. libata AHCI driver "ahci" available starting 2.4.29-preX and 2.6.9-rcX.
(link) Adaptec AAR 2400, 2410, 2410SA, 2120S, 2200S, 2810SA, 21610SA series — real hardware RAID. Use aacraid driver. (Should not be confused with the Adaptec 2400A ATA RAID host adapter, for which one uses the dpt_i2o driver, that card being a legacy of Adaptec's buying DPT — nor with the low-end Adaptec AAR 12x0 series, which please see.) Faster at random I/O than the 3Ware cards. Optional battery is available for the card's cache, for more reliable operation in the event of power loss, etc. (Card disables the drive's write cache.)
(link) Adaptec AAR 1200, 1210, 1210SA, 1205SA series — fakeraid. This turns out to be a SiIicon Image 3112-variant or 3112A-variant. Works with a patched version of libata's sata_sil subdriver (2003-12).
(link) HP (/Compaq) SA5xxx — real hardware RAID. Supported in 2.6.6 and later kernels using the Compaq CISS (cciss) driver.
(link) HighPoint Rocket Raid 1540/1542/1544/1640 & 454 (HPT374 chipset) and 1520 (HPT372 chipset — non-RAID) — fakeraid. Supported by drivers/ide's hpt36x driver, by at latest 2.4.21-pre5. No libata driver for these. Note: Some recent HighPoint cards use Marvell 88SX50xx chips (for which see separate driver info). Problematic proprietary Linux i386 binary drivers for HighPoint fakeraid are available, but, as usual, you're better off using Linux's own open-source "md" software-RAID driver.
(link) Highpoint 1820 — this entry is a placeholder, until I know more about the Highpoint RocketRAID 1820. PCI-X card. Said to use the Marvell 88SX5080 chip, and differ from its 1820A successor only in lacking the HighPoint HPT601 XOR engine chip. Card was out only briefly, and should be rare.
(link) Highpoint 1820A — this entry is a placeholder, until I know more about the Highpoint RocketRAID 1820A. PCI-X card. Uses HighPoint HPT601 as an XOR engine. Said to use the Marvell 88SX5080 chip.
(link) IBM ServeRAID family, e.g. ServeRAID-7t — real hardware RAID. Very likely works with the same ips driver as for the SCSI predecessor cards in this family. More info.
(link) ICP Vortex GDT8586RZ (4-port), GDT8546RZ (8-port) series — real hardware RAID: Uses Intel 80303 I/O processor and hardware XOR engine dedicated coprocessor, and includes 128MB cache. Works with the kernel's gdth driver version 3.04 or later. A file of hints on using the gdth driver with sundry distributions is available from ICP Vortex. (Adaptec acquired ICP Vortex — from Intel — in 2003.) One source says these cards are based on Silicon Image 3112 chips, which are probably not the system-facing chipsets, and so don't determine driver support.
(link) Intel ICH5 / ICH5-R family — fakeraid. (See fakeraid support details under Intel ICH6.) Supported in 2.4.22 and later kernels using drivers/ide's piix driver (but that driver locks up in many cases), and also (much more reliably) in libata's ata_piix driver, which is now (2004-02-25) of production quality. Intel ICH5/ICH6 is an open-standard hardware spec. "Enhanced mode" or "SATA-only mode" may need to be set in BIOS.
Intel produced GPLed patch sets for ICH5 in the 2.4.9 and 2.4.20 kernels of (respectively) Red Hat Advanced Server 2.1 and Red Hat Linux 8.0, available for download as part of its driver set for the 6300ESB I/O Controller Hub South Bridge on its E7520 and 875P motherboard chipsets.
(link) Intel ICH6 / ICH6-R / ICH6-M family — fakeraid. libata's ata_piix driver support is now (2004-02-25) functional when the ICH6 is running in either ICH5-alike mode or (on ICH6-R or ICH6-M) the enhanced, much-faster, open-specification "AHCI" mode (entry for which, please see), as of 2004-07-08.i ICH6 and AHCI are both open-standard hardware specs.
Intel ICH5-R, ICH6-R, and perhaps some others perform RAID0 disk-spanning via a BIOS trick, which is thus OS-independent. That mode of Intel fakeraid (Intel Software RAID) can be supported in 2.4.x on ICH5/6 with ataraid subdriver iswraid atop libata's ata_piix (not atop drivers/ide): http://www.kerneltraffic.org/kernel-traffic/kt20031201_243.html#16, http://www.kerneltraffic.org/kernel-traffic/kt20040331_255.html#16. (The iswraid patch will be merged into kernel 2.4.28; it and related patches/info are available at http://iswraid.sourceforge.net/.)
(link) Intel ICH7 — fakeraid. Should work with either libata's ata_piix driver or libata's ahci driver. (Please see entries for ICH5, ICH6, and AHCI.)
(link) Intel SRCS14L Serial ATA RAID Controller — real hardware RAID. This is a four-port PCI cards for servers, based on an ICP Vortex chipset, driving SATA output using a pair of Silicon Image SiI3112A SATA chips, and with an Intel GC80303 dedicated I/O processor with 64MB of ECC SDRAM for processing XOR logic. Use the kernel's "gdth" driver (for ICP Vortex and for related Intel SCSI RAID cards). The Silicon Image chips are not the system-facing chipsets (1 2), and so don't determine driver support.
(link) Intel SRCS16 and SRCS28X Serial ATA RAID Controllers — real hardware RAID. These are six-port PCI and eight-port PCI-X cards (respectively) for servers, based on an LSI Logic MegaRAID chipset, driving SATA output using Silicon Image SiI3112A SATA chips (one for each channel pair) and an Intel GC80302 or IOP331 (respectively) dedicated I/O processor with 64MB or 128 MB of ECC SDRAM (respectively) for processing XOR logic. Use the kernel's "megaraid2" driver (For LSI Logic MegaRAID). The Silicon Image chips are not the system-facing chipsets (1 2), and so don't determine driver support. An optional battery-backup daughterboard is available.
(link) Intel 31244 — this is a rebranded Vitesse VSC71714 (which please see).
(link) LSI Logic MegaRAID SATA 150-4 (four ports) and 150-6 (six ports) Serial ATA RAID Host Adapters — real hardware RAID. Work with 2.4.x kernel's megaraid2 driver (same one as for SCSI). Cards use an Intel GC80302 dedicated I/O processor. This chipset, under its former AMI brand name, has had a long and excellent history with SCSI gear. Optional battery backup unit is available for the model 150-6 card's cache, for more reliable operation in the event of power loss, etc. These cards should not be confused with the low-end LSI Logic MegaRaid SATA 150-2 card (which please see).
(link) LSI Logic MegaRAID SATA 150-2 Serial ATA RAID Host Adapter — fakeraid. This turns to to be a Silicon Image 3112-variant. Reports suggest that Linux's open-source SiI 3112 driver sets from Linux work with this card.
An i386 binary (ataraid?) subdriver (megaide) for this fakeraid ("IDEal RAID") scheme can be retrieved from Steve Hardy's Web site, from http://pub.datux.nl/linux/drivers/proliant/, or from LSI Logic. The driver is a GPLed wrapper around proprietary library megaide_lib.o. I'd recommend using (instead) Linux's own open-source "md" software-RAID driver, unless/until LSI Logic (like HighPoint, Nvidia, Promise, and VIA) gets a clue about open source.
(link LSI Logic MegaRAID SATA 300-8X — 8-port PCI-X or PCI-Express SATA-II card. Uses a Marvell 88SX6081 chip.
(link) Marvell Technology Group Ltd. 88SX60x1 and 88SX50xx chip series — 2004-02-25 and 2004-07-09 libata driver set status reports say a libata driver is "in progress". Carlos Vidal has a HOWTO for compiling the driver and modifying Fedora Core 3 to use it, which should generalise well to other distributions.
For Marvell chipsets 88SX5040, 88SX5041, 88SX5080, and 88SX5081 (all SATA I); and 88SX6041 & 88SX6081 (both SATA II), there is a proprietary driver available.
(link) Maxtor SATA/150 PCI Card — fakeraid. A relabelled Promise FastTrak TX2plus card (which please see), using a PDC20375 chip.
(link) NetCell — this entry is a placeholder, until I know more about the NetCell 3-port and 5-port cards.
(link) Nvidia NForce3 Go120, Go150, 150, 250, 250Gb and 150 Pro — fakeraid. I don't know much about this motherboard chipset family, yet, except that its SATA/PATA-support component uses yet another type of fakeraid called nvRAID. 2.6.7 and 2.4.27's drivers/ide amd74xx driver might yield block-device support. However, I suspect that the patch I saw merely records the device IDs for future driver development. Also, Garzik said that beta libata driver "sata_nv" exists as of 2004-07-08 development code, included in kernel 2.6.8. Alternatively, proprietary Linux i386 binary (ataraid?) drivers, including support for the proprietary RAID functionality, are available, but, as usual, you're better off using Linux's own open-source "md" software-RAID driver for the RAID functionality.
(link) Pacific Digital Talon ZL-2, ZL-4, RAIDStaQ LP-4 series (and potentially cards from licensees using PD's "automatic DMA" = ADMA interface) — libata driver "ata_adma" added in 2004-11. It is a non-queuing driver, for now.
(link) Promise FastTrak SATA150, SATA150 TX2, SATA150 TX2plus, SATA150 TX4, SATA150 SX4, SATA378, and Ultra 618 series (e.g., PDC20621, PDC20275, PDC20618, PDC20318, PDC20319, PDC20375, PDC20378, and PDC20376 chips) — fakeraid, mitigated by the fact that the Promise PDC20621 ASIC chip (on SX4 and TX4, but not TX2) functions as a "RAID accelerator" — XOR engine and memory, leaving RAID logic to the host CPU. libata's "sata_promise" driver (for tx2/tx4) or sata_sx4 (for sx4) provides beta-level support a/o 2004-02-25 (included in kernel 2.6.x). Cache memory add-on hardware module is available for some models (OEM versions only, though, not retail). libata drivers don't support any PATA devices, only SATA. Proprietary fakeraid "ft" driver (ataraid?) is available, as are instructions. An now-unmaintained 2003-02 i386 binary driver (often claimed in error to be open source; people being fooled by its source-code wrapper) is also available.
(link) Promise SX8 — per the 2004-09-15 libata report, a separate block driver sx8 has been written for this hardware.
(link) Promise PDC20579 SATAII150 579 — fakeraid. This is a SATA-II chip. libata's sata_promise driver can support it using a patch to the 2004-10 libata development code and a 2.6 kernel.
Promise offers a proprietary driver for 2.4 kernels only.
(link) PDC20518 SATAII150 TX4 card — fakeraid. This is a SATA-II chip. libata's sata_promise driver can support it using a patch to the kernel 2.6.10 libata code. Garzik posted his own patch on 2005-02-06 to support this device; the code will be included in kernel 2.6.11.
Kristoffer Winther Sørensen has posted a guide to retrofitting this sata_promise patch to the current SUSE installer.
Promise offers a proprietary driver for 2.4 kernels only.
(link) PDC20557 SATAII150 TX2plus — fakeraid. This is a SATA-II chip. Garzik posted a patch on 2005-02-06 to support this device; the code will be included in kernel 2.6.11.
Promise offers a proprietary driver for 2.4 kernels only.
(link) PDC20619 — fakeraid. Tobias Lorenz's patch for libata's sata_promise driver was incorporated into libata-dev on 2005-03-13 and merged into kernel 2.6.11-rc4.
(link) RAIDCore — this entry is a placeholder, until I know more about the RAIDCore BC4852 (8-port), RC4852 (8-port) BC4452 (4-port), and any kindred. Said to use Broadcom BCM5770 chips. (Broadcom acquired RAIDCore in spring 2004.)
(link) ServerWorks Frodo / Apple K2 / Broadcom — libata's sata_svw driver provides beta-level support a/o 2004-02-25. As of 2004-07-08, that driver supports the Apple K2 and ServerWorks Frodo4/Frodo8 variants. Other variants' PCI IDs haven't yet been collected, added to the driver, and tested.
Broadcom offers proprietary drivers for BCM4000 series chips on certain Linux 2.4.x and 2.6.x kernels.
(link) Silicon Image 3112 / 3114 (integrated), and 3512 (PCI) (CMD Technology, Inc.) — fakeraid. libata's "sata_sil" driver provides beta-level support (a/o 2004-07-08), or probably 2.4.x drivers/ide's siimage driver (originally developed for the pre-SATA CMD680 chip used in many ATA host adapters). Note that enabling libata support for this chipset requires enabling CONFIG_BROKEN (under "Code maturity level options") in your kernel configuration, for reasons Garzik has explained. As of 2004-12, Silicon Image 311x became an open-standard hardware spec.
Daniel Paepcke has posted a HOWTO for building the sata_sil driver.
ataraid support for SiI's Medley fakeraid is available from 2.4.21 or later's silraid (Arjan van de Ven's) subdriver or its superior 2.4.26 and later replacement, medley (by Thomas Horsten). Note: So far, medley supports only Medley's RAID0 "striped" mode, and not its RAID1 "mirrored" or RAID1+0 (AKA "RAID10") modes. Alternatively, you can use Linux's "md" software-RAID driver.
Proprietary drivers are available.
Note that as of 06/2004, Silicon Image chipsets have a bug in "lba48" addressing (of a few drives over 137GB, but not all of them), necessitating a patch that will, as a necessary consequence, limit performance on the drives affected (only).
(link) Silicon Image 3124 (CMD Technology, Inc.) — libata's sata_sil driver is said, in author Garzik's 2004-03-01 personal e-mail, to be not yet quite working. 2004-02-24's libata status report says support for the 3124 is expected to work "Soon (user-written)". 2004-07-08's update adds that Silicon Image has now provided him with docs and sample hardware.
(link) SiS 964 South Bridge, SiS 180 card — is now (2004-03-01) supported in libata using a driver contributed by Uwe Koziolek. The 2.6.6 kernel added this (beta) driver a/o 2004-05-09.
(link) SuperMicro DAC-SATA-MV8 — uses a Marvell chip (which please see).
(link) Tekram — PCI-X and PCI-Express cards that are inexpensive variants of similar models from Areca. E.g., Tekram SIR-1120 is near-identical to an Areca ARC-1120. Cards use Marvell chips.
(link) ULi Electronics, Inc. (formerly ALi) M1573 South Bridge and M5285, M5283, and M5281 SATA bridge chips — fakeraid. libata beta-level driver. On 2004-12-27, ULi also submitted a libata patch to add support for an upcoming AHCI-based chipset.
(link) VIA VT8237 South Bridge, using VT6420 Serial ATA chip — fakeraid. libata's "sata_via" driver set provides beta-level support a/o 2004-02-25 (included in kernel v. 2.6.3). Recent 2.4.x drivers/ide code should support it, too. Proprietary drivers available.
(link) VIA VT6421 chip — fakeraid. A libata-dev patch was posted on 2005-02-06.
(link) Vitesse Semiconductor Corp. VSC7174 Serial ATA chip — libata's sata_vsc (by Jeremy Higdon) was added as of the 2.6.5 kernel. No RAID functionality, in itself: Chip can be embedded on a NAS controller card with a separate RAID chip.
RAID issues (a separate wrinkle): (link)
Most ATA RAID host adapters (except 3Ware Escalade, Adaptec 24x0, Areca, HP/Compaq, IBM ServeRAID, Intel SRC*/ICP Vortex, LSI Logic MegaRAID 150-4/150-6, and Tekram) turn out, upon examination, to not be real hardware RAID, but rather software/BIOS-dependent fakeraid. (I.e., missing hardware functionality is traditionally emulated inside idiosyncratic, undocumented, and proprietary software drivers, to hit low price points). Fakeraid is difficult to support in Linux — absent either reverse-engineering, special proprietary drivers, or (rare) manufacturer cooperation. (HighPoint, LSI Logic, Nvidia, Promise, and VIA provide proprietary drivers to support their respective fakeraids. I personally would steer clear.)
Linux often cannot read existing fakeraid volumes on such host adapters, unless you're willing to use proprietary fakeraid drivers (where available). But unless you're dual-booting MS-Windows, you shouldn't care, because Linux's software RAID (kernel "md" driver) is much faster and more reliable. You're advised to blow away fakeraid volumes, use SATA drives as straight block devices, and enable Linux software RAID instead, during Linux installation.
Kernel coders are slowly figuring out some fakeraid variants, and coding ataraid/dmraid modules.
Warning about media errors and RAID
Be aware that if any one drive of your SATA-based RAID array goes offline for any reason, including a significant string of media errors, depending on the SATA host adapter, the array may hang and need to be rebooted. This is because many SATA host adapters, like ATA generally absent special hardware provisions, simply don't support hotplug functionality.
This is known to be true, in particular, of Intel's ICH5/ICH5R series, and Garzik has pointed out that that chip series, plus Intel ICH6 (in non-AHCI mode), Pacific Digital Talon, and Promise SATA SX4 — at minimum — will never support hotplug.
Troubleshooting:
If your installer finds no block devices or has other problems, please realise that all Linux SATA support is still (2004-01) hit or miss. (Users of 3Ware cards should have no problems, though. Those with Intel ICH5 chipset may be OK with the 2.4.22 or later drivers/ide piix driver, as that chipset is very nearly identical to prior Intel chips in the PIIX series.) Your best option is to find or build an installer with a recent version of libata, either by virtue of its inclusion in stock 2.6.x kernels, its merger into 2.4.27 and later, or by your applying it as a patch to a (pre-2.4.27) 2.4 installation kernel.
Links/Resources:
Serial ATA (SATA) for Linux link farm (Garzik's). All of author's future SATA status reports and other support pages will be linked there.
Linux SATA RAID FAQ (Garzik's). Mostly, "Why — no, sir — here's why that SATA thing you bought actually isn't real hardware RAID." Very droll.
Linux-IDE:
— information resource for open-source Linux ATA support but not
necessarily the Serial ATA variant, operated by a "Linux ATA
Development Storage Consulting Group":
http://www.linux-ide.org/
Background article on Serial ATA and Linux:
http://www.linux-tutorial.info/modules.php?name=Tutorial&pageid=328
Design limits of ATA, especially in RAID settings:
http://www.findarticles.com/cf_dls/m0BRZ/6_23/105884199/p1/article.jhtml Why SCSI will still remain generally faster and more reliable.
Serial ATA Info by Brady Matthew Shea.
SATA/RAID-Capable Hard Drives and Motherboards by Brady Matthew Shea.
libata status reports:
- Link to cumulative-info report
- a/o 2004-07-08: http://www.google.com/groups?hl=en&lr=&ie=UTF-8&th=28f68c68ad7073d8&rnum=1
- a/o 2004-05-10: http://www.google.com/groups?hl=en&lr=&ie=UTF-8&th=9f3661e9bc8e3981&rnum=1
- a/o 2004-04-24: http://lkml.org/lkml/mbox/2004/4/24/80
- a/o 2004-03-30: http://www.google.com/groups?hl=en&lr=&ie=UTF-8&selm=1Fz8E-VU-87%40gated-at.bofh.it
- a/o 2004-03-25: http://www.google.com/groups?selm=1DGQl-3Dk-47%40gated-at.bofh.it&output=gplain
- a/o 2004-03-23: http://www.google.com/groups?hl=en&lr=&ie=UTF-8&th=16436e61be477b1c&rnum=1
- a/o 2004-02-25: http://www.ussg.iu.edu/hypermail/linux/kernel/0402.3/0711.html
- a/o 2003-12-03: http://www.ussg.iu.edu/hypermail/linux/kernel/0312.0/0597.html
libata source code and docs checkout: Take care to read all documentation. Among other things, you'll need to disable all kernel ATA support, since libata uses the kernel's SCSI layers: http://gkernel.bkbits.net/ or (somewhat easier to deal with) Garzik's periodic patchkits at ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/.
I gather that libata is the only way to support SATA drives larger than 133GB. (libata supports the necessary "lba48" ATA addressing extension starting with kernel revision 2.6.5-rc2.) Also, Garzik has hotplug, random taskfile submission (thus enabling SMART support, previously unavailable under libata), and ATAPI under development for libata as of 2004-04-24. Last, Garzik has drivers for SATA-2 controllers under development as of 2004-03-30.
SATA can theoretically do tagged command queuing (TCQ), but support for that feature is just now (2004-07) under construction in libata — and exists in none of the other Linux driver sets.
Kernel Traffic's ongoing coverage: http://www.kerneltraffic.org/kernel-traffic/topics/Serial_ATA.html
Debian installation using Scott Kveton's unofficial
Debian 3.0 woody 5 MB netinst image: This image uses a 2.4.23
kernel, meaning it's useful for owners of Intel ICH5 chipsets (standard
ATA driver), Adaptec AAR 24x0 chipsets (aacraid driver), LSI Logic
MegaRAID 150-4/150-6 SATA chipsets (megaraid2 driver), and the SiS
964 South Bridge. (Please let
me know. My thanks to Martin McClure for confirming SiS 964 support.)
And of course 3Ware card owners can use almost any 2.4.x-based
installer. Kveton's image does not include Garzik's libata set, and
so doesn't cover other SATA chipsets. However, Kveton's instructions page
also details how you can create your own custom netinst,
e.g., one with 2.4.27 (and later) or a 2.6 kernel (either of which
includes libata):
http://oregonstate.edu/~kveton/debian/ or
http://public.www.planetmirror.com/pub/debian-netinst/kveton/
Installing Debian with SATA-based RAID. Article
by Karl Schmidt, in which he uses the Debian-sarge beta4 installer's
2.6 kernel's libata drivers to complete installation onto his Intel ICH5
SATA (Intel D865PERL motherboard), then create a Linux software RAID
array, and move Debian over:
http://xtronics.com/reference/SATA-RAID-Debian.htm
Debian chroot installation onto Intel ICH5R SATA.
Involves initial Debian installation to a separate PATA drive.
Basic technique shown can be adapted to any SATA chipset using 2.4.27
(or later) or a 2.6 kernel (either of which includes libata):
http://www.e-aiyama.com/~toshi/Computer/Linux/SATA.html
Debian chroot installation onto Intel ICH5 SATA and LVM.
Involves initial Debian installation to a separate PATA drive:
http://www.lathi.net/twiki-bin/view/Main/DebianSataLvm
Debian 2.6-kernel-based installers. At least two installers for Debian provide installers with "2.6 boot flavour" options (and thus libata): all Knoppix releases starting with v. 3.4 and Official Debian Debian-Installer releases (for Debian 3.1 sarge and later) starting with beta 4.
Red Hat custom CD construction — creating your own custom RH-based installer starting from stock RH8, e.g., to substitute a custom kernel with libata patches:
http://www.cpqlinux.com/rh80customcd.html
Red Hat on an Intel D865PERL motherboard and SATA drives
— brief article on how to install RH9 to hard drives on that
motherboard's Intel ICH5 chipset, by setting the BIOS to "legacy mode"
for installation, and then using Linux software RAID ("md" driver):
http://www.transtronics.com/reference/D865PERL_SATA.htm
Fedora custom CD construction
— creating your own custom Fedora-based installer starting from a stock
Fedora image, e.g., to substitute a custom kernel with libata patches:
https://www.redhat.com/archives/anaconda-devel-list/2003-March/msg00033.html. (Note that Fedora Core2 provides a 2.6 kernel, making this rebuild step no longer necessary for most SATA chipsets.)
Disclaimer:
I've created this document from public sources in order to learn about the subject, but cannot claim any expertise. Accordingly, it may contain significant errors — and corrections are greatly appreciated. Please send all such to rick@linuxmafia.com.
See also:
Thanks to the Darma NAS OS Hardware Compatibility List (http://nas.darma.com/support/hcl.html) for crediting this page (for extensive borrowings from it).
The Skolelinux Project has a potentially useful page of information about hardware RAID chipsets: http://developer.skolelinux.no/info/prosjektet/delprosjekt/hw-raid-info.html