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.\" 27cdc58367SAlexander Motin.Dd March 23, 2015 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.Ed 40547d4262SKazutaka YOKOTA.Pp 41126123eaSAlexander MotinAlternatively, to load the driver as set of modules at boot time, 42126123eaSAlexander Motinplace some of the following lines in 43126123eaSAlexander Motin.Xr loader.conf 5 : 44126123eaSAlexander Motin.Bd -literal -offset indent 45126123eaSAlexander Motinata_load="YES" 46126123eaSAlexander Motin 47126123eaSAlexander Motinatacard_load="YES" 48126123eaSAlexander Motinataisa_load="YES" 49126123eaSAlexander Motinatapci_load="YES" 50126123eaSAlexander Motin 51126123eaSAlexander Motinataacard_load="YES" 52126123eaSAlexander Motinataacerlabs_load="YES" 53126123eaSAlexander Motinataamd_load="YES" 54126123eaSAlexander Motinataati_load="YES" 55126123eaSAlexander Motinatacenatek_load="YES" 56126123eaSAlexander Motinatacypress_load="YES" 57126123eaSAlexander Motinatacyrix_load="YES" 58126123eaSAlexander Motinatahighpoint_load="YES" 59126123eaSAlexander Motinataintel_load="YES" 60126123eaSAlexander Motinataite_load="YES" 61126123eaSAlexander Motinatajmicron_load="YES" 62126123eaSAlexander Motinatamarvell_load="YES" 63126123eaSAlexander Motinatamicron_load="YES" 64126123eaSAlexander Motinatanational_load="YES" 65126123eaSAlexander Motinatanetcell_load="YES" 66126123eaSAlexander Motinatanvidia_load="YES" 67126123eaSAlexander Motinatapromise_load="YES" 68126123eaSAlexander Motinataserverworks_load="YES" 69126123eaSAlexander Motinatasiliconimage_load="YES" 70126123eaSAlexander Motinatasis_load="YES" 71126123eaSAlexander Motinatavia_load="YES" 72126123eaSAlexander Motin.Ed 73689701d8SJeroen Ruigrok van der Werven.Pp 74df523242SChristian BruefferThe first line is for the common hardware independent code, and is a 75df523242SChristian Bruefferprerequisite for the other modules. 76df523242SChristian BruefferThe next three lines are generic bus-specific drivers. 77cdc58367SAlexander MotinThe rest are vendor-specific PCI drivers. 788ba4488cSSøren Schmidt.Pp 79126123eaSAlexander MotinThe following tunables are settable from the 80126123eaSAlexander Motin.Xr loader 8 : 81f4c4488aSRuslan Ermilov.Bl -ohang 8219a71edbSPhilip Paeps.It Va hw.ata.ata_dma_check_80pin 8378c3ff73SMarius Stroblset to 0 to disable the 80pin cable check (the default is 1, check the cable). 84f64d65b2SAlexander Motin.It Va hint.atapci.X.msi 85df523242SChristian Bruefferset to 1 to allow Message Signalled Interrupts (MSI) to be used by the 86f64d65b2SAlexander Motinspecified PCI ATA controller, if supported. 877ce1f3e5SAlexander Motin.It Va hint.ata.X.devX.mode 889c87d811SAlexander Motinlimits the initial ATA mode for the specified device on the specified channel. 897ce1f3e5SAlexander Motin.It Va hint.ata.X.mode 90df523242SChristian Bruefferlimits the initial ATA mode for every device on the specified channel. 91f64d65b2SAlexander Motin.It Va hint.ata.X.pm_level 92df523242SChristian Brueffercontrols SATA interface Power Management for the specified channel, 93df523242SChristian Bruefferallowing some power savings at the cost of additional command latency. 94f64d65b2SAlexander MotinPossible values: 957e3de069SJoel Dahl.Pp 967e3de069SJoel Dahl.Bl -tag -width 4n -offset indent -compact 97f64d65b2SAlexander Motin.It 0 98df523242SChristian BruefferInterface Power Management is disabled. 99df523242SChristian BruefferThis is the default value. 100f64d65b2SAlexander Motin.It 1 101df523242SChristian BruefferThe device is allowed to initiate a PM state change; the host is passive. 102*ac074de8SJoel Dahl.El 1039c87d811SAlexander Motin.It Va hint.ata. Ns Ar X Ns Va .dev Ns Ar X Ns Va .sata_rev 1049c87d811SAlexander Motinlimits the initial SATA revision (speed) for the specified device 1059c87d811SAlexander Motinon the specified channel. 1069c87d811SAlexander MotinValues 1, 2 and 3 are respectively 1.5, 3 and 6Gbps. 1079c87d811SAlexander Motin.It Va hint.ata. Ns Ar X Ns Va .sata_rev 1089c87d811SAlexander MotinSame, but for every device on the specified channel. 109f4c4488aSRuslan Ermilov.El 110689701d8SJeroen Ruigrok van der Werven.Sh DESCRIPTION 111688e92fcSSøren SchmidtThe 112688e92fcSSøren Schmidt.Nm 113df523242SChristian Bruefferdriver gives the 114df523242SChristian Brueffer.Xr CAM 4 115df523242SChristian Brueffersubsystem access to the ATA (IDE) and SATA ports 116126123eaSAlexander Motinof many generic controllers. 117df523242SChristian BruefferDepending on the controller, each PATA (IDE) 118df523242SChristian Bruefferport or each one or two SATA ports are 119126123eaSAlexander Motinrepresented to CAM as a separate bus with one or two targets. 120126123eaSAlexander MotinMost of the bus-management details are handled by the ATA/SATA-specific 121126123eaSAlexander Motintransport of CAM. 122126123eaSAlexander MotinConnected ATA disks are handled by the ATA protocol disk peripheral driver 123126123eaSAlexander Motin.Xr ada 4 . 124126123eaSAlexander MotinATAPI devices are handled by the SCSI protocol peripheral drivers 125126123eaSAlexander Motin.Xr cd 4 , 126126123eaSAlexander Motin.Xr da 4 , 127126123eaSAlexander Motin.Xr sa 4 , 128126123eaSAlexander Motinetc. 129689701d8SJeroen Ruigrok van der Werven.Pp 130df523242SChristian BruefferThis driver supports ATA, and for the most of controllers, ATAPI devices. 131126123eaSAlexander MotinCommand queuing and SATA port multipliers are not supported. 132df523242SChristian BruefferDevice hot-plug and SATA interface power management is supported only on 133126123eaSAlexander Motinsome controllers. 134126123eaSAlexander Motin.Pp 135126123eaSAlexander MotinThe 136126123eaSAlexander Motin.Nm 137126123eaSAlexander Motindriver can change the transfer mode when the system is up and running. 138df523242SChristian BruefferSee the 139df523242SChristian Brueffer.Cm negotiate 140df523242SChristian Brueffersubcommand of 141df523242SChristian Brueffer.Xr camcontrol 8 . 142126123eaSAlexander Motin.Pp 143126123eaSAlexander MotinThe 144126123eaSAlexander Motin.Nm 145126123eaSAlexander Motindriver sets the maximum transfer mode supported by the hardware as default. 146df523242SChristian BruefferHowever, the 147126123eaSAlexander Motin.Nm 148126123eaSAlexander Motindriver sometimes warns: 149126123eaSAlexander Motin.Dq Sy "DMA limited to UDMA33, non-ATA66 cable or device". 150126123eaSAlexander MotinThis means that 151126123eaSAlexander Motinthe 152126123eaSAlexander Motin.Nm 153126123eaSAlexander Motindriver has detected that the required 80 conductor cable is not present 154126123eaSAlexander Motinor could not be detected properly, 155126123eaSAlexander Motinor that one of the devices on the channel only accepts up 156126123eaSAlexander Motinto UDMA2/ATA33. 157126123eaSAlexander MotinThe 158126123eaSAlexander Motin.Va hw.ata.ata_dma_check_80pin 159126123eaSAlexander Motintunable can be set to 0 to disable this check. 160126123eaSAlexander Motin.Sh HARDWARE 161688e92fcSSøren SchmidtThe currently supported ATA/SATA controller chips are: 162689701d8SJeroen Ruigrok van der Werven.Pp 163688e92fcSSøren Schmidt.Bl -tag -width "Silicon Image:" -compact 164688e92fcSSøren Schmidt.It Acard: 165c6fd52cbSJoel DahlATP850P, ATP860A, ATP860R, ATP865A, ATP865R. 166688e92fcSSøren Schmidt.It ALI: 16739915804SAlexander MotinM5228, M5229, M5281, M5283, M5287, M5288, M5289. 168688e92fcSSøren Schmidt.It AMD: 169da31a86aSChristian BruefferAMD756, AMD766, AMD768, AMD8111, CS5536. 1703a22b03dSJoel Dahl.It ATI: 1711f02c0f7SAlexander MotinIXP200, IXP300, IXP400, IXP600, IXP700, IXP800. 172688e92fcSSøren Schmidt.It CMD: 173c94b6c42SJoel DahlCMD646, CMD646U2, CMD648, CMD649. 174688e92fcSSøren Schmidt.It Cypress: 175688e92fcSSøren SchmidtCypress 82C693. 176d8f934daSChristian Brueffer.It Cyrix: 177d8f934daSChristian BruefferCyrix 5530. 178688e92fcSSøren Schmidt.It HighPoint: 179c94b6c42SJoel DahlHPT302, HPT366, HPT368, HPT370, HPT371, HPT372, HPT372N, HPT374. 180688e92fcSSøren Schmidt.It Intel: 18139915804SAlexander Motin6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0, ICH2, ICH3, ICH4, ICH5, 18239915804SAlexander MotinICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH. 18339d1acc3SChristian Brueffer.It ITE: 184129e5ac6SChristian BruefferIT8211F, IT8212F, IT8213F. 185aed1a1f1SChristian Brueffer.It JMicron: 186dbd1ddacSChristian BruefferJMB360, JMB361, JMB363, JMB365, JMB366, JMB368. 187232c858fSChristian Brueffer.It Marvell 188cdc58367SAlexander Motin88SE6101, 88SE6102, 88SE6111, 88SE6121, 88SE6141, 88SE6145. 189688e92fcSSøren Schmidt.It National: 190688e92fcSSøren SchmidtSC1100. 191cebf4a4eSChristian Brueffer.It NetCell: 192cebf4a4eSChristian BruefferNC3000, NC5000. 193688e92fcSSøren Schmidt.It nVidia: 1941f02c0f7SAlexander MotinnForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4, 1951f02c0f7SAlexander MotinMCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89. 196688e92fcSSøren Schmidt.It Promise: 197be8c7f2aSSergey KandaurovPDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270, 198be8c7f2aSSergey KandaurovPDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375, 199be8c7f2aSSergey KandaurovPDC20376, PDC20377, PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580, 200be8c7f2aSSergey KandaurovPDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622, PDC40518, PDC40519, 201be8c7f2aSSergey KandaurovPDC40718, PDC40719. 202688e92fcSSøren Schmidt.It ServerWorks: 203dbd1ddacSChristian BruefferHT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8. 204688e92fcSSøren Schmidt.It Silicon Image: 205cdc58367SAlexander MotinSiI0680, SiI3112, SiI3114, SiI3512. 206688e92fcSSøren Schmidt.It SiS: 207be8c7f2aSSergey KandaurovSIS180, SIS181, SIS182, SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630, 208be8c7f2aSSergey KandaurovSIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962, 209be8c7f2aSSergey KandaurovSIS963, SIS964, SIS965. 210688e92fcSSøren Schmidt.It VIA: 21139915804SAlexander MotinVT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686, 21239915804SAlexander MotinVT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237, 213cd48d66cSAlexander MotinVT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900. 214689701d8SJeroen Ruigrok van der Werven.El 215689701d8SJeroen Ruigrok van der Werven.Pp 216cdc58367SAlexander MotinSome of above chips can be configured for AHCI mode. 217cdc58367SAlexander MotinIn such case they are supported by 218cdc58367SAlexander Motin.Xr ahci 4 219cdc58367SAlexander Motindriver instead. 220126123eaSAlexander Motin.Pp 221688e92fcSSøren SchmidtUnknown ATA chipsets are supported in PIO modes, and if the standard 2228ff5952aSSøren Schmidtbusmaster DMA registers are present and contain valid setup, DMA is 223c48524c2SMike Pritchardalso enabled, although the max mode is limited to UDMA33, as it is 224688e92fcSSøren Schmidtnot known what the chipset can do and how to program it. 225689701d8SJeroen Ruigrok van der Werven.Sh NOTES 226688e92fcSSøren SchmidtPlease remember that in order to use UDMA4/ATA66 and above modes you 227688e92fcSSøren Schmidt.Em must 228c9753c58SSimon L. B. Nielsenuse 80 conductor cables. 2295512804bSRebecca CranPlease assure that ribbon cables are no longer than 45cm. 2308ff5952aSSøren SchmidtIn case of rounded ATA cables, the length depends on the 231c9753c58SSimon L. B. Nielsenquality of the cables. 2328ff5952aSSøren SchmidtSATA cables can be up to 1m long according to the specification. 233126123eaSAlexander MotinExternal SATA cables can be 2m long and more, but not all controllers 234126123eaSAlexander Motinwork well on long cables, especially at high speeds. 235f4c4488aSRuslan Ermilov.Sh SEE ALSO 236126123eaSAlexander Motin.Xr ada 4 , 23739915804SAlexander Motin.Xr ahci 4 , 23839915804SAlexander Motin.Xr cam 4 , 2397ea6a15dSJohn-Mark Gurney.Xr cd 4 , 240126123eaSAlexander Motin.Xr mvs 4 , 241923544aaSBaptiste Daroussin.Xr siis 4 , 242923544aaSBaptiste Daroussin.Xr camcontrol 8 243ed403116SRuslan Ermilov.Sh HISTORY 244ed403116SRuslan ErmilovThe 245ed403116SRuslan Ermilov.Nm 246ed403116SRuslan Ermilovdriver first appeared in 247ed403116SRuslan Ermilov.Fx 4.0 . 248df523242SChristian BruefferIt was turned into a 249df523242SChristian Brueffer.Xr CAM 4 250df523242SChristian Bruefferinterface module in 251126123eaSAlexander Motin.Fx 9.0 . 2528ff5952aSSøren Schmidt.Sh AUTHORS 2536c899950SBaptiste Daroussin.An Alexander Motin Aq Mt mav@FreeBSD.org 2546c899950SBaptiste Daroussin.An S\(/oren Schmidt Aq Mt sos@FreeBSD.org 255