TWE(4) MidnightBSD Kernel Interfaces Manual TWE(4)


twe — 3ware 5000/6000/7000/8000 series PATA/SATA RAID adapter driver


device pci
device twe


The twe driver provides support for AMCC’s 3ware 5000/6000/7000/8000 series PATA/SATA RAID adapters. These adapters were formerly known as ‘‘3ware Escalade’’.

These devices support 2, 4, 8, or 12 ATA disk drives and provide RAID0 (striping) and RAID1 (mirroring) functionality.


The twe driver supports the following PATA/SATA RAID controllers:

AMCC’s 3ware 5000 series

AMCC’s 3ware 6000 series

AMCC’s 3ware 7000-2

AMCC’s 3ware 7006-2

AMCC’s 3ware 7500-4LP

AMCC’s 3ware 7500-8

AMCC’s 3ware 7500-12

AMCC’s 3ware 7506-4LP

AMCC’s 3ware 7506-8

AMCC’s 3ware 7506-12

AMCC’s 3ware 8006-2LP

AMCC’s 3ware 8500-4LP

AMCC’s 3ware 8500-8

AMCC’s 3ware 8500-12

AMCC’s 3ware 8506-4LP

AMCC’s 3ware 8506-8

AMCC’s 3ware 8506-8MI

AMCC’s 3ware 8506-12

AMCC’s 3ware 8506-12MI


Controller initialisation phase
twe%d: microcontroller not ready 

The controller’s onboard CPU is not reporting that it is ready; this may be due to either a board or system failure. Initialisation has failed.

twe%d: no attention interrupt 
twe%d: can’t drain AEN queue 
twe%d: reset not reported 
twe%d: controller errors detected 
twe%d: can’t drain response queue 
twe%d: reset %d failed, trying again 

The controller is not responding correctly to the driver’s attempts to reset and initialise it. This process is retried several times.

twe%d: can’t initialise controller, giving up 

Several attempts to reset and initialise the controller have failed; initialisation has failed and the driver will not attach to this controller.

Driver initialisation/shutdown phase
twe%d: register window not available 
twe%d: can’t allocate register window 
twe%d: can’t allocate parent DMA tag 
twe%d: can’t allocate interrupt 
twe%d: can’t set up interrupt 
twe%d: can’t establish configuration hook 

A resource allocation error occurred while initialising the driver; initialisation has failed and the driver will not attach to this controller.

twe%d: can’t detect attached units 

Fetching the list of attached units failed; initialisation has failed.

twe%d: error fetching capacity for unit %d 
twe%d: error fetching state for unit %d 
twe%d: error fetching descriptor size for unit %d 
twe%d: error fetching descriptor for unit %d 
twe%d: device_add_child failed 
twe%d: bus_generic_attach returned %d 

Creation of the disk devices failed, either due to communication problems with the adapter or due to resource shortage; attachment of one or more units may have been aborted.

Operational phase
twe%d: command completed - %s 

A command was reported completed with a warning by the controller. The warning may be one of:

redundant/inconsequential request ignored 
failed to write zeroes to LBA 0 
failed to profile TwinStor zones 

twe%d: command failed - %s 

A command was reported as failed by the controller. The failure message may be one of:

aborted due to system command or reconfiguration 
access error 
access violation 
device failure 
controller error 
timed out 
invalid unit number 
unit not available 
undefined opcode 
request incompatible with unit 
invalid request 
firmware error, reset requested 

The command will be returned to the operating system after a fatal error.

twe%d: command failed submission - controller wedged 

A command could not be delivered to the controller because the controller is unresponsive.

twe%d: AEN: <%s> 

The controller has reported a change in status using an AEN (Asynchronous Event Notification). The following AENs may be reported:

queue empty 
soft reset 
degraded mirror 
controller error 
rebuild fail 
rebuild done 
incomplete unit 
initialisation done 
unclean shutdown detected 
drive timeout 
drive error 
rebuild started 
aen queue full 

AENs are also queued internally for use by management tools.

twe%d: error polling for signalled AENs 

The controller has reported that one or more status messages are ready for the driver, but attempting to fetch one of these has returned an error.

twe%d: AEN queue overflow, lost AEN <%s> 

A status message was retrieved from the controller, but there is no more room to queue it in the driver. The message is lost (but will be printed to the console).

twe%d: missing expected status bits %s 
twe%d: unexpected status bits %s 

A check of the controller’s status bits indicates an unexpected condition.

twe%d: host interrupt 

The controller has signalled a host interrupt. This serves an unknown purpose and is ignored.

twe%d: command interrupt 

The controller has signalled a command interrupt. This is not used, and will be disabled.

twe%d: controller reset in progress... 

The controller is being reset by the driver. Typically this is done when the driver has determined that the controller is in an unrecoverable state.

twe%d: can’t reset controller, giving up 

The driver has given up on resetting the controller. No further I/O will be handled.

controller reset done, %d commands restarted 

The controller was successfully reset, and outstanding commands were restarted.


The twe driver and manual page were written by Michael Smith 〈〉.

Extensive work done on the driver by Vinod Kashyap 〈〉 and Paul Saab 〈〉.


The controller cannot handle I/O transfers that are not aligned to a 512-byte boundary. In order to support raw device access from user-space, the driver will perform alignment fixup on non-aligned data. This process is inefficient, and thus in order to obtain best performance user-space applications accessing the device should do so with aligned buffers.

MidnightBSD 0.3 August 15, 2004 MidnightBSD 0.3