1126123eaSAlexander Motin.\" Copyright (c) 2011 Alexander Motin <mav@FreeBSD.org> 2689701d8SJeroen Ruigrok van der Werven.\" All rights reserved. 3689701d8SJeroen Ruigrok van der Werven.\" 4689701d8SJeroen Ruigrok van der Werven.\" Redistribution and use in source and binary forms, with or without 5689701d8SJeroen Ruigrok van der Werven.\" modification, are permitted provided that the following conditions 6689701d8SJeroen Ruigrok van der Werven.\" are met: 7689701d8SJeroen Ruigrok van der Werven.\" 1. Redistributions of source code must retain the above copyright 8126123eaSAlexander Motin.\" notice, this list of conditions and the following disclaimer. 9689701d8SJeroen Ruigrok van der Werven.\" 2. Redistributions in binary form must reproduce the above copyright 10689701d8SJeroen Ruigrok van der Werven.\" notice, this list of conditions and the following disclaimer in the 11689701d8SJeroen Ruigrok van der Werven.\" documentation and/or other materials provided with the distribution. 12689701d8SJeroen Ruigrok van der Werven.\" 13126123eaSAlexander Motin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14126123eaSAlexander Motin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15126123eaSAlexander Motin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16126123eaSAlexander Motin.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17126123eaSAlexander Motin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18126123eaSAlexander Motin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19126123eaSAlexander Motin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20126123eaSAlexander Motin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21126123eaSAlexander Motin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22126123eaSAlexander Motin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23126123eaSAlexander Motin.\" SUCH DAMAGE. 24689701d8SJeroen Ruigrok van der Werven.\" 25689701d8SJeroen Ruigrok van der Werven.\" $FreeBSD$ 26689701d8SJeroen Ruigrok van der Werven.\" 27126123eaSAlexander Motin.Dd August 17, 2011 288ea643adSJeroen Ruigrok van der Werven.Dt ATA 4 293d45e180SRuslan Ermilov.Os 30689701d8SJeroen Ruigrok van der Werven.Sh NAME 31126123eaSAlexander Motin.Nm ata 32126123eaSAlexander Motin.Nd generic ATA/SATA controller driver 33689701d8SJeroen Ruigrok van der Werven.Sh SYNOPSIS 34126123eaSAlexander MotinTo compile this driver into the kernel, place the following lines in your 35126123eaSAlexander Motinkernel configuration file: 36126123eaSAlexander Motin.Bd -ragged -offset indent 37126123eaSAlexander Motin.Cd "device scbus" 38126123eaSAlexander Motin.Cd "device ata" 39126123eaSAlexander Motin.Cd "options ATA_CAM" 40126123eaSAlexander Motin.Ed 41547d4262SKazutaka YOKOTA.Pp 42126123eaSAlexander MotinAlternatively, to load the driver as set of modules at boot time, 43126123eaSAlexander Motinplace some of the following lines in 44126123eaSAlexander Motin.Xr loader.conf 5 : 45126123eaSAlexander Motin.Bd -literal -offset indent 46126123eaSAlexander Motinata_load="YES" 47126123eaSAlexander Motin 48126123eaSAlexander Motinatacard_load="YES" 49126123eaSAlexander Motinataisa_load="YES" 50126123eaSAlexander Motinatapci_load="YES" 51126123eaSAlexander Motin 52126123eaSAlexander Motinataacard_load="YES" 53126123eaSAlexander Motinataacerlabs_load="YES" 54126123eaSAlexander Motinataadaptec_load="YES" 55126123eaSAlexander Motinataahci_load="YES" 56126123eaSAlexander Motinataamd_load="YES" 57126123eaSAlexander Motinataati_load="YES" 58126123eaSAlexander Motinatacenatek_load="YES" 59126123eaSAlexander Motinatacypress_load="YES" 60126123eaSAlexander Motinatacyrix_load="YES" 61126123eaSAlexander Motinatahighpoint_load="YES" 62126123eaSAlexander Motinataintel_load="YES" 63126123eaSAlexander Motinataite_load="YES" 64126123eaSAlexander Motinatajmicron_load="YES" 65126123eaSAlexander Motinatamarvell_load="YES" 66126123eaSAlexander Motinatamicron_load="YES" 67126123eaSAlexander Motinatanational_load="YES" 68126123eaSAlexander Motinatanetcell_load="YES" 69126123eaSAlexander Motinatanvidia_load="YES" 70126123eaSAlexander Motinatapromise_load="YES" 71126123eaSAlexander Motinataserverworks_load="YES" 72126123eaSAlexander Motinatasiliconimage_load="YES" 73126123eaSAlexander Motinatasis_load="YES" 74126123eaSAlexander Motinatavia_load="YES" 75126123eaSAlexander Motin.Ed 76689701d8SJeroen Ruigrok van der Werven.Pp 77*df523242SChristian BruefferThe first line is for the common hardware independent code, and is a 78*df523242SChristian Bruefferprerequisite for the other modules. 79*df523242SChristian BruefferThe next three lines are generic bus-specific drivers. 80*df523242SChristian BruefferOf the rest, ataahci is the AHCI driver. 81*df523242SChristian BruefferThe others are vendor-specific PCI drivers. 82*df523242SChristian BruefferThe 83*df523242SChristian Brueffer.Dv ATA_CAM 84*df523242SChristian Bruefferoption should always remain in the kernel configuration, to make 85*df523242SChristian Bruefferthe driver work as a 86*df523242SChristian Brueffer.Xr CAM 4 87*df523242SChristian Brueffersubsystem module. 888ba4488cSSøren Schmidt.Pp 89126123eaSAlexander MotinThe following tunables are settable from the 90126123eaSAlexander Motin.Xr loader 8 : 91f4c4488aSRuslan Ermilov.Bl -ohang 9219a71edbSPhilip Paeps.It Va hw.ata.ata_dma_check_80pin 93*df523242SChristian Bruefferset to 0 to disable the 80pin cable check (the default is 1, check the cable) 94f64d65b2SAlexander Motin.It Va hint.atapci.X.msi 95*df523242SChristian Bruefferset to 1 to allow Message Signalled Interrupts (MSI) to be used by the 96f64d65b2SAlexander Motinspecified PCI ATA controller, if supported. 977ce1f3e5SAlexander Motin.It Va hint.ata.X.devX.mode 98*df523242SChristian Bruefferlimits the initial ATA mode for the specified device on specified the channel. 997ce1f3e5SAlexander Motin.It Va hint.ata.X.mode 100*df523242SChristian Bruefferlimits the initial ATA mode for every device on the specified channel. 101f64d65b2SAlexander Motin.It Va hint.ata.X.pm_level 102*df523242SChristian Brueffercontrols SATA interface Power Management for the specified channel, 103*df523242SChristian Bruefferallowing some power savings at the cost of additional command latency. 104f64d65b2SAlexander MotinPossible values: 105f64d65b2SAlexander Motin.Bl -tag -compact 106f64d65b2SAlexander Motin.It 0 107*df523242SChristian BruefferInterface Power Management is disabled. 108*df523242SChristian BruefferThis is the default value. 109f64d65b2SAlexander Motin.It 1 110*df523242SChristian BruefferThe device is allowed to initiate a PM state change; the host is passive. 111f64d65b2SAlexander Motin.It 2 112*df523242SChristian BruefferThe host initiates a PARTIAL PM state transition every time a port becomes idle. 113f64d65b2SAlexander Motin.It 3 114f64d65b2SAlexander Motinhost initiates SLUMBER PM state transition every time port becomes idle. 115f64d65b2SAlexander Motin.El 116*df523242SChristian BruefferModes 2 and 3 are only supported for AHCI. 117f4c4488aSRuslan Ermilov.El 118689701d8SJeroen Ruigrok van der Werven.Sh DESCRIPTION 119688e92fcSSøren SchmidtThe 120688e92fcSSøren Schmidt.Nm 121*df523242SChristian Bruefferdriver gives the 122*df523242SChristian Brueffer.Xr CAM 4 123*df523242SChristian Brueffersubsystem access to the ATA (IDE) and SATA ports 124126123eaSAlexander Motinof many generic controllers. 125*df523242SChristian BruefferDepending on the controller, each PATA (IDE) 126*df523242SChristian Bruefferport or each one or two SATA ports are 127126123eaSAlexander Motinrepresented to CAM as a separate bus with one or two targets. 128126123eaSAlexander MotinMost of the bus-management details are handled by the ATA/SATA-specific 129126123eaSAlexander Motintransport of CAM. 130126123eaSAlexander MotinConnected ATA disks are handled by the ATA protocol disk peripheral driver 131126123eaSAlexander Motin.Xr ada 4 . 132126123eaSAlexander MotinATAPI devices are handled by the SCSI protocol peripheral drivers 133126123eaSAlexander Motin.Xr cd 4 , 134126123eaSAlexander Motin.Xr da 4 , 135126123eaSAlexander Motin.Xr sa 4 , 136126123eaSAlexander Motinetc. 137689701d8SJeroen Ruigrok van der Werven.Pp 138*df523242SChristian BruefferThis driver supports ATA, and for the most of controllers, ATAPI devices. 139126123eaSAlexander MotinCommand queuing and SATA port multipliers are not supported. 140*df523242SChristian BruefferDevice hot-plug and SATA interface power management is supported only on 141126123eaSAlexander Motinsome controllers. 142126123eaSAlexander Motin.Pp 143126123eaSAlexander MotinThe 144126123eaSAlexander Motin.Nm 145126123eaSAlexander Motindriver can change the transfer mode when the system is up and running. 146*df523242SChristian BruefferSee the 147*df523242SChristian Brueffer.Cm negotiate 148*df523242SChristian Brueffersubcommand of 149*df523242SChristian Brueffer.Xr camcontrol 8 . 150126123eaSAlexander Motin.Pp 151126123eaSAlexander MotinThe 152126123eaSAlexander Motin.Nm 153126123eaSAlexander Motindriver sets the maximum transfer mode supported by the hardware as default. 154*df523242SChristian BruefferHowever, the 155126123eaSAlexander Motin.Nm 156126123eaSAlexander Motindriver sometimes warns: 157126123eaSAlexander Motin.Dq Sy "DMA limited to UDMA33, non-ATA66 cable or device". 158126123eaSAlexander MotinThis means that 159126123eaSAlexander Motinthe 160126123eaSAlexander Motin.Nm 161126123eaSAlexander Motindriver has detected that the required 80 conductor cable is not present 162126123eaSAlexander Motinor could not be detected properly, 163126123eaSAlexander Motinor that one of the devices on the channel only accepts up 164126123eaSAlexander Motinto UDMA2/ATA33. 165126123eaSAlexander MotinThe 166126123eaSAlexander Motin.Va hw.ata.ata_dma_check_80pin 167126123eaSAlexander Motintunable can be set to 0 to disable this check. 168126123eaSAlexander Motin.Sh HARDWARE 169688e92fcSSøren SchmidtThe currently supported ATA/SATA controller chips are: 170689701d8SJeroen Ruigrok van der Werven.Pp 171688e92fcSSøren Schmidt.Bl -tag -width "Silicon Image:" -compact 172688e92fcSSøren Schmidt.It Acard: 173c6fd52cbSJoel DahlATP850P, ATP860A, ATP860R, ATP865A, ATP865R. 174688e92fcSSøren Schmidt.It ALI: 17539915804SAlexander MotinM5228, M5229, M5281, M5283, M5287, M5288, M5289. 176688e92fcSSøren Schmidt.It AMD: 177da31a86aSChristian BruefferAMD756, AMD766, AMD768, AMD8111, CS5536. 1783a22b03dSJoel Dahl.It ATI: 1791f02c0f7SAlexander MotinIXP200, IXP300, IXP400, IXP600, IXP700, IXP800. 180688e92fcSSøren Schmidt.It CMD: 181c94b6c42SJoel DahlCMD646, CMD646U2, CMD648, CMD649. 182688e92fcSSøren Schmidt.It Cypress: 183688e92fcSSøren SchmidtCypress 82C693. 184d8f934daSChristian Brueffer.It Cyrix: 185d8f934daSChristian BruefferCyrix 5530. 186688e92fcSSøren Schmidt.It HighPoint: 187c94b6c42SJoel DahlHPT302, HPT366, HPT368, HPT370, HPT371, HPT372, HPT372N, HPT374. 188688e92fcSSøren Schmidt.It Intel: 18939915804SAlexander Motin6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0, ICH2, ICH3, ICH4, ICH5, 19039915804SAlexander MotinICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH. 19139d1acc3SChristian Brueffer.It ITE: 192129e5ac6SChristian BruefferIT8211F, IT8212F, IT8213F. 193aed1a1f1SChristian Brueffer.It JMicron: 194dbd1ddacSChristian BruefferJMB360, JMB361, JMB363, JMB365, JMB366, JMB368. 195232c858fSChristian Brueffer.It Marvell 1961f02c0f7SAlexander Motin88SX5040, 88SX5041, 88SX5080, 88SX5081, 88SX6041, 88SX6042, 88SX6081, 88SX6101, 197c01cccb8SAlexander Motin88SX6102, 88SX6111, 88SX6121, 88SX6141, 88SX6145, 88SX7042. 198688e92fcSSøren Schmidt.It National: 199688e92fcSSøren SchmidtSC1100. 200cebf4a4eSChristian Brueffer.It NetCell: 201cebf4a4eSChristian BruefferNC3000, NC5000. 202688e92fcSSøren Schmidt.It nVidia: 2031f02c0f7SAlexander MotinnForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4, 2041f02c0f7SAlexander MotinMCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89. 205688e92fcSSøren Schmidt.It Promise: 206be8c7f2aSSergey KandaurovPDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270, 207be8c7f2aSSergey KandaurovPDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375, 208be8c7f2aSSergey KandaurovPDC20376, PDC20377, PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580, 209be8c7f2aSSergey KandaurovPDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622, PDC40518, PDC40519, 210be8c7f2aSSergey KandaurovPDC40718, PDC40719. 211688e92fcSSøren Schmidt.It ServerWorks: 212dbd1ddacSChristian BruefferHT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8. 213688e92fcSSøren Schmidt.It Silicon Image: 214199dc74dSChristian BruefferSiI0680, SiI3112, SiI3114, SiI3124, SiI3132, SiI3512. 215688e92fcSSøren Schmidt.It SiS: 216be8c7f2aSSergey KandaurovSIS180, SIS181, SIS182, SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630, 217be8c7f2aSSergey KandaurovSIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962, 218be8c7f2aSSergey KandaurovSIS963, SIS964, SIS965. 219688e92fcSSøren Schmidt.It VIA: 22039915804SAlexander MotinVT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686, 22139915804SAlexander MotinVT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237, 222cd48d66cSAlexander MotinVT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900. 223689701d8SJeroen Ruigrok van der Werven.El 224689701d8SJeroen Ruigrok van der Werven.Pp 225126123eaSAlexander MotinSome of above chips are also supported by the more featured 226126123eaSAlexander Motin.Xr ahci 4 , 227126123eaSAlexander Motin.Xr mvs 4 , 228126123eaSAlexander Motinand 229126123eaSAlexander Motin.Xr siis 4 230126123eaSAlexander Motindrivers. 231126123eaSAlexander MotinIf both drivers are loaded at the same time, those will have precedence. 232126123eaSAlexander Motin.Pp 233688e92fcSSøren SchmidtUnknown ATA chipsets are supported in PIO modes, and if the standard 2348ff5952aSSøren Schmidtbusmaster DMA registers are present and contain valid setup, DMA is 235c48524c2SMike Pritchardalso enabled, although the max mode is limited to UDMA33, as it is 236688e92fcSSøren Schmidtnot known what the chipset can do and how to program it. 237689701d8SJeroen Ruigrok van der Werven.Sh NOTES 238688e92fcSSøren SchmidtPlease remember that in order to use UDMA4/ATA66 and above modes you 239688e92fcSSøren Schmidt.Em must 240c9753c58SSimon L. B. Nielsenuse 80 conductor cables. 2415512804bSRebecca CranPlease assure that ribbon cables are no longer than 45cm. 2428ff5952aSSøren SchmidtIn case of rounded ATA cables, the length depends on the 243c9753c58SSimon L. B. Nielsenquality of the cables. 2448ff5952aSSøren SchmidtSATA cables can be up to 1m long according to the specification. 245126123eaSAlexander MotinExternal SATA cables can be 2m long and more, but not all controllers 246126123eaSAlexander Motinwork well on long cables, especially at high speeds. 247f4c4488aSRuslan Ermilov.Sh SEE ALSO 248126123eaSAlexander Motin.Xr ada 4 , 24939915804SAlexander Motin.Xr ahci 4 , 25039915804SAlexander Motin.Xr cam 4 , 251126123eaSAlexander Motin.Xr camcontrol 8 , 2527ea6a15dSJohn-Mark Gurney.Xr cd 4 , 253126123eaSAlexander Motin.Xr mvs 4 , 25439915804SAlexander Motin.Xr siis 4 255ed403116SRuslan Ermilov.Sh HISTORY 256ed403116SRuslan ErmilovThe 257ed403116SRuslan Ermilov.Nm 258ed403116SRuslan Ermilovdriver first appeared in 259ed403116SRuslan Ermilov.Fx 4.0 . 260*df523242SChristian BruefferIt was turned into a 261*df523242SChristian Brueffer.Xr CAM 4 262*df523242SChristian Bruefferinterface module in 263126123eaSAlexander Motin.Fx 9.0 . 2648ff5952aSSøren Schmidt.Sh AUTHORS 265126123eaSAlexander Motin.An Alexander Motin 266126123eaSAlexander Motin.Aq mav@FreeBSD.org , 2678e8536e1SRuslan Ermilov.An S\(/oren Schmidt 268*df523242SChristian Brueffer.Aq sos@FreeBSD.org 269