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