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