xref: /freebsd/share/man/man4/ata.4 (revision 78c3ff73c1d2b6aa63aaa1acd6dddaedcac5dfed)
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.\"
27*78c3ff73SMarius Strobl.Dd June 18, 2012
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
77df523242SChristian BruefferThe first line is for the common hardware independent code, and is a
78df523242SChristian Bruefferprerequisite for the other modules.
79df523242SChristian BruefferThe next three lines are generic bus-specific drivers.
80df523242SChristian BruefferOf the rest, ataahci is the AHCI driver.
81df523242SChristian BruefferThe others are vendor-specific PCI drivers.
82df523242SChristian BruefferThe
83df523242SChristian Brueffer.Dv ATA_CAM
84df523242SChristian Bruefferoption should always remain in the kernel configuration, to make
85df523242SChristian Bruefferthe driver work as a
86df523242SChristian Brueffer.Xr CAM 4
87df523242SChristian Brueffersubsystem module.
888ba4488cSSøren Schmidt.Pp
89126123eaSAlexander MotinThe following tunables are settable from the
90126123eaSAlexander Motin.Xr loader 8 :
91f4c4488aSRuslan Ermilov.Bl -ohang
92*78c3ff73SMarius Strobl.It Va hw.ahci.force
93*78c3ff73SMarius Stroblset to nonzero value for forcing drivers to attach to some known AHCI-capable
94*78c3ff73SMarius Stroblchips even if they are configured for legacy IDE emulation (the default is 1,
95*78c3ff73SMarius Stroblforce the attach).
9619a71edbSPhilip Paeps.It Va hw.ata.ata_dma_check_80pin
97*78c3ff73SMarius Stroblset to 0 to disable the 80pin cable check (the default is 1, check the cable).
98f64d65b2SAlexander Motin.It Va hint.atapci.X.msi
99df523242SChristian Bruefferset to 1 to allow Message Signalled Interrupts (MSI) to be used by the
100f64d65b2SAlexander Motinspecified PCI ATA controller, if supported.
1017ce1f3e5SAlexander Motin.It Va hint.ata.X.devX.mode
102df523242SChristian Bruefferlimits the initial ATA mode for the specified device on specified the channel.
1037ce1f3e5SAlexander Motin.It Va hint.ata.X.mode
104df523242SChristian Bruefferlimits the initial ATA mode for every device on the specified channel.
105f64d65b2SAlexander Motin.It Va hint.ata.X.pm_level
106df523242SChristian Brueffercontrols SATA interface Power Management for the specified channel,
107df523242SChristian Bruefferallowing some power savings at the cost of additional command latency.
108f64d65b2SAlexander MotinPossible values:
1097e3de069SJoel Dahl.Pp
1107e3de069SJoel Dahl.Bl -tag -width 4n -offset indent -compact
111f64d65b2SAlexander Motin.It 0
112df523242SChristian BruefferInterface Power Management is disabled.
113df523242SChristian BruefferThis is the default value.
114f64d65b2SAlexander Motin.It 1
115df523242SChristian BruefferThe device is allowed to initiate a PM state change; the host is passive.
116f64d65b2SAlexander Motin.It 2
117df523242SChristian BruefferThe host initiates a PARTIAL PM state transition every time a port becomes idle.
118f64d65b2SAlexander Motin.It 3
119f64d65b2SAlexander Motinhost initiates SLUMBER PM state transition every time port becomes idle.
120f64d65b2SAlexander Motin.El
1217e3de069SJoel Dahl.Pp
122df523242SChristian BruefferModes 2 and 3 are only supported for AHCI.
123f4c4488aSRuslan Ermilov.El
124689701d8SJeroen Ruigrok van der Werven.Sh DESCRIPTION
125688e92fcSSøren SchmidtThe
126688e92fcSSøren Schmidt.Nm
127df523242SChristian Bruefferdriver gives the
128df523242SChristian Brueffer.Xr CAM 4
129df523242SChristian Brueffersubsystem access to the ATA (IDE) and SATA ports
130126123eaSAlexander Motinof many generic controllers.
131df523242SChristian BruefferDepending on the controller, each PATA (IDE)
132df523242SChristian Bruefferport or each one or two SATA ports are
133126123eaSAlexander Motinrepresented to CAM as a separate bus with one or two targets.
134126123eaSAlexander MotinMost of the bus-management details are handled by the ATA/SATA-specific
135126123eaSAlexander Motintransport of CAM.
136126123eaSAlexander MotinConnected ATA disks are handled by the ATA protocol disk peripheral driver
137126123eaSAlexander Motin.Xr ada 4 .
138126123eaSAlexander MotinATAPI devices are handled by the SCSI protocol peripheral drivers
139126123eaSAlexander Motin.Xr cd 4 ,
140126123eaSAlexander Motin.Xr da 4 ,
141126123eaSAlexander Motin.Xr sa 4 ,
142126123eaSAlexander Motinetc.
143689701d8SJeroen Ruigrok van der Werven.Pp
144df523242SChristian BruefferThis driver supports ATA, and for the most of controllers, ATAPI devices.
145126123eaSAlexander MotinCommand queuing and SATA port multipliers are not supported.
146df523242SChristian BruefferDevice hot-plug and SATA interface power management is supported only on
147126123eaSAlexander Motinsome controllers.
148126123eaSAlexander Motin.Pp
149126123eaSAlexander MotinThe
150126123eaSAlexander Motin.Nm
151126123eaSAlexander Motindriver can change the transfer mode when the system is up and running.
152df523242SChristian BruefferSee the
153df523242SChristian Brueffer.Cm negotiate
154df523242SChristian Brueffersubcommand of
155df523242SChristian Brueffer.Xr camcontrol 8 .
156126123eaSAlexander Motin.Pp
157126123eaSAlexander MotinThe
158126123eaSAlexander Motin.Nm
159126123eaSAlexander Motindriver sets the maximum transfer mode supported by the hardware as default.
160df523242SChristian BruefferHowever, the
161126123eaSAlexander Motin.Nm
162126123eaSAlexander Motindriver sometimes warns:
163126123eaSAlexander Motin.Dq Sy "DMA limited to UDMA33, non-ATA66 cable or device".
164126123eaSAlexander MotinThis means that
165126123eaSAlexander Motinthe
166126123eaSAlexander Motin.Nm
167126123eaSAlexander Motindriver has detected that the required 80 conductor cable is not present
168126123eaSAlexander Motinor could not be detected properly,
169126123eaSAlexander Motinor that one of the devices on the channel only accepts up
170126123eaSAlexander Motinto UDMA2/ATA33.
171126123eaSAlexander MotinThe
172126123eaSAlexander Motin.Va hw.ata.ata_dma_check_80pin
173126123eaSAlexander Motintunable can be set to 0 to disable this check.
174126123eaSAlexander Motin.Sh HARDWARE
175688e92fcSSøren SchmidtThe currently supported ATA/SATA controller chips are:
176689701d8SJeroen Ruigrok van der Werven.Pp
177688e92fcSSøren Schmidt.Bl -tag -width "Silicon Image:" -compact
178688e92fcSSøren Schmidt.It Acard:
179c6fd52cbSJoel DahlATP850P, ATP860A, ATP860R, ATP865A, ATP865R.
180688e92fcSSøren Schmidt.It ALI:
18139915804SAlexander MotinM5228, M5229, M5281, M5283, M5287, M5288, M5289.
182688e92fcSSøren Schmidt.It AMD:
183da31a86aSChristian BruefferAMD756, AMD766, AMD768, AMD8111, CS5536.
1843a22b03dSJoel Dahl.It ATI:
1851f02c0f7SAlexander MotinIXP200, IXP300, IXP400, IXP600, IXP700, IXP800.
186688e92fcSSøren Schmidt.It CMD:
187c94b6c42SJoel DahlCMD646, CMD646U2, CMD648, CMD649.
188688e92fcSSøren Schmidt.It Cypress:
189688e92fcSSøren SchmidtCypress 82C693.
190d8f934daSChristian Brueffer.It Cyrix:
191d8f934daSChristian BruefferCyrix 5530.
192688e92fcSSøren Schmidt.It HighPoint:
193c94b6c42SJoel DahlHPT302, HPT366, HPT368, HPT370, HPT371, HPT372, HPT372N, HPT374.
194688e92fcSSøren Schmidt.It Intel:
19539915804SAlexander Motin6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0, ICH2, ICH3, ICH4, ICH5,
19639915804SAlexander MotinICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH.
19739d1acc3SChristian Brueffer.It ITE:
198129e5ac6SChristian BruefferIT8211F, IT8212F, IT8213F.
199aed1a1f1SChristian Brueffer.It JMicron:
200dbd1ddacSChristian BruefferJMB360, JMB361, JMB363, JMB365, JMB366, JMB368.
201232c858fSChristian Brueffer.It Marvell
20293644902SAlexander Motin88SX5040, 88SX5041, 88SX5080, 88SX5081, 88SX6041, 88SX6042, 88SX6081, 88SE6101,
20393644902SAlexander Motin88SE6102, 88SE6111, 88SE6121, 88SE6141, 88SE6145, 88SX7042.
204688e92fcSSøren Schmidt.It National:
205688e92fcSSøren SchmidtSC1100.
206cebf4a4eSChristian Brueffer.It NetCell:
207cebf4a4eSChristian BruefferNC3000, NC5000.
208688e92fcSSøren Schmidt.It nVidia:
2091f02c0f7SAlexander MotinnForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4,
2101f02c0f7SAlexander MotinMCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89.
211688e92fcSSøren Schmidt.It Promise:
212be8c7f2aSSergey KandaurovPDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270,
213be8c7f2aSSergey KandaurovPDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375,
214be8c7f2aSSergey KandaurovPDC20376, PDC20377, PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580,
215be8c7f2aSSergey KandaurovPDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622, PDC40518, PDC40519,
216be8c7f2aSSergey KandaurovPDC40718, PDC40719.
217688e92fcSSøren Schmidt.It ServerWorks:
218dbd1ddacSChristian BruefferHT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8.
219688e92fcSSøren Schmidt.It Silicon Image:
220199dc74dSChristian BruefferSiI0680, SiI3112, SiI3114, SiI3124, SiI3132, SiI3512.
221688e92fcSSøren Schmidt.It SiS:
222be8c7f2aSSergey KandaurovSIS180, SIS181, SIS182, SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630,
223be8c7f2aSSergey KandaurovSIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962,
224be8c7f2aSSergey KandaurovSIS963, SIS964, SIS965.
225688e92fcSSøren Schmidt.It VIA:
22639915804SAlexander MotinVT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686,
22739915804SAlexander MotinVT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237,
228cd48d66cSAlexander MotinVT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900.
229689701d8SJeroen Ruigrok van der Werven.El
230689701d8SJeroen Ruigrok van der Werven.Pp
231126123eaSAlexander MotinSome of above chips are also supported by the more featured
232126123eaSAlexander Motin.Xr ahci 4 ,
233126123eaSAlexander Motin.Xr mvs 4 ,
234126123eaSAlexander Motinand
235126123eaSAlexander Motin.Xr siis 4
236126123eaSAlexander Motindrivers.
237126123eaSAlexander MotinIf both drivers are loaded at the same time, those will have precedence.
238126123eaSAlexander Motin.Pp
239688e92fcSSøren SchmidtUnknown ATA chipsets are supported in PIO modes, and if the standard
2408ff5952aSSøren Schmidtbusmaster DMA registers are present and contain valid setup, DMA is
241c48524c2SMike Pritchardalso enabled, although the max mode is limited to UDMA33, as it is
242688e92fcSSøren Schmidtnot known what the chipset can do and how to program it.
243689701d8SJeroen Ruigrok van der Werven.Sh NOTES
244688e92fcSSøren SchmidtPlease remember that in order to use UDMA4/ATA66 and above modes you
245688e92fcSSøren Schmidt.Em must
246c9753c58SSimon L. B. Nielsenuse 80 conductor cables.
2475512804bSRebecca CranPlease assure that ribbon cables are no longer than 45cm.
2488ff5952aSSøren SchmidtIn case of rounded ATA cables, the length depends on the
249c9753c58SSimon L. B. Nielsenquality of the cables.
2508ff5952aSSøren SchmidtSATA cables can be up to 1m long according to the specification.
251126123eaSAlexander MotinExternal SATA cables can be 2m long and more, but not all controllers
252126123eaSAlexander Motinwork well on long cables, especially at high speeds.
253f4c4488aSRuslan Ermilov.Sh SEE ALSO
254126123eaSAlexander Motin.Xr ada 4 ,
25539915804SAlexander Motin.Xr ahci 4 ,
25639915804SAlexander Motin.Xr cam 4 ,
257126123eaSAlexander Motin.Xr camcontrol 8 ,
2587ea6a15dSJohn-Mark Gurney.Xr cd 4 ,
259126123eaSAlexander Motin.Xr mvs 4 ,
26039915804SAlexander Motin.Xr siis 4
261ed403116SRuslan Ermilov.Sh HISTORY
262ed403116SRuslan ErmilovThe
263ed403116SRuslan Ermilov.Nm
264ed403116SRuslan Ermilovdriver first appeared in
265ed403116SRuslan Ermilov.Fx 4.0 .
266df523242SChristian BruefferIt was turned into a
267df523242SChristian Brueffer.Xr CAM 4
268df523242SChristian Bruefferinterface module in
269126123eaSAlexander Motin.Fx 9.0 .
2708ff5952aSSøren Schmidt.Sh AUTHORS
271126123eaSAlexander Motin.An Alexander Motin
272126123eaSAlexander Motin.Aq mav@FreeBSD.org ,
2738e8536e1SRuslan Ermilov.An S\(/oren Schmidt
274df523242SChristian Brueffer.Aq sos@FreeBSD.org
275