summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ata.4 3.html
blob: 04d8646b7a39cff090977d0ac7ca7110d64115b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<table class="head">
  <tr>
    <td class="head-ltitle">ATA(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">ATA(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">ata</code> &#x2014; <span class="Nd">generic
    ATA/SATA controller driver</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp">To compile this driver into the kernel, place the following lines
    in your kernel configuration file:</p>
<div class="Bd Pp Bd-indent"><code class="Cd">device scbus</code>
<br/>
<code class="Cd">device ata</code></div>
<p class="Pp">Alternatively, to load the driver as set of modules at boot time,
    place some of the following lines in <a class="Xr">loader.conf(5)</a>:</p>
<div class="Bd Pp Bd-indent Li">
<pre>ata_load=&quot;YES&quot;

ataisa_load=&quot;YES&quot;
atapci_load=&quot;YES&quot;

ataacard_load=&quot;YES&quot;
ataacerlabs_load=&quot;YES&quot;
ataamd_load=&quot;YES&quot;
ataati_load=&quot;YES&quot;
atacenatek_load=&quot;YES&quot;
atacypress_load=&quot;YES&quot;
atacyrix_load=&quot;YES&quot;
atahighpoint_load=&quot;YES&quot;
ataintel_load=&quot;YES&quot;
ataite_load=&quot;YES&quot;
atajmicron_load=&quot;YES&quot;
atamarvell_load=&quot;YES&quot;
atamicron_load=&quot;YES&quot;
atanational_load=&quot;YES&quot;
atanetcell_load=&quot;YES&quot;
atanvidia_load=&quot;YES&quot;
atapromise_load=&quot;YES&quot;
ataserverworks_load=&quot;YES&quot;
atasiliconimage_load=&quot;YES&quot;
atasis_load=&quot;YES&quot;
atavia_load=&quot;YES&quot;</pre>
</div>
<p class="Pp">The first line is for the common hardware independent code, and is
    a prerequisite for the other modules. The next three lines are generic
    bus-specific drivers. The rest are vendor-specific PCI drivers.</p>
<p class="Pp">The following tunables are settable from the
    <a class="Xr">loader(8)</a>:</p>
<dl class="Bl-ohang">
  <dt id="hw.ata.ata_dma_check_80pin"><var class="Va">hw.ata.ata_dma_check_80pin</var></dt>
  <dd>set to 0 to disable the 80pin cable check (the default is 1, check the
      cable).</dd>
  <dt id="hint.atapci.X.msi"><var class="Va">hint.atapci.X.msi</var></dt>
  <dd>set to 1 to allow Message Signalled Interrupts (MSI) to be used by the
      specified PCI ATA controller, if supported.</dd>
  <dt id="hint.ata.X.devX.mode"><var class="Va">hint.ata.X.devX.mode</var></dt>
  <dd>limits the initial ATA mode for the specified device on the specified
      channel.</dd>
  <dt id="hint.ata.X.mode"><var class="Va">hint.ata.X.mode</var></dt>
  <dd>limits the initial ATA mode for every device on the specified
    channel.</dd>
  <dt id="hint.ata.X.pm_level"><var class="Va">hint.ata.X.pm_level</var></dt>
  <dd>controls SATA interface Power Management for the specified channel,
      allowing some power savings at the cost of additional command latency.
      Possible values:
    <p class="Pp"></p>
    <div class="Bd-indent">
    <dl class="Bl-tag Bl-compact">
      <dt>0</dt>
      <dd>Interface Power Management is disabled. This is the default
        value.</dd>
      <dt>1</dt>
      <dd>The device is allowed to initiate a PM state change; the host is
          passive.</dd>
    </dl>
    </div>
  </dd>
  <dt id="hint.ata."><var class="Va">hint.ata.</var><var class="Ar">X</var><var class="Va">.dev</var><var class="Ar">X</var><var class="Va">.sata_rev</var></dt>
  <dd>limits the initial SATA revision (speed) for the specified device on the
      specified channel. Values 1, 2 and 3 are respectively 1.5, 3 and
    6Gbps.</dd>
  <dt id="hint.ata.~2"><var class="Va">hint.ata.</var><var class="Ar">X</var><var class="Va">.sata_rev</var></dt>
  <dd>Same, but for every device on the specified channel.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">ata</code> driver gives the
    <a class="Xr">CAM(4)</a> subsystem access to the ATA (IDE) and SATA ports of
    many generic controllers. Depending on the controller, each PATA (IDE) port
    or each one or two SATA ports are represented to CAM as a separate bus with
    one or two targets. Most of the bus-management details are handled by the
    ATA/SATA-specific transport of CAM. Connected ATA disks are handled by the
    ATA protocol disk peripheral driver <a class="Xr">ada(4)</a>. ATAPI devices
    are handled by the SCSI protocol peripheral drivers <a class="Xr">cd(4)</a>,
    <a class="Xr">da(4)</a>, <a class="Xr">sa(4)</a>, etc.</p>
<p class="Pp">This driver supports ATA, and for the most of controllers, ATAPI
    devices. Command queuing and SATA port multipliers are not supported. Device
    hot-plug and SATA interface power management is supported only on some
    controllers.</p>
<p class="Pp">The <code class="Nm">ata</code> driver can change the transfer
    mode when the system is up and running. See the
    <code class="Cm">negotiate</code> subcommand of
    <a class="Xr">camcontrol(8)</a>.</p>
<p class="Pp" id="DMA">The <code class="Nm">ata</code> driver sets the maximum
    transfer mode supported by the hardware as default. However, the
    <code class="Nm">ata</code> driver sometimes warns:
    &#x201C;<a class="permalink" href="#DMA"><b class="Sy">DMA limited to
    UDMA33, non-ATA66 cable or device</b></a>&#x201D;. This means that the
    <code class="Nm">ata</code> driver has detected that the required 80
    conductor cable is not present or could not be detected properly, or that
    one of the devices on the channel only accepts up to UDMA2/ATA33. The
    <var class="Va">hw.ata.ata_dma_check_80pin</var> tunable can be set to 0 to
    disable this check.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="HARDWARE"><a class="permalink" href="#HARDWARE">HARDWARE</a></h1>
<p class="Pp">The <code class="Nm">ata</code> driver supports the IDE interface
    on the following ATA/SATA controllers:</p>
<p class="Pp"></p>
<dl class="Bl-tag Bl-compact">
  <dt>Acard:</dt>
  <dd>ATP850P, ATP860A, ATP860R, ATP865A, ATP865R.</dd>
  <dt>ALI:</dt>
  <dd>M5228, M5229, M5281, M5283, M5287, M5288, M5289.</dd>
  <dt>AMD:</dt>
  <dd>AMD756, AMD766, AMD768, AMD8111, CS5536.</dd>
  <dt>ATI:</dt>
  <dd>IXP200, IXP300, IXP400, IXP600, IXP700, IXP800.</dd>
  <dt>CMD:</dt>
  <dd>CMD646, CMD646U2, CMD648, CMD649.</dd>
  <dt>Cypress:</dt>
  <dd>Cypress 82C693.</dd>
  <dt>Cyrix:</dt>
  <dd>Cyrix 5530.</dd>
  <dt>HighPoint:</dt>
  <dd>HPT302, HPT366, HPT368, HPT370, HPT371, HPT372, HPT372N, HPT374.</dd>
  <dt>Intel:</dt>
  <dd>6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0, ICH2, ICH3, ICH4,
      ICH5, ICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH.</dd>
  <dt>ITE:</dt>
  <dd>IT8211F, IT8212F, IT8213F.</dd>
  <dt>JMicron:</dt>
  <dd>JMB360, JMB361, JMB363, JMB365, JMB366, JMB368.</dd>
  <dt>Marvell</dt>
  <dd>88SE6101, 88SE6102, 88SE6111, 88SE6121, 88SE6141, 88SE6145.</dd>
  <dt>National:</dt>
  <dd>SC1100.</dd>
  <dt>NetCell:</dt>
  <dd>NC3000, NC5000.</dd>
  <dt>nVidia:</dt>
  <dd>nForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4,
      MCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89.</dd>
  <dt>Promise:</dt>
  <dd>PDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269,
      PDC20270, PDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319,
      PDC20371, PDC20375, PDC20376, PDC20377, PDC20378, PDC20379, PDC20571,
      PDC20575, PDC20579, PDC20580, PDC20617, PDC20618, PDC20619, PDC20620,
      PDC20621, PDC20622, PDC40518, PDC40519, PDC40718, PDC40719.</dd>
  <dt>ServerWorks:</dt>
  <dd>HT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8.</dd>
  <dt>Silicon Image:</dt>
  <dd>SiI0680, SiI3112, SiI3114, SiI3512.</dd>
  <dt>SiS:</dt>
  <dd>SIS180, SIS181, SIS182, SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630,
      SIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962,
      SIS963, SIS964, SIS965.</dd>
  <dt>VIA:</dt>
  <dd>VT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B,
      VT82C686, VT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235,
      VT8237, VT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900.</dd>
</dl>
<p class="Pp">Some of above chips can be configured for AHCI mode. In such case
    they are supported by <a class="Xr">ahci(4)</a> driver instead.</p>
<p class="Pp">Unknown ATA chipsets are supported in PIO modes, and if the
    standard busmaster DMA registers are present and contain valid setup, DMA is
    also enabled, although the max mode is limited to UDMA33, as it is not known
    what the chipset can do and how to program it.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="NOTES"><a class="permalink" href="#NOTES">NOTES</a></h1>
<p class="Pp">Please remember that in order to use UDMA4/ATA66 and above modes
    you <a class="permalink" href="#must"><i class="Em" id="must">must</i></a>
    use 80 conductor cables. Please assure that ribbon cables are no longer than
    45cm. In case of rounded ATA cables, the length depends on the quality of
    the cables. SATA cables can be up to 1m long according to the specification.
    External SATA cables can be 2m long and more, but not all controllers work
    well on long cables, especially at high speeds.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">ada(4)</a>, <a class="Xr">ahci(4)</a>,
    <a class="Xr">cam(4)</a>, <a class="Xr">cd(4)</a>, <a class="Xr">mvs(4)</a>,
    <a class="Xr">siis(4)</a>, <a class="Xr">camcontrol(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">ata</code> driver first appeared in
    <span class="Ux">FreeBSD 4.0</span>. It was turned into a
    <a class="Xr">CAM(4)</a> interface module in <span class="Ux">FreeBSD
    9.0</span>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp"><span class="An">Alexander Motin</span>
    &lt;<a class="Mt" href="mailto:mav@FreeBSD.org">mav@FreeBSD.org</a>&gt;
  <br/>
  <span class="An">S&#x00F8;ren Schmidt</span>
    &lt;<a class="Mt" href="mailto:sos@FreeBSD.org">sos@FreeBSD.org</a>&gt;</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">March 23, 2015</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>