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 38The 39.Nm 40driver provides support for the Escalade 3W-5x00 and 3W-6x00 series 41of ATA RAID controllers. 42These devices support 2, 4 or 8 ATA disk drives 43and 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 49The controller's onboard CPU is not reporting that it is ready; 50this may be due to either a board or system failure. 51Initialisation 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 59The controller is not responding correctly to 60the driver's attempts to reset and initialise it. 61This process is retried several times. 62.It twe%d: can't initialise controller, giving up 63.Pp 64Several attempts to reset and initialise the controller have failed; 65initialisation has failed 66and 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 77A resource allocation error occurred while initialising the driver; 78initialisation has failed 79and the driver will not attach to this controller. 80.It twe%d: can't detect attached units 81.Pp 82Fetching 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 90Creation of the disk devices failed, either due to communications 91problems with the adapter or due to resource shortage; 92attachment 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 99A command was reported completed with a warning by the controller. 100The 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 110A command was reported as failed by the controller. 111The 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 127The command will be returned to the operating system after a 128fatal error. 129.El 130.Bl -diag 131.It twe%d: command failed submission - controller wedged 132.Pp 133A command could not be delivered to the controller because 134the controller is unresponsive. 135.It twe%d: AEN: <%s> 136.El 137.Pp 138The controller has reported a change in status using an AEN 139(Asynchronous Event Notification). 140The 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 156AENs 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 161The controller has reported 162that one or more status messages are ready for the driver, 163but attempting to fetch one of these has returned an error. 164.It twe%d: AEN queue overflow, lost AEN <%s> 165.Pp 166A status message was retrieved from the controller, 167but there is no more room to queue it in the driver. 168The 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 172A check of the controller's status bits 173indicates an unexpected condition. 174.It twe%d: host interrupt 175.Pp 176The controller has signalled a host interrupt. 177This serves an unknown purpose and is ignored. 178.It twe%d: command interrupt 179.Pp 180The controller has signalled a command interrupt. 181This is not used, and will be disabled. 182.It twe%d: controller reset in progress... 183.Pp 184The controller is being reset by the driver. 185Typically this is done when the driver has determined that the 186controller is in an unrecoverable state. 187.It twe%d: can't reset controller, giving up 188.Pp 189The driver has given up on resetting the controller. 190No further I/O will be handled. 191.It controller reset done, %d commands restarted 192.Pp 193The controller was successfully reset, 194and outstanding commands were restarted. 195.El 196.Sh AUTHORS 197The 198.Nm 199driver and manpage were written by 200.An Michael Smith 201.Aq msmith@FreeBSD.org . 202.Sh BUGS 203The controller cannot handle I/O transfers 204that are not aligned to a 512-byte boundary. 205In order to support raw device access from user-space, 206the driver will perform alignment fixup on non-aligned data. 207This process is inefficient, 208and thus in order to obtain best performance 209user-space applications accessing the device 210should do so with aligned buffers. 211