1.\" $OpenBSD: ahci.4,v 1.7 2008/04/19 01:18:39 djm Exp $ 2.\" 3.\" Copyright (c) 2006 David Gwynne <dlg@openbsd.org> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" TORTIOUS ACTION, ARISING OUT OF 15.\" PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd August 3, 2009 18.Dt AHCI 4 19.Os 20.Sh NAME 21.Nm ahci 22.Nd Advanced Host Controller Interface for Serial ATA 23.Sh SYNOPSIS 24To compile this driver into the kernel, 25place the following line in your 26kernel configuration file: 27.Bd -ragged -offset indent 28.Cd "device ahci" 29.Ed 30.Pp 31Alternatively, to load the driver as a 32module at boot time, place the following line in 33.Xr loader.conf 5 : 34.Bd -literal -offset indent 35ahci_load="YES" 36.Ed 37.Sh DESCRIPTION 38The 39.Nm 40driver provides support for Serial ATA controllers conforming to the 41Advanced Host Controller Interface specification. 42.Pp 43Several AHCI capable controllers also provide a compatibility mode that 44causes them to appear as a traditional ATA controller supported by 45.Xr nata 4 . 46.Pp 47Although 48.Nm 49controllers are actual ATA controllers, the driver emulates SCSI via a 50translation layer. 51.Pp 52Setting the lowest bit (0x1) of the driver flags forces 53.Nm 54to negotiate SATA 1 (1.5 Gb/s) transfer speeds only. 55It may be useful where higher speeds are unstable. 56.Sh LOADER TUNABLES 57The following hints may be set in 58.Xr loader.conf 5 59to control the 60.Nm 61driver's behavior. 62Note that the hint need only exist, so removing it requires commenting it out. 63.Pp 64Usually both the 65.Xr nata 4 66and the 67.Nm 68drivers are loaded. 69The 70.Xr nata 4 71driver will pick up any ata-like devices which the 72.Nm 73driver misses. 74If the 75.Nm 76driver is disabled the 77.Xr nata 4 78driver will typically pick up the 79.Nm 80devices, albeit under the "ad" disk name rather than the "da" disk name. 81.Pp 82The 83.Nm 84driver can be told to force a lower-speed 1.5Gb link speed 85if necessary, and can also be told to refrain from attempting to send 86certain higher-level ATA commands to initialize ATA features which 87some devices might not properly implement. 88.Bd -literal -offset indent 89hint.ahci.disabled=1 90hint.ahci.force150=1 91hint.ahci.nofeatures=1 92.Ed 93.Sh SEE ALSO 94.Xr intro 4 , 95.Xr nata 4 , 96.Xr pci 4 , 97.Xr scsi 4 , 98.Xr sili 4 , 99.Xr loader.conf 5 100.Sh HISTORY 101The 102.Nm 103driver first appeared in 104.Dx 2.3 . 105.Sh AUTHORS 106.An -nosplit 107The 108.Nm 109driver was originally written by 110.An David Gwynne Aq dlg@openbsd.org 111and 112.An Christopher Pascoe Aq pascoe@openbsd.org 113for 114.Ox . 115.Pp 116It was ported to 117.Dx 118by 119.An Matt Dillon Aq dillon@apollo.backplane.com 120who added new features such as port multiplier support. 121