Libata Feature Table

From ata Wiki
Revision as of 13:12, 27 March 2008 by Jgarzik (Talk | contribs)

Jump to: navigation, search


  • ATA command set
  • ATAPI (PACKET command)
  • Bus technologies:
    • Parallel ATA (a.k.a. PATA, a.k.a. EIDE)
    • Serial ATA (a.k.a. SATA)
    • Pluggable driver API permits support of exotic bus technologies such as parallel port or ethernet transports.
  • Command protocols:
    • PIO read/write
    • PIO read/write multiple
    • non-data
    • DMA
    • ATAPI
    • NCQ
  • Host controllers:
    • Hotplug (i.e. unplug the card)
    • Bus-mastering DMA
    • PCI Message Signalled Interrupts (MSI)
    • PCI IDE legacy and native modes
    • ADMA-compliant
    • AHCI-compliant
    • Taskfile-based, FIS-based or exotic
    • Unlimited number of ports (compile-time limit is 32, but this is easily changed)
    • Legacy ISA PATA devices
    • Simplex DMA
    • Suspend/resume (depends on driver). Refer to the driver matrix for details.
    • PCI IDE SATA hardware drivers:
      • Broadcom/Serverworks
      • Intel
      • NVIDIA
      • Silicon Image
      • SiS
      • ULi
      • VIA
      • Vitesse/Intel
    • Advanced SATA hardware drivers:
      • AHCI (Intel, VIA, JMicron, ATI, NVIDIA, ...)
      • Marvell
      • Promise
      • Pacific Digital
      • Silicon Image
    • PCI IDE PATA hardware drivers:
      • AMD
      • Artop
      • ATI
      • HighPoint Technologies
      • Intel
      • Netcell
      • Opti
      • Radisys
      • Silicon Image / CMD
      • SiS
      • Triflex
      • VIA
    • Advanced PATA hardware drivers:
      • Promise
   * ATA/ATAPI device support:
         o Arbitrary ATA command execution (SMART, ATA pass-through)
         o C/H/S, LBA, and LBA48
         o 12-byte or 16-byte ATAPI CDB
         o Support for SATA PHY registers
         o SCSI simulator, attempts SCSI SAT compliance
         o Interrupt-driven operation, or polling via kernel thread
         o Hotplug (i.e. unplug the drive)
         o Device reset on error
         o Suspend/resume, ACPI (patch available)
         o ATA commands supported:
               + Everything not listed in the 'Not Supported' list below.
         o SCSI commands supported:
               + ATA(12, 16)
               + FORMAT UNIT
               + INQUIRY
               + MODE SENSE(6, 10)
               + READ(6, 10, 16)
               + READ CAPACITY, READ CAPACITY(16)
               + REPORT LUNS
               + REZERO UNIT
               + SEEK(6, 10)
               + SEND DIAGNOSTIC
               + START STOP UNIT
               + SYNCHRONIZE CACHE
               + TEST UNIT READY
               + VERIFY, VERIFY(16)
               + WRITE(6, 10, 16)
   * RAID:
         o BIOS RAID supported in conjunction with dmraid.
         o Software RAID 0/1/5/6+ supported by md Linux driver.
         o Hardware RAID supported by various Linux drivers, but not covered by this feature list. Read the SATA RAID FAQ before assuming that your "SATA RAID" card is really hardware RAID. Most aren't.
   * Architecture for handling controller-specific, device-specific errata
   * Support for initializing PATA device, controller timings
   * Modular device driver API, which allows for full-featured drivers implemented with a minimum amount of code.

Not supported

  • Port Multipliers (patch available)
  • Command protocols:
    • Soft reset — though the libata error handler (EH) supports soft reset internally.
    • Hard reset — though the libata error handler (EH) supports hard reset internally.
    • Legacy TCQ (no support planned)
  • ATA/ATAPI device support:
    • Host-protected area (HPA)
    • ATA commands:
      • Read/write TCQ
      • On some controllers, vendor-specific commands will fail.
Personal tools