Serial ATA (SATA) chipsets — Linux support status

本文转载于 http://linuxmafia.com/faq/Hardware/sata.html


Serial ATA (SATA) chipsets — Linux support status

Revised:Mon Dec 31 19:01:01 PST 2007


As this page is showing the effect of lagging maintenance (though its author hasn't yet given up), readers should seriously considerfavouring what is now (2011) the most current site for general coverage of thissubject:https://ata.wiki.kernel.org/articles/s/a/t/SATA_hardware_features_8af2.html

Problem: Serial ATA (also known as S-ATA or SATA) chipsets are rapidly replacing legacy "parallel ATA" (PATA, i.e., regular ATA/133) chipsets — newer Linux installers' kernels yet supportmany Serial ATA chipsets, by now (especially since 2.4 and earlier kernels are now a thing of the past), but some confusion persists.

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, if your installer still has a problem with support for the SATA chip present:

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-I chipsets, don't support switching to legacy ATA mode. This might be true of some others.)

2. (In the by-now rare case of being stuck on an installer that relies on 2.4.x kernels:) 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 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. The Linux kernel team's near-term plan is to phase out this driver set.

    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, pdc_adma, ata_piix, sata_nv, sata_mv, sata_promise, sata_qstor, sata_sil, sata_sil24, sata_sis, sata_sx4, sata_uli, 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, megaraid_mbox aka megaraid-newgen, 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 probablyis.)

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 (e.g., 9500S-4 4-port, 9500S-8 8-port, 9500S-8MI 8-port, 9500S-12 12-port, 9500S-12MI 12-port) and 8xxx family (e.g., 8506, 8006, 8006-2LP 2-port, 8506-4LP 4-port, 8506-8 8-port, 8506-12 12-port) SATA-I PCI cards and 95xx series family (e.g., 9550SX-4LP 4 port, 9550SX-8LP 8 port, 9550SX-12 12-port, 9550SX-12MI 12-port, 955SX-16ML 16-port) SATA-II NCQ PCI-X cards — real hardware RAID. Supported by its own (3w-xxxx and 3w-9xxx) 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. Applied Micro Circuits Corporation (AMCC) acquired 3Ware, Inc. in March 2004.

  • (link)Adaptec AAR 2400, 2410, 2410SA, 2120S, 2200S, 2810SA (8-port), 21610SA (16-port) series PCI cards — real hardware RAID, using the slightly anemic Intel IOP302/303 I/O co-processor chips. 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-endAdaptec 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 2420SA (4-port) and AAR 2820SA (8-port) PCI-X cards — real hardware RAID. Use "aacraid" driver. Features Adaptec AIC-8210 RAID co-processor chip. Supports NCQ, hot sparing. Optional battery backup unit is available.

  • (link)Adaptec AAR 1200, 1210, 1210SA, 1205SA, 2047600 (2-port) series PCI cards — fakeraid. This turns out to be a Silicon Image 3112-variant or 3112A-variant. Works with a patched version of libata's sata_sil subdriver (2003-12).

  • (link)Adaptec ASR-2020SA/2025SA Zero-Channel RAID cards — real hardware RAID. Cards lack SATA I/O functionality but supply RAID logic: offload I/O processing across ZCR connection to EMRL- or RAIDIOS-compatible SATA-I I/O chip on motherboard. Use "aacraid" driver.

  • (link)Adaptec AAR-1420SA 4-port SATA-II PCI-X — fakeraid. These are rumoured to be a cheap OEM from someone else, but the chipset identity is unknown. Note Brent Norris'sscathing review. Beware of Adaptec's term "HostRaid": This means fakeraid, not real hardware RAID. Adaptec offers proprietarydrivers (binary-only).

  • (link)Addonics SATA-I family— fakeraid. See Silicon Image 3112. Models ADST203 (2-port SATA-I PCI combo card), ADST108(external/internal 2-port SATA-I PCI card), and ADSA2 (2-port SATA-I PCI card)all use SiI3112 chips. Models ADSA4R-E (4-Port eSATA-I PCI card) and ADST114 (4-port SATA-I RAID PCI card) both use SiI3114 chips. Model AD2SAP-E (2-Port eSATA-I PCI card) uses SiI3512 chips.

  • (link)Addonics SATA-II family— fakeraid. See Silicon Image3124. Models ADS3GX4R5-E (eSATA-II RAID5/JBOD card), ADS3GX4R5 (SATA-II PCI-X RAID card), and ADSA3GX4R-E (4-Port External SATA-IIPCI-X card) all use SiI3124 chips. Model ADSA3GPX1-E (eSATA-IIPCI-Express card) uses SiI3132 chips.

  • (link)Addonics CardBus PCMCIAcards — fakeraid. Model ADCB2SA-E is a 2-port eSATA-I CardBus card. Model ADCBSA2 is a 2-port SATA-I CardBus card. I so farhave no information on their chipsets: This entry is a placeholder.

  • (link)ADMA — fakeraid. Please see entry for Pacific Digital Talon, 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, ULi's (formerly ALi) M1575 and M1567 4-port SATA-II PCI Express South Bridges; AMD's SB600 South Bridge, and some chipsets from SiS, VIA, Nvidia, ATI, and JMicron. libata AHCI driver "ahci" became available starting 2.4.29-preX and 2.6.9-rcX, and is now production quality. If your desired installation kernel lacks "ahci", you may be able to use a pre-AHCI fallback mode (e.g., the ICH5-like fallback mode of Intel ICH6/ICH6-R chipsets): Look in your BIOS Setup program for a "legacy" or "ATA" setting, e.g., as reported byPeter Knaggs for his Dell Dimension XPS Gen 3 Series / Intel 925X Express chipset motherboard.

  • (link)AMD SB600 South Bridge — fakeraid. Supports thestandard AHCI driver interface.

  • (link)Areca Technology Corp. ARC-11xx, ARC-12xx PCI-X and PCI-Express cards — real hardware RAID. Model ARC-1120 has a battery backup unit option. Said to use Marvell 88SX60xx chips and an Intel 80332 XOR engine. Erich Chen of Areca maintainsGPLed source code for a "arcmsr" driver for these chipsets (also available atunnet). Like Garzik's libata driver, Chen's "arcmsr" driver uses the kernel's SCSI layers.

  • (link)ATI 4379 — fakeraid. This turns out to be anintegrated version of the Silicon Image 3112.
  • (link)Broadcom RAIDCore BC4852, BC4810 (8-port), and BC4452, BC4410 (4-port) PCI-X cards — fakeraid. Units use Broadcom BCM5770 chips. The cheaper 4810 and 4410 cards differ from their 4852 and 4452 brethren in having some advanced capabilities disabled; they can be upgraded via an extra-cost software key. (Broadcom Corporation acquired RAIDCore in spring 2004.)

    Broadcom offers proprietary driver "bcraid" for its BCM5770-chip-based RAIDCore BC4000-series products (BC4452, BC4652, BC4852, BC4450, BC4650, BC4850, BC4410, BC4610, BC4810).

  • (link)Broadcom SATA-II cards — fakeraid. As of 2005-09, new cards are expected based on Broadcom's BCM5773 chip supporting 8-port PCI-X or PCI-Express SATA-II with Broadcom's XelCore fakeraid. This entry is a placeholder.

  • (link)Broadcom RAIDCore BCM5785 aka HT-1000 chips — fakeraid. Proprietary drivers using Broadcom's proprietary "blob" are available fromIBM and Tyan.

  • (link)HP (/Compaq) SA5xxx PCI cards — real hardware RAID. Supported in 2.6.6 and later kernels using the Compaq CISS (cciss) driver.

  • (link)HighPoint RocketRAID 1540/1542/1544/1640 & 454 (HPT374 chipset), RocketRAID 1520 (HPT372, HPT372N, or HPT372A chipset), and Rocket 1520 (HPT302N chipset — non-RAID) PCI cards — fakeraid. Supported by drivers/ide's hpt36x driver, by at latest 2.4.21-pre5. No libata driver exists for these, but Alan Cox is working on one (as of 2006-01). Note: Some recent HighPoint cards use Marvell 88SX50xx chips (for which see separate driver info). Problematic proprietary Linux i386 binary drivers for HighPoint fakeraid (release 2.0 of which is reported to malfunction or even fail to compile on later 2.6 kernels ranging, at least, from 2.6.8 through 2.6.14) are available, but, as usual, you're better off using Linux's own open-source "md" software-RAID driver. (Warning: You'll need to load the proprietary driver only into kernels lacking the conflicting drivers/ide htp36x driver, in the presence of which your system will seize up, at boot time.)

  • (link)HighPoint Rocket 1511 (1-port external port, PCI) and RocketHead 100 (external PATA/SATA converter widget) — fakeraid. These devices both are based on HighPoint PATA controller chips (HPT302N and HPT372A, respectively), speaking to SATA via a Marvell 88i8030 SATA bridge chip. As such, they cannot be supported by Linux's drivers/ide htp36x driver, but there areproprietary, binary-only drivers.

  • (link)HighPoint RocketRAID 1820 (8-port) / 1820A (8-port) / 1810 (4-port) SATA-II PCI-X cards — fakeraid. Said to use the Marvell 88SX5080 chip. Model 1820A adds the HighPoint HPT601 XOR engine chip: Its model 1820 predecessor was out only briefly, and should be rare.

    HighPoint makes available proprietary driver "hptmv" (source code wrapper around a binary-only proprietary core library).

  • (link)HighPoint RocketRAID 2240 (16-port SATA-II PCI-X), 2220 (8-port SATA-II PCI-X), 2320 (8-port SATA-II PCI Express), 2224 (4-port SATA-II PCI-X) cards — fakeraid. Proprietary binary drivers (2240,2220, 2320, 2224) can be downloaded from the manufacturer. Correspondent Berkley Shands notes that these cards and proprietary drivers are quite CPU-intensive, even pushing a quad-Opteron system a bit. He also recommended tweaking hpt_reset routine to fix IRQ spinlocks, on 2.6.14/2.6.15 kernels. He achieved a maximum initial read speed of 870MB/sec. on RAID0, using 50% of CPU power. Note that models 2220 and 2240 both try to use (different) proprietary drivers named "hptmv6". Use command-line rather than GUI RAID setup utility, if there will be more than 8 drives per array. Shands adds: "Just FYI, to get those nice performance numbers, youmust set the read-ahead value for the drive and use the POSIX_WILL_NEED function of fadvise(). The default read-ahead is 8 sectors. I use 1024; otherwise, you won't come anywhere near those numbers."

  • (link)HighPoint RocketRAID 2310 (4-port SATA-II PCI Express card) — fakeraid. An proprietary "rr2310_00" driver (source code wrapper around binary-only proprietary core libraries, deceptively claimed to be "open source") isavailable from the manufacturer.

  • (link)HighPoint RocketRAID 2320 (8-port SATA-II PCI Express card) — fakeraid. An proprietary, high-performance "rr232x" driver (source code wrapper around binary-only proprietary core libraries, deceptively claimed to be "open source") isavailable from the manufacturer.

    Garzik mentions that newer HighPoint cards (those that aren'tbased on Marvell 88SX50xx chips) pretend they are SCSI and are supportedby the "hptiop" driver.

  • (link)IBM ServeRAID family, e.g. ServeRAID-7t, and 7k PCI and PCI-X cards — real hardware RAID. Prior to the ServeRAID-7 series, units probably worked with the same ips driver as for the SCSI predecessor cards in this family.More info. Somewhere around the ServeRAID 7t, IBM began applying the "ServeRAID" brand to Adaptec-oriented host adapters and Intel ICH-oriented fakeraid (so-called "HostRaid") ones: E.g., the ServeRAID-7t and 7k are based on anAdaptec 2410SA chip; the ServeRAID-7e uses anIntel ICH5-R fakeraid chip (entries for which, please see). Oddly, support for IBM/Adaptec HostRAID fakeraid format (ServeRAID model 7e) is said to require Adaptec's proprietary a320raid driver.

  • (link)ICP Vortex GDT8586RZ (4-port), GDT8546RZ (8-port) series PCI cards — 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 probablynot the system-facing chipsets, and so don't determine driver support.

  • (link)Intel ICH5 / ICH5-R family chips — fakeraid. (See fakeraid support details under IntelICH6.) 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, production quality since 2004-02-25. Intel ICH5/ICH6 is an open-standard hardware spec. ICH7/8 usually can be set to be backwards-compatible. "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 itsdriver set for the 6300ESB I/O Controller Hub South Bridge on its E7520 and 875P motherboard chipsets.

    Adaptec has released a proprietary "aarich" driver (source code wrapper surrounding a binary-only core library) for Intel ICH5-R and Silicon Image 3512. (The name is intended to be parsed as AAR-ICH, as it is intended for certain Adaptec AAR-series cards based on Intel ICH5 SATA-I chips.)

    Supermicro's ftp site offers proprietary driversfor Intel ICH5-R chips on Intel Hance Rapids motherboards, written by Adaptec.

  • (link)Intel ICH6 / ICH6-R / ICH6-M family SATA-I chips — 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. If your desired installation kernel lacks the "ahci" driver, you may be able to use ICH5-like fallback mode: Look in your BIOS Setup program for a "legacy" or "ATA" setting, e.g., as reported byPeter Knaggs for his Dell Dimension XPS Gen 3 Series / Intel 925X Express chipset motherboard.

    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 apatch that will, as a necessary consequence, limit performance on thedrives affected (only).

    Alternatively, LSI has produced proprietary,binary-only drivers (source code wrapper accompanying a "megaide"binary-only driver) for ICH6-R. Supermicro's ftp site offers versionsof those sameproprietary,binary-only drivers.

    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 athttp://iswraid.sourceforge.net/.)

  • (link)Intel ICH7 / ICH7-R SATA-II chips — fakeraid. Should work with either libata's ata_piix driver or libata's ahci driver. (Please see entries forICH5, ICH6, and AHCI.)

    Supermicro's ftp site offers proprietary drivers

    Index of ftp://ftp.supermicro.com/driver/Diskimag/Adaptec/ICH7R/

    )for Intel ICH7-R, written by Adaptec.

  • (link)Intel SRCS14L Serial ATA RAID Controller PCI card — real hardware RAID. This is a four-port PCI card for servers, based on an ICP Vortex chipset, driving SATA-I output using a pair of Silicon Image SiI3112A SATA-I 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 (12), and so don't determine driver support.

  • (link)Intel SRCS16 and SRCS28X Serial ATA RAID Controller PCI cards — 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-I output using Silicon Image SiI3112A SATA-I 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 (12), and so don't determine driver support. An optional battery-backup daughterboard is available.

  • (link)Intel 31244 4-port SATA-II PCI-X sub-board — this is based around aVitesse VSC71714 chip (which please see). No RAID functionality, in itself: Sub-board can be embedded on a NAS controller card with a separate RAID chip.

  • (link)ITE Tech., Inc. IT8212 / IT8212F PCI Express card — real hardware RAID. GPLed "iteraid" driver by Mark Lu of ITE Tech., Inc. is available — which unfortunately is broken in 2.6.10 and later kernels, because it relies on the long-deprecated MOD_DEC_USE_COUNT and MOD_INC_USE_COUNT module-use-count macrosremoved from include/linux/module.h as of that kernel version. (2005-09-12 addendum: Donald Huang of ITE Tech. answered my query, and said that Jack Lee of ITE Tech. will undertake the necessary revision work, some time later.)

    Alternatively, Alan Cox's series of -ac variant kernel sourcecode trees include an "it8212" driver as Alan's add-in to 2.6.9 and later kernels' drivers/ide driver collections. (As of 2005-09-08, this patch isn't in mainline kernels, however. Update: As of 2006-01, the new driver is said to be in mainline 2.6.14 kernels, at least.)

  • (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-endLSI Logic MegaRaid SATA 150-2 card (which please see).

  • (link)LSI Logic MegaRAID SATA 150-2 Serial ATA RAID Host Adapter PCI card — 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 fromSteve 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-4X 4-port and 300-8X 8-port SATA-II PCI-X cards — real hardware RAID. Uses a Marvell 88SX6081 chip. Compatible with Linux's megaraid2 driver.

  • (link)LyCOMTechnology, Inc. cards — fakeraid. These PCI (ST-108, ST-114, ST-102, ST-117, ST-119, ST-117R, ST-115, ST-100, ST-103, ST-200, ST-208, ST-210, ST-203, ST-209, ST-211, NW-201, ST-125, ST-124, ST-113e, ST-119e, ST-134e, ST-117e), PCI Express (PE-105N, PE-102R5, PE-103R5, PE100, PE100N, PE102, PE-103), and PCI-X (64-101, 64-102, 64-102-1) cards appear to use variousSilicon Image chips.

  • (link)LyCOM Technology, Inc. CardBus cards — fakeraid.It's unclear what chipset these PCMCIA cards use: This entry is aplaceholder.

  • (link)Marvell Technology Group Ltd. 88SX7xxx, 88SX6xxx ("Hercules II") and 88SX5xxx/88SX48 ("Hercules I") chip series chips — fakeraid. The 88SX50xx series supports TCQ, but not NCQ or port multipliers. The 88SX60x1 series supports TCQ, NCQ, and port multipliers. libata driver "sata_mv" became available 2005-06 (beta quality as of 2007-02).

    For Marvell chipsets 88SX5040, 88SX5041, 88SX5080, and 88SX5081 "Hercules I" (all SATA-I); and 88SX6041 4-port & 88SX6081 8-port "Hercules II" (both SATA-II), there is a "mvSata" driver from Marvell International Ltd. Like Garzik's libata "sata_mv" driver, Marvell's "mvSata" driver uses the kernel's SCSI layers.

    As of May 2005's v. 3.4.1, that driver changed from proprietary licensing to GPLv2; probably the best revised source code is nowCarlos Vidal'sfiletree, which also has precompiled kernels for Fedora Core and aHOWTO that shouldgeneralise well to other distributions. Apatch may benecessary to run this driver properly on newer 2.6 kernels.

    Supermicro's ftp site offers proprietary driversfor Marvell 4-port and 8-part SATA chips, written by Adaptec.

  • (link)Maxtor SATA/150 PCI Card — fakeraid. A relabelledPromise FastTrak TX2plus card (which please see), using a PDC20375 chip.

  • (link)NetCell SyncRAID SR3000, SR3100 (3-port) and SR5000, SR5103 (5-port) SATA-I RAID PCI cards — real hardware RAID. All units cited are based on the NetCell SyncRAID TD6405 64-bit controller ASIC. NetCell provides a GPLed driver in the form of a patch to the Linux kernel source tree's drivers/ide code.

  • (link)Nvidia NForce3 Go120, Go150, 150, 250, 250Gb, and 150Pro (SATA-I); NForce 4 MCP, SLI, Ultra (SATA-II); and NForce Pro 2200 MCP and 2050 (SATA-II) chips — fakeraid. This motherboard chipsetfamily uses yet another type of fakeraid called nvRAID. libata driver "sata_nv" added as of 2004-07-08 development code,included in kernel 2.6.8, and now production quality. As of 2006-01-25,Nvidia provided provided information (under NDA) that will permitimplementation of NCQ support. Note: Nvidia's proprietary Linux i386binary driver bundles for itschipsets seem to rely on (and in some cases furnish) Garzik's "sata_nv"driver — presumably adding to that Nvidia's own subdriver tosupport nvRAID disk formatting. However, as usual, you're probably better off using Linux's ownopen-source "md" software-RAID driver for the RAID functionality.

    Note that newer Nvidia chipsets have switched to the AHCI openstandard.

  • (link)Pacific Digital Talon ZL-2, ZL-4, and RAIDStaQ LP-4 series SATA-I PCI cards (and potentially cards from licensees using PD's "automatic DMA" = ADMA interface) — fakeraid. No hotplug or port multipliers. libata driver "ata_adma" existed in the development branch a/o 2005-11, but in 2007 appears to have been replaced by the libata "pdc_adma" driver (beta quality as of 2007-02).

  • (link)Pacific Digital QMaster RAID SATA-II PCI-X cards —genuine hardware RAID (but Linux driver uses it only in non-RAID mode).libata driver "sata_qstor" (initially named "ata_qstor") was added in 2005-03, and is beta quality as of 2007-02.

  • (link)Promise FastTrak SATA150, SATA150 TX2, SATA150 TX2plus, SATA150 TX4, SATA150 SX4, SX4-M, SATA378, and Ultra 618 series PCI cards (e.g., PDC20621, PDC20275, PDC20618, PDC20318, PDC20319, PDC20375, PDC20378, and PDC20376 chips) PCI cards — fakeraid, mitigated by the fact that the Promise PDC20621 ASIC chip (on SX4, SX4-M, and TX4, but not TX2) functions as a "RAID accelerator" — XOR engine and memory, leaving RAID logic to the host CPU — but libata doesn't support that functionality at this time (2005-11). libata's "sata_promise" driver (for tx2/tx4, production quality driver) or "sata_sx4" (for sx4, beta quality driver) provides 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). 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 alsoavailable.

  • (link)Promise SX8 PCI-X card — fakeraid. Per the 2004-09-15 libata report, a separate block driver, "sx8" (not part of libata), has been written for this hardware. (However, Garzik later wrote that it may be rolled into libata, after all, to make possible ATAPI support.)

  • (link)Promise PDC20579-chip-based SATAII150 579 SATA-II chipset — fakeraid. libata's sata_promise driver can support it using apatch to the 2004-10 libata development code and a 2.6 kernel, or by using the manufacturer's GPLeddriver code.

  • (link)Promise PDC20518-chip-based SATAII150 TX4 SATA-II card — fakeraid. libata's sata_promise driver can support it using apatch to the kernel 2.6.10 libata code. Garzik posted his ownpatch on 2005-02-06 to support this device; the code will be included in kernel 2.6.11. Alternatively, use the manufacturer's GPLeddriver code.

    Kristoffer Winther Sørensen has posted a guide to retrofitting Garzik's sata_promise patch to the current SUSE Linux installer.

  • (link)Promise PDC20575-chip-based SATAII150 TX2plus SATA-II chip — fakeraid. Garzik posted apatch on 2005-02-06 to support this device; the code will be included in kernel 2.6.11. Alternatively, use the manufacturer's GPLeddriver code.

  • (link)Promise PDC20619 chip — 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)Promise PDC40718-chip-based SATA300 TX4 SATA-II chipset —fakeraid. Supported by libata's sata_promise driver as of 2005-04-15. Alternatively,use the manufacturer's GPLed driver code.

  • (link)Promise PDC20775-chip-based SATA300 TX2plus SATA-II chipset —fakeraid. Supported by libata's sata_promise driver as of 2005-04-15. Alternatively,use the manufacturer's GPLed drivercode.

  • (link)Promise PDC20779-chip-based SATA300 779 SATA-II chipset —fakeraid. This chipset will probably prove compatible with libata'ssata_promise driver, perhaps requiring modifications. Alternatively,use the manufacturer's GPLeddrivercode.

  • (link)Promise FastTrak TX2300/TX2200 (2-port) and TX4300/TX4200 (4-port) RAID SATA-II PCI cards — fakeraid. I gather that these have a programming interface differing from that of their sata_promise-compatible predecessors, but have no chip information so far: This entry is a placeholder.

    Promise offers a "ftsata2" proprietary driver (open-source wrapper around a binary-only, proprietary core library). Warning: Correspondent Andreas Thienemann warns that this driver works on Linux 2.4.x kernels only, and cannot be built to function on 2.6.x because it uses deprecated interfaces and references missing headers.

  • (link)Promise SuperTrak EX8300 8-port SATA-II PCI-X card and SuperTrak EX8350 8-port SATA-II PCI Express card — real hardware RAID(?). Uses Intel IOP331 I/O processor (XScale family) and Marvell 88SX6081 SATA chipset. Press releases says there's a "full open source Linux driver" — which might be the Marvell driver(?). EX8500 card was demoed on 2005-08-23.

  • (link)ServerWorks Frodo / Apple K2 / Broadcom chip — libata's sata_svw driver provides support a/o 2005-11. As of 2004-07-08, that driver supports the Apple K2 and ServerWorks Frodo4 (4-port) / Frodo8 (8-port) variants. Driver is now production quality. Other variants' PCI IDs haven't yet been collected, added to the driver, and tested. The Broadcom chip used appears not to be model BCM5770, so Broadcom's proprietary "bcraid" driver likely won't work. (Broadcom acquired ServerWorks in 2001.)

  • (link)SIIGSC-SAE012-S1 PCI-Express SATA-II card — fakeraid. Uses aSilicon Image 3132 chip.

  • (link)Silicon Image 3112 (2-port integrated chip) / 3114 / 3114R (4-port integrated chip) and 3512 / 3512A / 3514 (chip in 2-port PCI card) (Silicon Image, Inc. aka SiI, formerly CMD Technology, Inc.)— fakeraid. libata's "sata_sil" driver (production quality) provides support (a/o 2004-07-08), or probably 2.4.x drivers/ide's siimage driver (originally developed for the pre-SATA CMD680 aka SiI680 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 reasonsGarzik has explained. As of 2004-12, Silicon Image 311x became an open-standard hardware spec.

    An OEM (and apparently slightly modified) version of the SiI 3112chip is sometimes integrated into motherboards as the ATI IXP400 SATA chip. Inthat form, it's reportedly had support by libata's "sata_sil" driver since the2.6.11 kernel.

    I am still trying to untangle references to SiI's model numbers.Strings within Silicon Image's proprietary drivers suggest that that 3112, 3114,3512, 3514, 434e, and 4e4e are chipset model numbers with the following"subdevice" numbers in their respective families. 3112: 3423, 6112.3114: 3424, 6114. 3512: 3422, 3423, 6512. 3514: 3424 (note duplicate),6514. That driver purports to be for "SiI SATA RAID Controllers 3x and6x Series" and shows the identification string "SiI6514 (3112 to 6514)SATA RAID controller".

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

    Silicon Image, Inc's proprietary, binary-only drivers are available from Tyan, Tekram, IBM, or Supermicro.

    Adaptec has released a proprietary "aarich" driver (sourcecode wrapper surrounding a binary-only core library) for Intel ICH5-Rand Silicon Image 3512. (The name is intended to be parsed as AAR-ICH, as it is intended for Adaptec AAR-series cards based on Intel ICH5 SATA-I chips.)

  • (link)Silicon Image 3124/3124-2 (chip in 4-port SATA-II PCI-X cards) and 3132 (chip in 2-port SATA-II PCI Express cards) (Silicon Image, Inc., formerly CMD Technology, Inc.)— libata's sata_sil24 driver (production quality) supports Silicon Image 3124 (2005-08) and also the follow-on 2-port PCI Express SATA-II successor chip, the Silicon Image 3132. (Per 2004-07-08's libata status report, Silicon Image provided Garzik with docs and sample hardware.)

  • (link)SiS 964 South Bridge, SiS 180 card — fakeraid. Supports hotplug and port multipliers. Is now (2004-03-01) supported in libata using driver "sata_sis" contributed by Uwe Koziolek. The 2.6.6 kernel added this driver a/o 2004-05-09. Driver is now production quality.

    Note that newer SIS chipsets have switched to the AHCI openstandard.

  • (link)SiS 965L South Bridge — fakeraid. No knownopen-source drivers. Manufacturer's propriatary, binary onlySiSE 18x card driver alsosupports SiS 965L, but at present (2005-09), you need this in themodules.pcimap file to furnish the missing PCI ID: "sata_sis 0x00001039 0x00000182 0xffffffff 0xffffffff 0x000000000x00000000 0x0". I'd speculate that libata's "sata_sis" driver mightwork to the same degree, but do not have confirmation.

    Note that newer SIS chipsets have switched to the AHCI openstandard.

  • (link)Supermicro DAC-SATA-MV8 PCI card — uses a Marvell chip (which please see).

  • (link)Tekram PCI-X and PCI-Express cards — 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-I bridge chips— fakeraid. libata driver "sata_uli". Driver is now production quality.

  • (link)ULi Electronics, Inc. (formerly ALi) AHCI-compatible chips — fakeraid. ULi's M1575 4-port SATA-II PCI Express South Bridge is its first chipset to support the standardAHCI driver interface.

  • (link)ULi Electronics, Inc. (formerly ALi) M1567 SATA-II PCI ExpressSouth Bridge — fakeraid. Probably supports the standardAHCI driver interface (unconfirmed).

  • (link)VIA Technologies, Inc. VT6421 and VT6421L PCI chips &mdash fakeraid. A libata-dev patch wasposted on 2005-02-06.

  • (link) VIA Technologies, Inc. VT8235M South Bridge chipset. — fakeraid. Driver status unknown.

  • (link)VIA Technologies, Inc. VT8237 and VT8237A South Bridge chipset, using VIA's VT6420 Serial ATA chip— fakeraid. libata's "sata_via" driver set provides support a/o 2005-11 (included since kernel v. 2.6.3). Driver is now production quality. Recent 2.4.x drivers/ide codeshould support it, too. Proprietary drivers available.

  • (link)VIA Technologies, Inc. VT8237R and VT8237R+ South Bridge chipset — fakeraid.2-port chip, said to support RAID 0, 1, 0+1 and JBOD. Might be basedon VIA's VT6421L Serial ATA chip(?). Driver statusunknown. The "+" variant issaidto differ from the earlier non-plus variant in having forwardscompatibility for SATA-II drives.

  • (link)VIA Technologies, Inc. VT8251 PCI Express South Bridge chipset — fakeraid. This4-port SATA-II chipset (used in some new a/o 2005-11 motherboards suchas the ASUS A7V-MX) is claimed to use the standard AHCI driver interface, though one correspondent had no luck a/o 2005-11-15 — possiblejust a PCI ID problem? Uniquely (to my knowledge) for a fakeraidadapter, it supports RAID 5 along with RAID levels 0 and 1.

  • (link)Vitesse Semiconductor Corp. VSC7174 Serial ATA chip — libata's sata_vsc (by Jeremy Higdon) was added as of the 2.6.5 kernel. Driver is now production quality. No RAID functionality, in itself: Chip can be embedded on a NAS controller card with a separate RAID chip. Supports hotplug and port multipliers.


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/ICH5-R 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 ofliba/ta, 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) forLinux link farm (Garzik's -- static 2008 snapshot from just before the site was abandoned). All of author's future SATA statusreports and other support pages will be (2011: were) linked there.

Linux SATA RAID FAQ (Garzik's -- static 2008 snapshot). Mostly, "Why — no, sir — here's why that SATA thing you bought actuallyisn'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 ATAInfo by Brady Matthew Shea (static 2007 snapshot).

SATA/RAID-Capable Hard Drives and Motherboards by Brady Matthew Shea.

libata status reports:

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://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/ or (somewhat easier to deal with) Garzik's periodic patchkits athttp://www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/. Development code can be retrieved via rsync: rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git/

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 controllersunder 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 2003-8 coverage (archival link): http://www.kerneltraffic.org/kernel-traffic/topics/Serial_ATA.html

Debian installation using Scott Kveton's unofficialDebian 3.0 woody 5 MB netinst image: This image uses a 2.4.23kernel, meaning it's useful for owners of Intel ICH5 chipsets (standardATA driver), Adaptec AAR 24x0 chipsets (aacraid driver), LSI LogicMegaRAID 150-4/150-6 SATA chipsets (megaraid2 driver), and the SiS964 South Bridge. (Pleaselet 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, andso doesn't cover other SATA chipsets. However, Kveton's instructions pagealso 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/ orhttp://public.www.planetmirror.com/pub/debian-netinst/kveton/

Debian installation using Kenshi's unofficial Debian 3.1sarge 125MB netinst image: Uses the sarge "debian-installer"(d-i) installation routine and a 2.6.14 kernel.http://kmuto.jp/b.cgi/2005/11/26"

Installing Debian with SATA-based RAID. Articleby Karl Schmidt, in which he uses the Debian-sarge beta4 installer's 2.6 kernel's libata drivers to complete installation onto his Intel ICH5SATA-I (Intel D865PERL motherboard), then create a Linux software RAID array, and move Debian over:
http://wiki.xtronics.com/index.php/Raid

Debian chroot installation onto Intel ICH5-R 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 twoinstallers for Debian provide installers with "2.6 boot flavour"options (and thus libata): allKnoppix releases starting with v. 3.4 and Official DebianDebian-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://web.archive.org/web/20060425102930/http://www.transtronics.com/reference/D865PERL_SATA.htm

Follow-on to the prior entry, this time addressing Debian3.1 "sarge" installation onto any SATA controller, avoiding usingfakeraid features and instead detailing how to set up "md" software RAIDmirroring. Article also makes the point that the Debian 4.0 "etch"installer makes the steps he details unnecessary, taking care of theprocess automatically:
http://wiki.xtronics.com/index.php/Raid

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

Tweakers.net article "Comparison of nine SerialATA RAID 5 adapters" — introduces nine SATA-II host adapters,including some Linux-support comments.

Tom's Hardware's comparative reviews as of Jan. 2006 and Oct. 2005.

Clinton East's comparative review "SATA(Serial ATA) or SCSI?" — clarifies manyof the issues in picking fakeraid and real hardware RAID controllers forLinux (and draws on this page as a resource).

ThinkWiki page "Problemswith SATA and Linux" covers known SATA issues with IBMThinkPads.


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 torick@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 informationabout hardware RAID chipsets:http://developer.skolelinux.no/info/prosjektet/delprosjekt/hw-raid-info.html

The Debian Project has a useful page of Linux RAID information: http://wiki.debian.org/LinuxRaidForAdmins



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值