Merge from vendor branch SENDMAIL:
[dragonfly.git] / share / man / man4 / twe.4
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: src/share/man/man4/twe.4,v 1.1.2.7 2001/07/21 09:16:47 schweikh Exp $
26 .\" $DragonFly: src/share/man/man4/twe.4,v 1.3 2006/02/17 19:37:09 swildner Exp $
27 .\"
28 .Dd April 10, 2000
29 .Dt TWE 4
30 .Os
31 .Sh NAME
32 .Nm twe
33 .Nd 3ware Escalade ATA RAID adapter driver
34 .Sh SYNOPSIS
35 .Cd device pci
36 .Cd device twe
37 .Sh DESCRIPTION
38 The
39 .Nm
40 driver provides support for the Escalade 3W-5x00 and 3W-6x00 series
41 of ATA RAID controllers.
42 These devices support 2, 4 or 8 ATA disk drives
43 and provide RAID0 (striping) and RAID1 (mirroring) functionality.
44 .Sh DIAGNOSTICS
45 .Ss Controller initialisation phase
46 .Bl -diag
47 .It twe%d: microcontroller not ready
48 .Pp
49 The controller's onboard CPU is not reporting that it is ready;
50 this may be due to either a board or system failure.
51 Initialisation has failed.
52 .It twe%d: no attention interrupt
53 .It twe%d: can't drain AEN queue
54 .It twe%d: reset not reported
55 .It twe%d: controller errors detected
56 .It twe%d: can't drain response queue
57 .It twe%d: reset %d failed, trying again
58 .Pp
59 The controller is not responding correctly to
60 the driver's attempts to reset and initialise it.
61 This process is retried several times.
62 .It twe%d: can't initialise controller, giving up
63 .Pp
64 Several attempts to reset and initialise the controller have failed;
65 initialisation has failed
66 and the driver will not attach to this controller.
67 .El
68 .Ss Driver initialisation/shutdown phase
69 .Bl -diag
70 .It twe%d: register window not available
71 .It twe%d: can't allocate register window
72 .It twe%d: can't allocate parent DMA tag
73 .It twe%d: can't allocate interrupt
74 .It twe%d: can't set up interrupt
75 .It twe%d: can't establish configuration hook
76 .Pp
77 A resource allocation error occurred while initialising the driver;
78 initialisation has failed
79 and the driver will not attach to this controller.
80 .It twe%d: can't detect attached units
81 .Pp
82 Fetching the list of attached units failed; initialisation has failed.
83 .It twe%d: error fetching capacity for unit %d
84 .It twe%d: error fetching state for unit %d
85 .It twe%d: error fetching descriptor size for unit %d
86 .It twe%d: error fetching descriptor for unit %d
87 .It twe%d: device_add_child failed
88 .It twe%d: bus_generic_attach returned %d
89 .Pp
90 Creation of the disk devices failed, either due to communications
91 problems with the adapter or due to resource shortage;
92 attachment of one or more units may have been aborted.
93 .El
94 .Ss Operational phase
95 .Bl -diag
96 .It twe%d: command completed - %s
97 .El
98 .Pp
99 A command was reported completed with a warning by the controller.
100 The warning may be one of:
101 .Bl -diag
102 .It redundant/inconsequential request ignored
103 .It failed to write zeroes to LBA 0
104 .It failed to profile TwinStor zones
105 .El
106 .Bl -diag
107 .It twe%d: command failed - %s
108 .El
109 .Pp
110 A command was reported as failed by the controller.
111 The failure message may be one of:
112 .Bl -diag
113 .It aborted due to system command or reconfiguration
114 .It aborted
115 .It access error
116 .It access violation
117 .It device failure
118 .It controller error
119 .It timed out
120 .It invalid unit number
121 .It unit not available
122 .It undefined opcode
123 .It request incompatible with unit
124 .It invalid request
125 .It firmware error, reset requested
126 .Pp
127 The command will be returned to the operating system after a
128 fatal error.
129 .El
130 .Bl -diag
131 .It twe%d: command failed submission - controller wedged
132 .Pp
133 A command could not be delivered to the controller because
134 the controller is unresponsive.
135 .It twe%d: AEN: <%s>
136 .El
137 .Pp
138 The controller has reported a change in status using an AEN
139 (Asynchronous Event Notification).
140 The following AENs may be reported:
141 .Bl -diag
142 .It queue empty
143 .It soft reset
144 .It degraded mirror
145 .It controller error
146 .It rebuild fail
147 .It rebuild done
148 .It incomplete unit
149 .It initialisation done
150 .It unclean shutdown detected
151 .It drive timeout
152 .It drive error
153 .It rebuild started
154 .It aen queue full
155 .Pp
156 AENs are also queued internally for use by management tools.
157 .El
158 .Bl -diag
159 .It twe%d: error polling for signalled AENs
160 .Pp
161 The controller has reported
162 that one or more status messages are ready for the driver,
163 but attempting to fetch one of these has returned an error.
164 .It twe%d: AEN queue overflow, lost AEN <%s>
165 .Pp
166 A status message was retrieved from the controller,
167 but there is no more room to queue it in the driver.
168 The message is lost (but will be printed to the console).
169 .It twe%d: missing expected status bits %s
170 .It twe%d: unexpected status bits %s
171 .Pp
172 A check of the controller's status bits
173 indicates an unexpected condition.
174 .It twe%d: host interrupt
175 .Pp
176 The controller has signalled a host interrupt.
177 This serves an unknown purpose and is ignored.
178 .It twe%d: command interrupt
179 .Pp
180 The controller has signalled a command interrupt.
181 This is not used, and will be disabled.
182 .It twe%d: controller reset in progress...
183 .Pp
184 The controller is being reset by the driver.
185 Typically this is done when the driver has determined that the
186 controller is in an unrecoverable state.
187 .It twe%d: can't reset controller, giving up
188 .Pp
189 The driver has given up on resetting the controller.
190 No further I/O will be handled.
191 .It controller reset done, %d commands restarted
192 .Pp
193 The controller was successfully reset,
194 and outstanding commands were restarted.
195 .El
196 .Sh AUTHORS
197 The
198 .Nm
199 driver and manpage were written by
200 .An Michael Smith
201 .Aq msmith@FreeBSD.org .
202 .Sh BUGS
203 The controller cannot handle I/O transfers
204 that are not aligned to a 512-byte boundary.
205 In order to support raw device access from user-space,
206 the driver will perform alignment fixup on non-aligned data.
207 This process is inefficient,
208 and thus in order to obtain best performance
209 user-space applications accessing the device
210 should do so with aligned buffers.