MLX(4) FreeBSD Kernel Interfaces Manual MLX(4)


mlxMylex DAC-family RAID driver


To compile this driver into the kernel, place the following lines in your kernel configuration file:

device pci
device mlx

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):



The mlx driver provides support for Mylex DAC-family PCI to SCSI RAID controllers, including versions relabeled by Digital/Compaq.


Controllers supported by the mlx driver include:

  • Mylex DAC960P
  • Mylex DAC960PD / DEC KZPSC (Fast Wide)
  • Mylex DAC960PDU
  • Mylex DAC960PL
  • Mylex DAC960PJ
  • Mylex DAC960PG
  • Mylex DAC960PU / DEC PZPAC (Ultra Wide)
  • Mylex AcceleRAID 150 (DAC960PRL)
  • Mylex AcceleRAID 250 (DAC960PTL1)
  • Mylex eXtremeRAID 1100 (DAC1164P)
  • RAIDarray 230 controllers, aka the Ultra-SCSI DEC KZPAC-AA (1-ch, 4MB cache), KZPAC-CA (3-ch, 4MB), KZPAC-CB (3-ch, 8MB cache)

All major firmware revisions (2.x, 3.x, 4.x and 5.x) are supported, however it is always advisable to upgrade to the most recent firmware available for the controller.

Compatible Mylex controllers not listed should work, but have not been verified.


Controller initialisation phase

mlx%d: controller initialisation in progress...
mlx%d: initialisation complete

The controller firmware is performing/has completed initialisation.

mlx%d: physical drive %d:%d not responding

The drive at channel:target is not responding; it may have failed or been removed.

mlx%d: spinning up drives...

Drive startup is in progress; this may take several minutes.

mlx%d: configuration checksum error

The array configuration has become corrupted.

mlx%d: mirror race recovery in progress
mlx%d: mirror race on a critical system drive
mlx%d: mirror race recovery failed

These error codes are undocumented.

mlx%d: physical drive %d:%d COD mismatch

Configuration data on the drive at channel:target does not match the rest of the array.

mlx%d: system drive installation aborted

Errors occurred preventing one or more system drives from being configured.

mlx%d: new controller configuration found

The controller has detected a configuration on disk which supersedes the configuration in its nonvolatile memory. It will reset and come up with the new configuration.


Firmware detected a fatal memory error; the driver will not attempt to attach to this controller.

mlx%d: unknown firmware initialisation error %x:%x:%x

An unknown error occurred during initialisation; it will be ignored.

Driver initialisation/shutdown phase:

mlx%d: can't allocate scatter/gather DMA tag
mlx%d: can't allocate buffer DMA tag
mlx%d: can't allocate s/g table
mlx%d: can't make initial s/g list mapping
mlx%d: can't make permanent s/g list mapping
mlx%d: can't allocate interrupt
mlx%d: can't set up interrupt

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

mlx%d: error fetching drive status

The current status of all system drives could not be fetched; attachment of system drives will be aborted.

mlx%d: device_add_child failed
mlx%d: bus_generic_attach returned %d

Creation of the system drive instances failed; attachment of one or more system drives may have been aborted.

mlxd%d: detaching...

The indicated system drive is being detached.

mlxd%d: still open, can't detach

The indicated system drive is still open or mounted; the controller cannot be detached.

mlx%d: flushing cache...

The controller cache is being flushed prior to detach or shutdown.

Operational diagnostics:

mlx%d: ENQUIRY failed - %s
mlx%d: ENQUIRY2 failed
mlx%d: ENQUIRY_OLD failed
mlx%d: FLUSH failed - %s
mlx%d: CHECK ASYNC failed - %s
mlx%d: REBUILD ASYNC failed - %s
mlx%d: command failed - %s

The controller rejected a command for the reason given.

mlx%d: I/O beyond end of unit (%u,%d > %u)
mlx%d: I/O error - %s

An I/O error was reported by the controller.

mlx%d: periodic enquiry failed - %s

An attempt to poll the controller for status failed for the reason given.

mlx%d: mlx_periodic_enquiry: unknown command %x

The periodic status poll has issued a command which has become corrupted.

mlxd%d: drive offline
mlxd%d: drive online
mlxd%d: drive critical

The system disk indicated has changed state.

mlx%d: physical drive %d:%d reset
mlx%d: physical drive %d:%d killed %s
mlx%d: physical drive %d:%d error log: sense = %d asc = %x asq = %x
mlx%d: info %4D csi %4D

The drive at channel:target has been reset, killed for the given reason, or experienced a SCSI error.

mlx%d: unknown log message type %x
mlx%d: error reading message log - %s

An error occurred while trying to read the controller's message log.

mlxd%d: consistency check started
mlx%d: consistency check completed

A user-initiated consistency check has started/completed.

mlx%d: drive rebuild started for %d:%d
mlx%d: drive rebuild completed

A user-initiated physical drive rebuild has started/completed.

mlx%d: background check/rebuild operation started
mlx%d: background check/rebuild operation completed

An automatic system drive consistency check or physical drive rebuild has started/completed.

mlx%d: channel %d pausing for %d seconds
mlx%d: channel %d resuming
mlx%d: pause command failed - %s
mlx%d: pause failed for channel %d
mlx%d: resume command failed - %s
mlx%d: resume failed for channel %d

Controller/channel pause operation notification. (Channel pause is not currently supported on any controller.)

mlx%d: controller wedged (not taking commands)

The controller is not responding to attempts to submit new commands.

mlx%d: duplicate done event for slot %d
mlx%d: done event for nonbusy slot %d

Corruption has occurred in either the controller's onboard list of commands or in the driver.




The mlx driver was written by Michael Smith <msmith@FreeBSD.org>.

This manual page was written by Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org> and Michael Smith <msmith@FreeBSD.org>.


The driver does not yet support EISA adapters. The DEC KZPSC has insufficient flash ROM to hold any reasonably recent firmware. This has caused problems for this driver.

The driver does not yet support the version 6.x firmware as found in the AcceleRAID 352 and eXtremeRAID 2000 and 3000 products.

August 10, 2004 FreeBSD