SDAHCI(3)                                               SDAHCI(3)

     NAME
          sdahci - AHCI (Advanced Host Controller Interface) SATA
          (Serial ATA) storage device drivers

     SYNOPSIS
          bind -a #S /dev
          /dev/sdctl
          /dev/sdEn/ctl
          /dev/sdEn/raw
          /dev/sdEn/data
          ...

     DESCRIPTION
          The sdahci driver provides access to AHCI devices via the
          sd(3) interface.  The AHCI programming interface supports up
          to 32 hot-swappable ATAPI or hard disk-like devices per con-
          troller.  The legacy IDE interface provided by sdata.c sup-
          ports up to four drives which are not hot-swappable.  Con-
          troller drive letters are assigned from `E' onward.

          AHCI controllers are detected automatically.  Currently
          Intel and AMD controllers are detected.  Intel controllers
          need to have AHCI enabled in the BIOS.  For `ich' parts this
          typically means enabling enhanced mode and AHCI.  For ESB
          (Enterprise South Bridge) -based parts, only enhanced mode
          needs to be enabled.  Intel ich9-based AHCI does not support
          hot swapping and drives must be connected to the lowest-
          numbered free port.

          The top level control file, /dev/sdctl, supports the follow-
          ing control messages for sdahci:

          iahci debug    Toggle debug messages.  Default is off.
          iahci idprint  Toggle printing of drive identification mes-
                         sages.  Default is on.  Prints short messages
                         when a drive is identified or removed.
          iahci aprint   Print verbose ATAPI debugging messages.
                         Default is off.

          The device-level ctl file supports:

          flushcache    Send the ATA/ATAPI FLUSH CACHE command (0xe7
                        or 0xea).  This command may take up to 60 sec-
                        onds to complete.
          identify      Send the ATA/ATAPI IDENTIFY DEVICE command
                        (0xec).  If device information has changed,
                        the new size, features and serial will be
                        noted.  If changed, I/O on existing file
                        descriptors will result in the error string
                        `media or partition has changed'.

     SDAHCI(3)                                               SDAHCI(3)

          mode speed    Change the connection speed to one of auto,
                        satai or sataii.
          nop           Send the ATA NOP command (0) if the device
                        supports it. Per standard, the result is
                        always an error.
          smart         Send the ATA/ATAPI SMART RETURN STATUS command
                        (0xda).  This will fail unless SMART is
                        enabled on the drive.
          smartdisable  Disable SMART on the drive.  SMART is a per-
                        sistent property of the drive.
          smartenable   Enable SMART on the drive.
          state state   Force a transition to the named state. The
                        states are:
                        null       ignored (may only be reached manu-
                                   ally);
                        missing    not detected;
                        new        powered down or newly discovered;
                        ready      ready for commands;
                        reset      being reset gently;
                        portreset  being fully reset;
                        offline    device failed portreset (a port
                                   reset will be attempted periodi-
                                   cally).

          For devices present at boot, the transition is from state
          new to state ready.

     SOURCE
          /sys/src/9/pc/sdiahci.c

     SEE ALSO
          sd(3)
          http://download.intel.com/technology/serialata/pdf/rev1_2.pdf.

     BUGS
          None of enclosure management, LED control and port multipli-
          ers are supported.

          ATAPI devices may not be reset when they have outstanding
          commands.