xref: /freebsd/share/man/man4/ata.4 (revision fa9896e0)
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.\"
25cdc58367SAlexander Motin.Dd March 23, 2015
268ea643adSJeroen Ruigrok van der Werven.Dt ATA 4
273d45e180SRuslan Ermilov.Os
28689701d8SJeroen Ruigrok van der Werven.Sh NAME
29126123eaSAlexander Motin.Nm ata
30126123eaSAlexander Motin.Nd generic ATA/SATA controller driver
31689701d8SJeroen Ruigrok van der Werven.Sh SYNOPSIS
32126123eaSAlexander MotinTo compile this driver into the kernel, place the following lines in your
33126123eaSAlexander Motinkernel configuration file:
34126123eaSAlexander Motin.Bd -ragged -offset indent
35126123eaSAlexander Motin.Cd "device scbus"
36126123eaSAlexander Motin.Cd "device ata"
37126123eaSAlexander Motin.Ed
38547d4262SKazutaka YOKOTA.Pp
39126123eaSAlexander MotinAlternatively, to load the driver as set of modules at boot time,
40126123eaSAlexander Motinplace some of the following lines in
41126123eaSAlexander Motin.Xr loader.conf 5 :
42126123eaSAlexander Motin.Bd -literal -offset indent
43126123eaSAlexander Motinata_load="YES"
44126123eaSAlexander Motin
45126123eaSAlexander Motinataisa_load="YES"
46126123eaSAlexander Motinatapci_load="YES"
47126123eaSAlexander Motin
48126123eaSAlexander Motinataacard_load="YES"
49126123eaSAlexander Motinataacerlabs_load="YES"
50126123eaSAlexander Motinataamd_load="YES"
51126123eaSAlexander Motinataati_load="YES"
52126123eaSAlexander Motinatacenatek_load="YES"
53126123eaSAlexander Motinatacypress_load="YES"
54126123eaSAlexander Motinatacyrix_load="YES"
55126123eaSAlexander Motinatahighpoint_load="YES"
56126123eaSAlexander Motinataintel_load="YES"
57126123eaSAlexander Motinataite_load="YES"
58126123eaSAlexander Motinatajmicron_load="YES"
59126123eaSAlexander Motinatamarvell_load="YES"
60126123eaSAlexander Motinatamicron_load="YES"
61126123eaSAlexander Motinatanational_load="YES"
62126123eaSAlexander Motinatanetcell_load="YES"
63126123eaSAlexander Motinatanvidia_load="YES"
64126123eaSAlexander Motinatapromise_load="YES"
65126123eaSAlexander Motinataserverworks_load="YES"
66126123eaSAlexander Motinatasiliconimage_load="YES"
67126123eaSAlexander Motinatasis_load="YES"
68126123eaSAlexander Motinatavia_load="YES"
69126123eaSAlexander Motin.Ed
70689701d8SJeroen Ruigrok van der Werven.Pp
71df523242SChristian BruefferThe first line is for the common hardware independent code, and is a
72df523242SChristian Bruefferprerequisite for the other modules.
73df523242SChristian BruefferThe next three lines are generic bus-specific drivers.
74cdc58367SAlexander MotinThe rest are vendor-specific PCI drivers.
758ba4488cSSøren Schmidt.Pp
76126123eaSAlexander MotinThe following tunables are settable from the
77126123eaSAlexander Motin.Xr loader 8 :
78f4c4488aSRuslan Ermilov.Bl -ohang
7919a71edbSPhilip Paeps.It Va hw.ata.ata_dma_check_80pin
8078c3ff73SMarius Stroblset to 0 to disable the 80pin cable check (the default is 1, check the cable).
81f64d65b2SAlexander Motin.It Va hint.atapci.X.msi
82df523242SChristian Bruefferset to 1 to allow Message Signalled Interrupts (MSI) to be used by the
83f64d65b2SAlexander Motinspecified PCI ATA controller, if supported.
847ce1f3e5SAlexander Motin.It Va hint.ata.X.devX.mode
859c87d811SAlexander Motinlimits the initial ATA mode for the specified device on the specified channel.
867ce1f3e5SAlexander Motin.It Va hint.ata.X.mode
87df523242SChristian Bruefferlimits the initial ATA mode for every device on the specified channel.
88f64d65b2SAlexander Motin.It Va hint.ata.X.pm_level
89df523242SChristian Brueffercontrols SATA interface Power Management for the specified channel,
90df523242SChristian Bruefferallowing some power savings at the cost of additional command latency.
91f64d65b2SAlexander MotinPossible values:
927e3de069SJoel Dahl.Pp
937e3de069SJoel Dahl.Bl -tag -width 4n -offset indent -compact
94f64d65b2SAlexander Motin.It 0
95df523242SChristian BruefferInterface Power Management is disabled.
96df523242SChristian BruefferThis is the default value.
97f64d65b2SAlexander Motin.It 1
98df523242SChristian BruefferThe device is allowed to initiate a PM state change; the host is passive.
99ac074de8SJoel Dahl.El
1009c87d811SAlexander Motin.It Va hint.ata. Ns Ar X Ns Va .dev Ns Ar X Ns Va .sata_rev
1019c87d811SAlexander Motinlimits the initial SATA revision (speed) for the specified device
1029c87d811SAlexander Motinon the specified channel.
1039c87d811SAlexander MotinValues 1, 2 and 3 are respectively 1.5, 3 and 6Gbps.
1049c87d811SAlexander Motin.It Va hint.ata. Ns Ar X Ns Va .sata_rev
1059c87d811SAlexander MotinSame, but for every device on the specified channel.
106f4c4488aSRuslan Ermilov.El
107689701d8SJeroen Ruigrok van der Werven.Sh DESCRIPTION
108688e92fcSSøren SchmidtThe
109688e92fcSSøren Schmidt.Nm
110df523242SChristian Bruefferdriver gives the
111df523242SChristian Brueffer.Xr CAM 4
112df523242SChristian Brueffersubsystem access to the ATA (IDE) and SATA ports
113126123eaSAlexander Motinof many generic controllers.
114df523242SChristian BruefferDepending on the controller, each PATA (IDE)
115df523242SChristian Bruefferport or each one or two SATA ports are
116126123eaSAlexander Motinrepresented to CAM as a separate bus with one or two targets.
117126123eaSAlexander MotinMost of the bus-management details are handled by the ATA/SATA-specific
118126123eaSAlexander Motintransport of CAM.
119126123eaSAlexander MotinConnected ATA disks are handled by the ATA protocol disk peripheral driver
120126123eaSAlexander Motin.Xr ada 4 .
121126123eaSAlexander MotinATAPI devices are handled by the SCSI protocol peripheral drivers
122126123eaSAlexander Motin.Xr cd 4 ,
123126123eaSAlexander Motin.Xr da 4 ,
124126123eaSAlexander Motin.Xr sa 4 ,
125126123eaSAlexander Motinetc.
126689701d8SJeroen Ruigrok van der Werven.Pp
127df523242SChristian BruefferThis driver supports ATA, and for the most of controllers, ATAPI devices.
128126123eaSAlexander MotinCommand queuing and SATA port multipliers are not supported.
129df523242SChristian BruefferDevice hot-plug and SATA interface power management is supported only on
130126123eaSAlexander Motinsome controllers.
131126123eaSAlexander Motin.Pp
132126123eaSAlexander MotinThe
133126123eaSAlexander Motin.Nm
134126123eaSAlexander Motindriver can change the transfer mode when the system is up and running.
135df523242SChristian BruefferSee the
136df523242SChristian Brueffer.Cm negotiate
137df523242SChristian Brueffersubcommand of
138df523242SChristian Brueffer.Xr camcontrol 8 .
139126123eaSAlexander Motin.Pp
140126123eaSAlexander MotinThe
141126123eaSAlexander Motin.Nm
142126123eaSAlexander Motindriver sets the maximum transfer mode supported by the hardware as default.
143df523242SChristian BruefferHowever, the
144126123eaSAlexander Motin.Nm
145126123eaSAlexander Motindriver sometimes warns:
146126123eaSAlexander Motin.Dq Sy "DMA limited to UDMA33, non-ATA66 cable or device".
147126123eaSAlexander MotinThis means that
148126123eaSAlexander Motinthe
149126123eaSAlexander Motin.Nm
150126123eaSAlexander Motindriver has detected that the required 80 conductor cable is not present
151126123eaSAlexander Motinor could not be detected properly,
152126123eaSAlexander Motinor that one of the devices on the channel only accepts up
153126123eaSAlexander Motinto UDMA2/ATA33.
154126123eaSAlexander MotinThe
155126123eaSAlexander Motin.Va hw.ata.ata_dma_check_80pin
156126123eaSAlexander Motintunable can be set to 0 to disable this check.
157126123eaSAlexander Motin.Sh HARDWARE
158688e92fcSSøren SchmidtThe currently supported ATA/SATA controller chips are:
159689701d8SJeroen Ruigrok van der Werven.Pp
160688e92fcSSøren Schmidt.Bl -tag -width "Silicon Image:" -compact
161688e92fcSSøren Schmidt.It Acard:
162c6fd52cbSJoel DahlATP850P, ATP860A, ATP860R, ATP865A, ATP865R.
163688e92fcSSøren Schmidt.It ALI:
16439915804SAlexander MotinM5228, M5229, M5281, M5283, M5287, M5288, M5289.
165688e92fcSSøren Schmidt.It AMD:
166da31a86aSChristian BruefferAMD756, AMD766, AMD768, AMD8111, CS5536.
1673a22b03dSJoel Dahl.It ATI:
1681f02c0f7SAlexander MotinIXP200, IXP300, IXP400, IXP600, IXP700, IXP800.
169688e92fcSSøren Schmidt.It CMD:
170c94b6c42SJoel DahlCMD646, CMD646U2, CMD648, CMD649.
171688e92fcSSøren Schmidt.It Cypress:
172688e92fcSSøren SchmidtCypress 82C693.
173d8f934daSChristian Brueffer.It Cyrix:
174d8f934daSChristian BruefferCyrix 5530.
175688e92fcSSøren Schmidt.It HighPoint:
176c94b6c42SJoel DahlHPT302, HPT366, HPT368, HPT370, HPT371, HPT372, HPT372N, HPT374.
177688e92fcSSøren Schmidt.It Intel:
17839915804SAlexander Motin6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0, ICH2, ICH3, ICH4, ICH5,
17939915804SAlexander MotinICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH.
18039d1acc3SChristian Brueffer.It ITE:
181129e5ac6SChristian BruefferIT8211F, IT8212F, IT8213F.
182aed1a1f1SChristian Brueffer.It JMicron:
183dbd1ddacSChristian BruefferJMB360, JMB361, JMB363, JMB365, JMB366, JMB368.
184232c858fSChristian Brueffer.It Marvell
185cdc58367SAlexander Motin88SE6101, 88SE6102, 88SE6111, 88SE6121, 88SE6141, 88SE6145.
186688e92fcSSøren Schmidt.It National:
187688e92fcSSøren SchmidtSC1100.
188cebf4a4eSChristian Brueffer.It NetCell:
189cebf4a4eSChristian BruefferNC3000, NC5000.
190688e92fcSSøren Schmidt.It nVidia:
1911f02c0f7SAlexander MotinnForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4,
1921f02c0f7SAlexander MotinMCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89.
193688e92fcSSøren Schmidt.It Promise:
194be8c7f2aSSergey KandaurovPDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270,
195be8c7f2aSSergey KandaurovPDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375,
196be8c7f2aSSergey KandaurovPDC20376, PDC20377, PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580,
197be8c7f2aSSergey KandaurovPDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622, PDC40518, PDC40519,
198be8c7f2aSSergey KandaurovPDC40718, PDC40719.
199688e92fcSSøren Schmidt.It ServerWorks:
200dbd1ddacSChristian BruefferHT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8.
201688e92fcSSøren Schmidt.It Silicon Image:
202cdc58367SAlexander MotinSiI0680, SiI3112, SiI3114, SiI3512.
203688e92fcSSøren Schmidt.It SiS:
204be8c7f2aSSergey KandaurovSIS180, SIS181, SIS182, SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630,
205be8c7f2aSSergey KandaurovSIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962,
206be8c7f2aSSergey KandaurovSIS963, SIS964, SIS965.
207688e92fcSSøren Schmidt.It VIA:
20839915804SAlexander MotinVT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686,
20939915804SAlexander MotinVT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237,
210cd48d66cSAlexander MotinVT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900.
211689701d8SJeroen Ruigrok van der Werven.El
212689701d8SJeroen Ruigrok van der Werven.Pp
213cdc58367SAlexander MotinSome of above chips can be configured for AHCI mode.
214cdc58367SAlexander MotinIn such case they are supported by
215cdc58367SAlexander Motin.Xr ahci 4
216cdc58367SAlexander Motindriver instead.
217126123eaSAlexander Motin.Pp
218688e92fcSSøren SchmidtUnknown ATA chipsets are supported in PIO modes, and if the standard
2198ff5952aSSøren Schmidtbusmaster DMA registers are present and contain valid setup, DMA is
220c48524c2SMike Pritchardalso enabled, although the max mode is limited to UDMA33, as it is
221688e92fcSSøren Schmidtnot known what the chipset can do and how to program it.
222689701d8SJeroen Ruigrok van der Werven.Sh NOTES
223688e92fcSSøren SchmidtPlease remember that in order to use UDMA4/ATA66 and above modes you
224688e92fcSSøren Schmidt.Em must
225c9753c58SSimon L. B. Nielsenuse 80 conductor cables.
2265512804bSRebecca CranPlease assure that ribbon cables are no longer than 45cm.
2278ff5952aSSøren SchmidtIn case of rounded ATA cables, the length depends on the
228c9753c58SSimon L. B. Nielsenquality of the cables.
2298ff5952aSSøren SchmidtSATA cables can be up to 1m long according to the specification.
230126123eaSAlexander MotinExternal SATA cables can be 2m long and more, but not all controllers
231126123eaSAlexander Motinwork well on long cables, especially at high speeds.
232f4c4488aSRuslan Ermilov.Sh SEE ALSO
233126123eaSAlexander Motin.Xr ada 4 ,
23439915804SAlexander Motin.Xr ahci 4 ,
23539915804SAlexander Motin.Xr cam 4 ,
2367ea6a15dSJohn-Mark Gurney.Xr cd 4 ,
237126123eaSAlexander Motin.Xr mvs 4 ,
238923544aaSBaptiste Daroussin.Xr siis 4 ,
239923544aaSBaptiste Daroussin.Xr camcontrol 8
240ed403116SRuslan Ermilov.Sh HISTORY
241ed403116SRuslan ErmilovThe
242ed403116SRuslan Ermilov.Nm
243ed403116SRuslan Ermilovdriver first appeared in
244ed403116SRuslan Ermilov.Fx 4.0 .
245df523242SChristian BruefferIt was turned into a
246df523242SChristian Brueffer.Xr CAM 4
247df523242SChristian Bruefferinterface module in
248126123eaSAlexander Motin.Fx 9.0 .
2498ff5952aSSøren Schmidt.Sh AUTHORS
2506c899950SBaptiste Daroussin.An Alexander Motin Aq Mt mav@FreeBSD.org
2516c899950SBaptiste Daroussin.An S\(/oren Schmidt Aq Mt sos@FreeBSD.org
252