2 .\" Copyright (c) 2000 Michael Smith
3 .\" Copyright (c) 2000 BSDi
4 .\" All rights reserved.
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. The name of the author may not be used to endorse or promote products
12 .\" derived from this software without specific prior written permission
14 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 .Nd 3ware 5000/6000/7000/8000 series PATA/SATA RAID adapter driver
32 To compile this driver into the kernel,
33 place the following lines in your
34 kernel configuration file:
35 .Bd -ragged -offset indent
40 Alternatively, to load the driver as a
41 module at boot time, place the following line in
43 .Bd -literal -offset indent
46 .Sh DEPRECATION NOTICE
49 driver is not present in
54 driver provides support for AMCC's 3ware 5000/6000/7000/8000 series
55 PATA/SATA RAID adapters.
56 These adapters were formerly known as
59 These devices support 2, 4, 8, or 12 ATA disk drives
60 and provide RAID0 (striping) and RAID1 (mirroring) functionality.
64 driver supports the following PATA/SATA RAID
69 AMCC's 3ware 5000 series
71 AMCC's 3ware 6000 series
101 AMCC's 3ware 8506-8MI
105 AMCC's 3ware 8506-12MI
108 .Ss Controller initialisation phase
110 .It twe%d: microcontroller not ready
112 The controller's onboard CPU is not reporting that it is ready;
113 this may be due to either a board or system failure.
114 Initialisation has failed.
115 .It twe%d: no attention interrupt
116 .It twe%d: can't drain AEN queue
117 .It twe%d: reset not reported
118 .It twe%d: controller errors detected
119 .It twe%d: can't drain response queue
120 .It twe%d: reset %d failed, trying again
122 The controller is not responding correctly to
123 the driver's attempts to reset and initialise it.
124 This process is retried several times.
125 .It twe%d: can't initialise controller, giving up
127 Several attempts to reset and initialise the controller have failed;
128 initialisation has failed
129 and the driver will not attach to this controller.
131 .Ss Driver initialisation/shutdown phase
133 .It twe%d: register window not available
134 .It twe%d: can't allocate register window
135 .It twe%d: can't allocate parent DMA tag
136 .It twe%d: can't allocate interrupt
137 .It twe%d: can't set up interrupt
138 .It twe%d: can't establish configuration hook
140 A resource allocation error occurred while initialising the driver;
141 initialisation has failed
142 and the driver will not attach to this controller.
143 .It twe%d: can't detect attached units
145 Fetching the list of attached units failed; initialisation has failed.
146 .It twe%d: error fetching capacity for unit %d
147 .It twe%d: error fetching state for unit %d
148 .It twe%d: error fetching descriptor size for unit %d
149 .It twe%d: error fetching descriptor for unit %d
150 .It twe%d: device_add_child failed
151 .It twe%d: bus_generic_attach returned %d
153 Creation of the disk devices failed, either due to communication
154 problems with the adapter or due to resource shortage;
155 attachment of one or more units may have been aborted.
157 .Ss Operational phase
159 .It twe%d: command completed - %s
162 A command was reported completed with a warning by the controller.
163 The warning may be one of:
165 .It redundant/inconsequential request ignored
166 .It failed to write zeroes to LBA 0
167 .It failed to profile TwinStor zones
170 .It twe%d: command failed - %s
173 A command was reported as failed by the controller.
174 The failure message may be one of:
176 .It aborted due to system command or reconfiguration
183 .It invalid unit number
184 .It unit not available
186 .It request incompatible with unit
188 .It firmware error, reset requested
190 The command will be returned to the operating system after a
194 .It twe%d: command failed submission - controller wedged
196 A command could not be delivered to the controller because
197 the controller is unresponsive.
201 The controller has reported a change in status using an AEN
202 (Asynchronous Event Notification).
203 The following AENs may be reported:
212 .It initialisation done
213 .It unclean shutdown detected
219 AENs are also queued internally for use by management tools.
222 .It twe%d: error polling for signalled AENs
224 The controller has reported
225 that one or more status messages are ready for the driver,
226 but attempting to fetch one of these has returned an error.
227 .It twe%d: AEN queue overflow, lost AEN <%s>
229 A status message was retrieved from the controller,
230 but there is no more room to queue it in the driver.
231 The message is lost (but will be printed to the console).
232 .It twe%d: missing expected status bits %s
233 .It twe%d: unexpected status bits %s
235 A check of the controller's status bits
236 indicates an unexpected condition.
237 .It twe%d: host interrupt
239 The controller has signalled a host interrupt.
240 This serves an unknown purpose and is ignored.
241 .It twe%d: command interrupt
243 The controller has signalled a command interrupt.
244 This is not used, and will be disabled.
245 .It twe%d: controller reset in progress...
247 The controller is being reset by the driver.
248 Typically this is done when the driver has determined that the
249 controller is in an unrecoverable state.
250 .It twe%d: can't reset controller, giving up
252 The driver has given up on resetting the controller.
253 No further I/O will be handled.
254 .It controller reset done, %d commands restarted
256 The controller was successfully reset,
257 and outstanding commands were restarted.
263 driver and manual page were written by
264 .An Michael Smith Aq Mt msmith@FreeBSD.org .
266 Extensive work done on the driver by
267 .An Vinod Kashyap Aq Mt vkashyap@FreeBSD.org
269 .An Paul Saab Aq Mt ps@FreeBSD.org .
271 The controller cannot handle I/O transfers
272 that are not aligned to a 512-byte boundary.
273 In order to support raw device access from user-space,
274 the driver will perform alignment fixup on non-aligned data.
275 This process is inefficient,
276 and thus in order to obtain best performance
277 user-space applications accessing the device
278 should do so with aligned buffers.