+.TP
+panic: udaslave
+No command packets were available while the driver was looking
+for disk drives. The controller is not extending enough credits
+to use the drives.
+.TP
+uda%d: no response to Get Unit Status request
+A disk drive was found, but did not respond to a status request.
+This is either a hardware problem or someone pulling unit number
+plugs very fast.
+.TP
+uda%d: unit %d off line
+While searching for drives, the controller found one that
+seems to be manually disabled. It is ignored.
+.TP
+uda%d: unable to get unit status
+Something went wrong while trying to determine the status of
+a disk drive. This is followed by an error detail.
+.TP
+uda%d: unit %d, next %d
+This probably never happens, but I wanted to know if it did. I
+have no idea what one should do about it.
+.TP
+uda%d: cannot handle unit number %d (max is %d)
+The controller found a drive whose unit number is too large.
+Valid unit numbers are those in the range [0..7].
+.TP
+uda%d: unit %d (media ID `%s') is of unknown type %d; ignored
+The controller found a drive whose type is not known, and thus has
+no partitioning. The drive has been ignored. You can add the type
+to the udatypes[] table, now that you know what it is: The media
+ID will be something like `DU RA25'.
+.TP
+uda%d: uballoc map failed
+Unibus resource map allocation failed during initialisation. This
+can only happen if you have 496 devices on a Unibus.
+.TP
+uda%d: timeout during init
+The controller did not initialise within ten seconds. A hardware
+problem, but it sometimes goes away if you try again.
+.TP
+uda%d: init failed, sa=%b
+The controller refused to initalise.
+.TP
+uda%d: controller hung
+The controller never finished initialisation. Retrying may sometimes
+fix it.
+.TP
+ra%d: drive will not come on line
+The drive will not come on line, probably because it is spun down.
+This should be preceded by a message giving details as to why the
+drive stayed off line.
+.TP
+uda%d: still hung
+When the controller hangs, the driver occasionally tries to reinitialise
+it. This means it just tried, without success.
+.TP
+panic: udastart: bp==NULL
+A bug in the driver has put an empty drive queue on a controller queue.
+.TP
+uda%d: command ring too small
+If you increase NCMDL2, you may see a performance improvement.
+(See /sys/vaxuba/uda.c.)
+.TP
+panic: udastart
+A drive was found marked for status or on-line functions while performing
+status or on-line functions. This indicates a bug in the driver.
+.TP
+uda%d: controller error, sa=%b
+The controller reported an error. The driver will reset it and retry
+pending I/O.
+.TP
+uda%d: stray intr
+The controller interrupted when it should have stayed quiet. The
+interrupt has been ignored.
+.TP
+uda%d: init step %d failed, sa=%b
+The controller reported an error during the named initialisation step.
+The driver will retry initialisation later.
+.TP
+uda%d: version %d model %d
+An informational message giving the revision level of the controller.
+.TP
+uda%d: DMA burst size set to %d
+An informational message showing the DMA burst size, in words.
+.TP
+panic: udaintr
+Indicates a bug in the generic MSCP code.
+.TP
+uda%d: driver bug, state %d
+The driver has a bogus value for the controller state. Something
+is quite wrong. This is immediately followed by a `panic: udastate'.
+.TP
+uda%d: purge bdp %d
+A benign message tracing BDP purges. I have been trying to figure
+out what BDP purges are for. You might want to comment out this
+call to log() in /sys/vaxuba/uda.c.
+.TP
+.RI "uda%d: SETCTLRC failed: " detail
+The Set Controller Characteristics command (the last part of the
+controller initialisation sequence) failed. The
+.I detail
+message tells why.
+.TP
+.RI "uda%d: attempt to bring ra%d on line failed: " detail
+The drive could not be brought on line. The
+.I detail
+message tells why.
+.TP
+uda%d: ra%d: unknown type %d
+The type index of the named drive is not known to the driver, so the
+drive will be ignored.
+.TP
+ra%d: changed types! was %s
+A drive somehow changed from one kind to another, e.g., from an RA80
+to an RA60. The driver believes the new type.
+.TP
+ra%d: %s, size = %d sectors
+The named drive is of the given type, and has that many sectors of
+user-file area. This is printed during configuration.
+.TP
+.RI "uda%d: attempt to get status for ra%d failed: " detail
+A status request failed. The
+.I detail
+message should tell why.
+.TP
+ra%d: unit %d, nspt %d, group %d, ntpc %d, rctsize %d,
+.br
+.ti -5
+nrpt %d, nrct %d
+.br
+Information about the geometry of the named drive. This is not
+used by the driver, but can one setting up
+.I disktab
+entries, e.g. Note that the sectors per track, group, and tracks per
+cylinder values are those after bad blocking is accounted for, and will
+differ slightly from the actual hardware setup. This message also
+reports the MSCP unit number for the drive. Errors tend to include
+only the MSCP unit number, rather than the drive number, since that
+is all the driver can tell at the time.
+.TP
+ra%d: bad block report: %d
+The drive has reported the given block as bad. If there are multiple
+bad blocks, the drive will report only the first; in this case this
+message will be followed by `+ others'. Get DEC to forward the
+block with EVRLK.
+.TP
+ra%d: serious exception reported
+I have no idea what this really means.
+.TP
+panic: udareplace
+The controller reported completion of a REPLACE operation. The
+driver never issues any REPLACEs, so something is wrong.
+.TP
+panic: udabb
+The controller reported completion of bad block related I/O. The
+driver never issues any such, so something is wrong.
+.TP
+uda%d: lost interrupt
+The controller has gone out to lunch, and is being reset to try to bring
+it back.
+.TP
+panic: mscp_go: AEB_MAX_BP too small
+You defined AVOID_EMULEX_BUG and increased NCMDL2 and Emulex has
+new firmware. Raise AEB_MAX_BP or turn off AVOID_EMULEX_BUG.
+.TP
+uda%d: unit %d: unknown message type 0x%x ignored
+The controller responded with a mysterious message type. See
+/sys/vax/mscp.h for a list of known message types. This is probably
+a controller hardware problem.
+.TP
+uda%d: unit %d out of range
+The disk drive unit number (the unit plug) is higher than the
+maximum number the driver allows (currently 7).
+.TP
+uda%d: unit %d not configured, \fImessage\fP ignored
+The named disk drive has announced its presence to the controller,
+but was not, or cannot now be, configured into the running system.
+.I Message
+is one of `available attention' (an `I am here' message) or
+`stray response op 0x%x status 0x%x' (anything else).
+.TP
+ra%d: bad lbn (%d)?
+The drive has reported an invalid command error, probably due to an
+invalid block number. If the lbn value is very much greater than the
+size reported by the drive, this is the problem. It is probably due to
+an improperly configured partition table. Other invalid commands
+indicate a bug in the driver, or hardware trouble.
+.TP
+ra%d: duplicate ONLINE ignored
+The drive has come on-line while already on-line. This condition
+can probably be ignored (and has been).
+.TP
+ra%d: io done, but no buffer?
+Hardware trouble, or a bug; the drive has finished an I/O request,
+but the response has an invalid (zero) command reference number.
+.TP
+Emulex SC41/MS screwup: uda%d, got %d correct, then
+.br
+.ti -5
+changed 0x%x to 0x%x
+.br
+You turned on AVOID_EMULEX_BUG, and the driver successfully
+avoided the bug. The number of correctly-handled requests is
+reported, along with the expected and actual values relating to
+the bug being avoided.
+.TP
+panic: unrecoverable Emulex screwup
+You turned on AVOID_EMULEX_BUG, but Emulex was too clever and
+avoided the avoidance. Try turning on MSCP_PARANOIA instead.
+.TP
+uda%d: bad response packet ignored
+You turned on MSCP_PARANOIA, and the driver caught the controller in
+a lie. The lie has been ignored, and the controller will soon be
+reset (after a `lost' interrupt). This is followed by a hex dump of
+the offending packet.
+.TP
+ra%d: bogus REPLACE end
+The drive has reported finishing a bad sector replacement, but the
+driver never issues bad sector replacement commands. The report
+is ignored. This is likely a hardware problem.
+.TP
+ra%d: unknown opcode 0x%x status 0x%x ignored
+The drive has reported something that the driver cannot understand.
+Perhaps DEC has been inventive, or perhaps your hardware is ill.
+This is followed by a hex dump of the offending packet.
+.TP
+uda%d: %s error datagram
+The controller has reported some kind of error, either `hard'
+(unrecoverable) or `soft' (recoverable). If the controller is going on
+(attempting to fix the problem), this message includes the remark
+`(continuing)'. Emulex controllers wrongly claim that all soft errors
+are hard errors. This message may be followed by
+one of the following 5 messages, depending on its type, and will always
+be followed by a failure detail message (also listed below).
+.RS
+.TP
+memory addr 0x%x
+A host memory access error; this is the address that could not be
+read.
+.TP
+unit %d: level %d retry %d, %s %d
+A typical disk error; the retry count and error recovery levels are
+printed, along with the block type (`lbn', or logical block; or `rbn',
+or replacement block) and number. If the string is something else, DEC
+has been clever, or your hardware has gone to Australia for vacation
+(unless you live there; then it might be in New Zealand, or Brazil).
+.TP
+unit %d: %s %d
+Also a disk error, but an `SDI' error, whatever that is. (I doubt
+it has anything to do with Ronald Reagan.) This lists the block
+type (`lbn' or `rbn') and number.
+.TP
+unit %d: small disk error, cyl %d
+Yet another kind of disk error, but for small disks. (`That's what
+it says, guv'nor. Dunnask me what it means.')
+.TP
+unit %d: unknown error, format 0x%x
+A mysterious error: the given format code is not known.
+.RE