xref: /freebsd/share/man/man4/twe.4 (revision a90b9d0159070121c221b966469c3e36d912bf82)
1.\"
2.\" Copyright (c) 2000 Michael Smith
3.\" Copyright (c) 2000 BSDi
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
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
13.\"
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.
24.\"
25.Dd May 7, 2023
26.Dt TWE 4
27.Os
28.Sh NAME
29.Nm twe
30.Nd 3ware 5000/6000/7000/8000 series PATA/SATA RAID adapter driver
31.Sh SYNOPSIS
32To compile this driver into the kernel,
33place the following lines in your
34kernel configuration file:
35.Bd -ragged -offset indent
36.Cd "device pci"
37.Cd "device twe"
38.Ed
39.Pp
40Alternatively, to load the driver as a
41module at boot time, place the following line in
42.Xr loader.conf 5 :
43.Bd -literal -offset indent
44twe_load="YES"
45.Ed
46.Sh DEPRECATION NOTICE
47The
48.Nm
49driver is not present in
50.Fx 14.0 .
51.Sh DESCRIPTION
52The
53.Nm
54driver provides support for AMCC's 3ware 5000/6000/7000/8000 series
55PATA/SATA RAID adapters.
56These adapters were formerly known as
57.Dq 3ware Escalade .
58.Pp
59These devices support 2, 4, 8, or 12 ATA disk drives
60and provide RAID0 (striping) and RAID1 (mirroring) functionality.
61.Sh HARDWARE
62The
63.Nm
64driver supports the following PATA/SATA RAID
65controllers:
66.Pp
67.Bl -bullet -compact
68.It
69AMCC's 3ware 5000 series
70.It
71AMCC's 3ware 6000 series
72.It
73AMCC's 3ware 7000-2
74.It
75AMCC's 3ware 7006-2
76.It
77AMCC's 3ware 7500-4LP
78.It
79AMCC's 3ware 7500-8
80.It
81AMCC's 3ware 7500-12
82.It
83AMCC's 3ware 7506-4LP
84.It
85AMCC's 3ware 7506-8
86.It
87AMCC's 3ware 7506-12
88.It
89AMCC's 3ware 8006-2LP
90.It
91AMCC's 3ware 8500-4LP
92.It
93AMCC's 3ware 8500-8
94.It
95AMCC's 3ware 8500-12
96.It
97AMCC's 3ware 8506-4LP
98.It
99AMCC's 3ware 8506-8
100.It
101AMCC's 3ware 8506-8MI
102.It
103AMCC's 3ware 8506-12
104.It
105AMCC's 3ware 8506-12MI
106.El
107.Sh DIAGNOSTICS
108.Ss Controller initialisation phase
109.Bl -diag
110.It twe%d: microcontroller not ready
111.Pp
112The controller's onboard CPU is not reporting that it is ready;
113this may be due to either a board or system failure.
114Initialisation 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
121.Pp
122The controller is not responding correctly to
123the driver's attempts to reset and initialise it.
124This process is retried several times.
125.It twe%d: can't initialise controller, giving up
126.Pp
127Several attempts to reset and initialise the controller have failed;
128initialisation has failed
129and the driver will not attach to this controller.
130.El
131.Ss Driver initialisation/shutdown phase
132.Bl -diag
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
139.Pp
140A resource allocation error occurred while initialising the driver;
141initialisation has failed
142and the driver will not attach to this controller.
143.It twe%d: can't detect attached units
144.Pp
145Fetching 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
152.Pp
153Creation of the disk devices failed, either due to communication
154problems with the adapter or due to resource shortage;
155attachment of one or more units may have been aborted.
156.El
157.Ss Operational phase
158.Bl -diag
159.It twe%d: command completed - %s
160.El
161.Pp
162A command was reported completed with a warning by the controller.
163The warning may be one of:
164.Bl -diag
165.It redundant/inconsequential request ignored
166.It failed to write zeroes to LBA 0
167.It failed to profile TwinStor zones
168.El
169.Bl -diag
170.It twe%d: command failed - %s
171.El
172.Pp
173A command was reported as failed by the controller.
174The failure message may be one of:
175.Bl -diag
176.It aborted due to system command or reconfiguration
177.It aborted
178.It access error
179.It access violation
180.It device failure
181.It controller error
182.It timed out
183.It invalid unit number
184.It unit not available
185.It undefined opcode
186.It request incompatible with unit
187.It invalid request
188.It firmware error, reset requested
189.Pp
190The command will be returned to the operating system after a
191fatal error.
192.El
193.Bl -diag
194.It twe%d: command failed submission - controller wedged
195.Pp
196A command could not be delivered to the controller because
197the controller is unresponsive.
198.It twe%d: AEN: <%s>
199.El
200.Pp
201The controller has reported a change in status using an AEN
202(Asynchronous Event Notification).
203The following AENs may be reported:
204.Bl -diag
205.It queue empty
206.It soft reset
207.It degraded mirror
208.It controller error
209.It rebuild fail
210.It rebuild done
211.It incomplete unit
212.It initialisation done
213.It unclean shutdown detected
214.It drive timeout
215.It drive error
216.It rebuild started
217.It aen queue full
218.Pp
219AENs are also queued internally for use by management tools.
220.El
221.Bl -diag
222.It twe%d: error polling for signalled AENs
223.Pp
224The controller has reported
225that one or more status messages are ready for the driver,
226but attempting to fetch one of these has returned an error.
227.It twe%d: AEN queue overflow, lost AEN <%s>
228.Pp
229A status message was retrieved from the controller,
230but there is no more room to queue it in the driver.
231The 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
234.Pp
235A check of the controller's status bits
236indicates an unexpected condition.
237.It twe%d: host interrupt
238.Pp
239The controller has signalled a host interrupt.
240This serves an unknown purpose and is ignored.
241.It twe%d: command interrupt
242.Pp
243The controller has signalled a command interrupt.
244This is not used, and will be disabled.
245.It twe%d: controller reset in progress...
246.Pp
247The controller is being reset by the driver.
248Typically this is done when the driver has determined that the
249controller is in an unrecoverable state.
250.It twe%d: can't reset controller, giving up
251.Pp
252The driver has given up on resetting the controller.
253No further I/O will be handled.
254.It controller reset done, %d commands restarted
255.Pp
256The controller was successfully reset,
257and outstanding commands were restarted.
258.El
259.Sh AUTHORS
260.An -nosplit
261The
262.Nm
263driver and manual page were written by
264.An Michael Smith Aq Mt msmith@FreeBSD.org .
265.Pp
266Extensive work done on the driver by
267.An Vinod Kashyap Aq Mt vkashyap@FreeBSD.org
268and
269.An Paul Saab Aq Mt ps@FreeBSD.org .
270.Sh BUGS
271The controller cannot handle I/O transfers
272that are not aligned to a 512-byte boundary.
273In order to support raw device access from user-space,
274the driver will perform alignment fixup on non-aligned data.
275This process is inefficient,
276and thus in order to obtain best performance
277user-space applications accessing the device
278should do so with aligned buffers.
279