1*61600Sbostic.\" Copyright (c) 1980, 1987, 1991, 1993 2*61600Sbostic.\" The Regents of the University of California. All rights reserved. 320628Smckusick.\" 447674Scael.\" %sccs.include.redist.man% 520628Smckusick.\" 6*61600Sbostic.\" @(#)uda.4 8.1 (Berkeley) 06/05/93 747674Scael.\" 847674Scael.Dd 947674Scael.Dt UDA 4 vax 1047674Scael.Os BSD 4 1147674Scael.Sh NAME 1247674Scael.Nm uda 1347674Scael.Nd 1447674Scael.Tn UDA50 1547674Scaeldisk controller interface 1647674Scael.Sh SYNOPSIS 1747674Scael.Cd "controller uda0 at uba0 csr 0172150 vector udaintr" 1847674Scael.Cd "disk ra0 at uda0 drive 0" 1947674Scael.Cd "options MSCP_PARANOIA" 2047674Scael.Sh DESCRIPTION 2147674ScaelThis is a driver for the 2247674Scael.Tn DEC UDA50 2347674Scaeldisk controller and other 2447674Scaelcompatible controllers. The 2547674Scael.Tn UDA50 2647674Scaelcommunicates with the host through 2747674Scaela packet protocol known as the Mass Storage Control Protocol 2847674Scael.Pq Tn MSCP . 2920629SmckusickConsult the file 3047674Scael.Aq Pa vax/mscp.h 3120629Smckusickfor a detailed description of this protocol. 3247674Scael.Pp 3333442SbosticThe 3447674Scael.Nm uda 3547674Scaeldriver 3647674Scaelis a typical block-device disk driver; see 3747674Scael.Xr physio 4 3847674Scaelfor a description of block 3947674Scael.Tn I/O . 4047674ScaelThe script 4147674Scael.Xr MAKEDEV 8 4247674Scaelshould be used to create the 4347674Scael.Nm uda 4447674Scaelspecial files; should a special 4547674Scaelfile need to be created by hand, consult 4647674Scael.Xr mknod 8 . 4747674Scael.Pp 4847674ScaelThe 4947674Scael.Dv MSCP_PARANOIA 5033442Sbosticoption enables runtime checking on all transfer completion responses 5147674Scaelfrom the controller. This increases disk 5247674Scael.Tn I/O 5347674Scaeloverhead and may 5433442Sbosticbe undesirable on slow machines, but is otherwise recommended. 5547674Scael.Pp 5634730SkarelsThe first sector of each disk contains both a first-stage bootstrap program 5734730Skarelsand a disk label containing geometry information and partition layouts (see 5847674Scael.Xr disklabel 5 ) . 5934730SkarelsThis sector is normally write-protected, and disk-to-disk copies should 6034730Skarelsavoid copying this sector. 6134730SkarelsThe label may be updated with 6247674Scael.Xr disklabel 8 , 6334730Skarelswhich can also be used to write-enable and write-disable the sector. 6434730SkarelsThe next 15 sectors contain a second-stage bootstrap program. 6547674Scael.Sh DISK SUPPORT 6634730SkarelsDuring autoconfiguration, 6734730Skarelsas well as when a drive is opened after all partitions are closed, 6834730Skarelsthe first sector of the drive is examined for a disk label. 6934730SkarelsIf a label is found, the geometry of the drive and the partition tables 7034730Skarelsare taken from it. 7134730SkarelsIf no label is found, 7234730Skarelsthe driver configures the type of each drive when it is first 7333442Sbosticencountered. A default partition table in the driver is used for each type 7433442Sbosticof disk when a pack is not labelled. The origin and size 7533442Sbostic(in sectors) of the default pseudo-disks on each 7632527Sbosticdrive are shown below. Not all partitions begin on cylinder 7732527Sbosticboundaries, as on other drives, because previous drivers used one 7832527Sbosticpartition table for all drive types. Variants of the partition tables 7932527Sbosticare common; check the driver and the file 8047674Scael.Pa /etc/disktab 8147674Scael.Pq Xr disktab 5 8228257Skarelsfor other possibilities. 8347674Scael.Pp 8447674ScaelSpecial file names begin with 8547674Scael.Sq Li ra 8647674Scaeland 8747674Scael.Sq Li rra 8847674Scaelfor the block and character files respectively. The second 8947674Scaelcomponent of the name, a drive unit number in the range of zero to 9047674Scaelseven, is represented by a 9147674Scael.Sq Li ? 9247674Scaelin the disk layouts below. The last component of the name is the 9347674Scaelfile system partition 9447674Scaeldesignated 9547674Scaelby a letter from 9647674Scael.Sq Li a 9747674Scaelto 9847674Scael.Sq Li h 9947674Scaeland which corresponds to a minor device number set: zero to seven, 10047674Scaeleight to 15, 16 to 23 and so forth for drive zero, drive two and drive 10147674Scaelthree respectively, (see 10247674Scael.Xr physio 4) . 10347674ScaelThe location and size (in sectors) of the partitions: 10447674Scael.Bl -column header diskx undefined length 10547674Scael.Tn RA60 No partitions 10647674Scael.Sy disk start length 10720629Smckusick ra?a 0 15884 10820629Smckusick ra?b 15884 33440 10920629Smckusick ra?c 0 400176 11028257Skarels ra?d 49324 82080 same as 4.2BSD ra?g 11128257Skarels ra?e 131404 268772 same as 4.2BSD ra?h 11228257Skarels ra?f 49324 350852 11328257Skarels ra?g 242606 157570 11428257Skarels ra?h 49324 193282 11547674Scael 11647674Scael.Tn RA70 No partitions 11747674Scael.Sy disk start length 11833442Sbostic ra?a 0 15884 11933442Sbostic ra?b 15972 33440 12033442Sbostic ra?c 0 547041 12133442Sbostic ra?d 34122 15884 12233442Sbostic ra?e 357192 55936 12333442Sbostic ra?f 413457 133584 12433442Sbostic ra?g 341220 205821 12533442Sbostic ra?h 49731 29136 12647674Scael 12747674Scael.Tn RA80 No partitions 12847674Scael.Sy disk start length 12920629Smckusick ra?a 0 15884 13020629Smckusick ra?b 15884 33440 13120629Smckusick ra?c 0 242606 13228257Skarels ra?e 49324 193282 same as old Berkeley ra?g 13328257Skarels ra?f 49324 82080 same as 4.2BSD ra?g 13428257Skarels ra?g 49910 192696 13528257Skarels ra?h 131404 111202 same as 4.2BSD 13647674Scael 13747674Scael.Tn RA81 No partitions 13847674Scael.Sy disk start length 13920629Smckusick ra?a 0 15884 14028257Skarels ra?b 16422 66880 14120629Smckusick ra?c 0 891072 14228257Skarels ra?d 375564 15884 14328257Skarels ra?e 391986 307200 14428257Skarels ra?f 699720 191352 14528257Skarels ra?g 375564 515508 14628257Skarels ra?h 83538 291346 14747674Scael 14847674Scael.Tn RA81 No partitions with 4.2BSD-compatible partitions 14947674Scael.Sy disk start length 15028257Skarels ra?a 0 15884 15128257Skarels ra?b 16422 66880 15228257Skarels ra?c 0 891072 15328257Skarels ra?d 49324 82080 same as 4.2BSD ra?g 15428257Skarels ra?e 131404 759668 same as 4.2BSD ra?h 15528257Skarels ra?f 412490 478582 same as 4.2BSD ra?f 15628257Skarels ra?g 375564 515508 15728257Skarels ra?h 83538 291346 15847674Scael 15947674Scael.Tn RA82 No partitions 16047674Scael.Sy disk start length 16133442Sbostic ra?a 0 15884 16233442Sbostic ra?b 16245 66880 16333442Sbostic ra?c 0 1135554 16433442Sbostic ra?d 375345 15884 16533442Sbostic ra?e 391590 307200 16633442Sbostic ra?f 669390 466164 16733442Sbostic ra?g 375345 760209 16833442Sbostic ra?h 83790 291346 16947674Scael.El 17047674Scael.Pp 17132527SbosticThe ra?a partition is normally used for the root file system, the ra?b 17232527Sbosticpartition as a paging area, and the ra?c partition for pack-pack 17332527Sbosticcopying (it maps the entire disk). 17447674Scael.Sh FILES 17547674Scael.Bl -tag -width /dev/rra[0-9][a-f] -compact 17647674Scael.It Pa /dev/ra[0-9][a-f] 17747674Scael.It Pa /dev/rra[0-9][a-f] 17847674Scael.El 17947674Scael.Sh DIAGNOSTICS 18047674Scael.Bl -diag 18147674Scael.It "panic: udaslave" 18232527SbosticNo command packets were available while the driver was looking 18332527Sbosticfor disk drives. The controller is not extending enough credits 18432527Sbosticto use the drives. 18547674Scael.Pp 18647674Scael.It "uda%d: no response to Get Unit Status request" 18732527SbosticA disk drive was found, but did not respond to a status request. 18832527SbosticThis is either a hardware problem or someone pulling unit number 18932527Sbosticplugs very fast. 19047674Scael.Pp 19147674Scael.It "uda%d: unit %d off line" 19232527SbosticWhile searching for drives, the controller found one that 19332527Sbosticseems to be manually disabled. It is ignored. 19447674Scael.Pp 19547674Scael.It "uda%d: unable to get unit status" 19632527SbosticSomething went wrong while trying to determine the status of 19732527Sbostica disk drive. This is followed by an error detail. 19847674Scael.Pp 19947674Scael.It uda%d: unit %d, next %d 20032527SbosticThis probably never happens, but I wanted to know if it did. I 20132527Sbostichave no idea what one should do about it. 20247674Scael.Pp 20347674Scael.It "uda%d: cannot handle unit number %d (max is %d)" 20432527SbosticThe controller found a drive whose unit number is too large. 20532527SbosticValid unit numbers are those in the range [0..7]. 20647674Scael.Pp 20747674Scael.It "ra%d: don't have a partition table for %s; using (s,t,c)=(%d,%d,%d)" 20833442SbosticThe controller found a drive whose media identifier (e.g. `RA 25') 20933442Sbosticdoes not have a default partition table. A temporary partition 21033442Sbostictable containing only an `a' partition has been created covering 21133442Sbosticthe entire disk, which has the indicated numbers of sectors per 21233442Sbostictrack (s), tracks per cylinder (t), and total cylinders (c). 21333442SbosticGive the pack a label with the 21447674Scael.Xr disklabel 21533442Sbosticutility. 21647674Scael.Pp 21747674Scael.It "uda%d: uballoc map failed" 21832527SbosticUnibus resource map allocation failed during initialisation. This 21932527Sbosticcan only happen if you have 496 devices on a Unibus. 22047674Scael.Pp 22147674Scael.It uda%d: timeout during init 22232527SbosticThe controller did not initialise within ten seconds. A hardware 22332527Sbosticproblem, but it sometimes goes away if you try again. 22447674Scael.Pp 22547674Scael.It uda%d: init failed, sa=%b 22632527SbosticThe controller refused to initalise. 22747674Scael.Pp 22847674Scael.It uda%d: controller hung 22932527SbosticThe controller never finished initialisation. Retrying may sometimes 23032527Sbosticfix it. 23147674Scael.Pp 23247674Scael.It ra%d: drive will not come on line 23332527SbosticThe drive will not come on line, probably because it is spun down. 23432527SbosticThis should be preceded by a message giving details as to why the 23532527Sbosticdrive stayed off line. 23647674Scael.Pp 23747674Scael.It uda%d: still hung 23832527SbosticWhen the controller hangs, the driver occasionally tries to reinitialise 23932527Sbosticit. This means it just tried, without success. 24047674Scael.Pp 24147674Scael.It panic: udastart: bp==NULL 24232527SbosticA bug in the driver has put an empty drive queue on a controller queue. 24347674Scael.Pp 24447674Scael.It uda%d: command ring too small 24547674ScaelIf you increase 24647674Scael.Dv NCMDL2 , 24747674Scaelyou may see a performance improvement. 24847674Scael(See 24947674Scael.Pa /sys/vaxuba/uda.c . ) 25047674Scael.Pp 25147674Scael.It panic: udastart 25232527SbosticA drive was found marked for status or on-line functions while performing 25332527Sbosticstatus or on-line functions. This indicates a bug in the driver. 25447674Scael.Pp 25547674Scael.It "uda%d: controller error, sa=0%o (%s)" 25633442SbosticThe controller reported an error. The error code is printed in 25733442Sbosticoctal, along with a short description if the code is known (see the 25847674Scael.%T UDA50 Maintenance Guide , 25947674Scael.Tn DEC 26047674Scaelpart number 26147674Scael.Tn AA-M185B-TC , 26247674Scaelpp. 18-22). 26333442SbosticIf this occurs during normal 26447674Scaeloperation, the driver will reset it and retry pending 26547674Scael.Tn I/O . 26647674ScaelIf 26733442Sbosticit occurs during configuration, the controller may be ignored. 26847674Scael.Pp 26947674Scael.It uda%d: stray intr 27032527SbosticThe controller interrupted when it should have stayed quiet. The 27132527Sbosticinterrupt has been ignored. 27247674Scael.Pp 27347674Scael.It "uda%d: init step %d failed, sa=%b" 27432527SbosticThe controller reported an error during the named initialisation step. 27532527SbosticThe driver will retry initialisation later. 27647674Scael.Pp 27747674Scael.It uda%d: version %d model %d 27832527SbosticAn informational message giving the revision level of the controller. 27947674Scael.Pp 28047674Scael.It uda%d: DMA burst size set to %d 28147674ScaelAn informational message showing the 28247674Scael.Tn DMA 28347674Scaelburst size, in words. 28447674Scael.Pp 28547674Scael.It panic: udaintr 28647674ScaelIndicates a bug in the generic 28747674Scael.Tn MSCP 28847674Scaelcode. 28947674Scael.Pp 29047674Scael.It uda%d: driver bug, state %d 29132527SbosticThe driver has a bogus value for the controller state. Something 29232527Sbosticis quite wrong. This is immediately followed by a `panic: udastate'. 29347674Scael.Pp 29447674Scael.It uda%d: purge bdp %d 29532527SbosticA benign message tracing BDP purges. I have been trying to figure 29632527Sbosticout what BDP purges are for. You might want to comment out this 29732527Sbosticcall to log() in /sys/vaxuba/uda.c. 29847674Scael.Pp 29947674Scael.It uda%d: SETCTLRC failed: `detail' 30032527SbosticThe Set Controller Characteristics command (the last part of the 30132527Sbosticcontroller initialisation sequence) failed. The 30247674Scael.Em detail 30332527Sbosticmessage tells why. 30447674Scael.Pp 30547674Scael.It "uda%d: attempt to bring ra%d on line failed: `detail'" 30632527SbosticThe drive could not be brought on line. The 30747674Scael.Em detail 30832527Sbosticmessage tells why. 30947674Scael.Pp 31047674Scael.It uda%d: ra%d: unknown type %d 31132527SbosticThe type index of the named drive is not known to the driver, so the 31232527Sbosticdrive will be ignored. 31347674Scael.Pp 31447674Scael.It "ra%d: changed types! was %d now %d" 31547674ScaelA drive somehow changed from one kind to another, e.g., from an 31647674Scael.Tn RA80 31747674Scaelto an 31847674Scael.Tn RA60 . 31947674ScaelThe numbers printed are the encoded media identifiers (see 32047674Scael.Ao Pa vax/mscp.h Ac 32133442Sbosticfor the encoding). 32233442SbosticThe driver believes the new type. 32347674Scael.Pp 32447674Scael.It "ra%d: uda%d, unit %d, size = %d sectors" 32533442SbosticThe named drive is on the indicated controller as the given unit, 32633442Sbosticand has that many sectors of user-file area. This is printed 32733442Sbosticduring configuration. 32847674Scael.Pp 32947674Scael.It "uda%d: attempt to get status for ra%d failed: `detail'" 33032527SbosticA status request failed. The 33147674Scael.Em detail 33232527Sbosticmessage should tell why. 33347674Scael.Pp 33447674Scael.It ra%d: bad block report: %d 33532527SbosticThe drive has reported the given block as bad. If there are multiple 33632527Sbosticbad blocks, the drive will report only the first; in this case this 33747674Scaelmessage will be followed by `+ others'. Get 33847674Scael.Tn DEC 33947674Scaelto forward the 34047674Scaelblock with 34147674Scael.Tn EVRLK . 34247674Scael.Pp 34347674Scael.It ra%d: serious exception reported 34432527SbosticI have no idea what this really means. 34547674Scael.Pp 34647674Scael.It panic: udareplace 34747674ScaelThe controller reported completion of a 34847674Scael.Tn REPLACE 34947674Scaeloperation. The 35047674Scaeldriver never issues any 35147674Scael.Tn REPLACE Ns s , 35247674Scaelso something is wrong. 35347674Scael.Pp 35447674Scael.It panic: udabb 35547674ScaelThe controller reported completion of bad block related 35647674Scael.Tn I/O . 35747674ScaelThe 35832527Sbosticdriver never issues any such, so something is wrong. 35947674Scael.Pp 36047674Scael.It uda%d: lost interrupt 36132527SbosticThe controller has gone out to lunch, and is being reset to try to bring 36232527Sbosticit back. 36347674Scael.Pp 36447674Scael.It panic: mscp_go: AEB_MAX_BP too small 36547674ScaelYou defined 36647674Scael.Dv AVOID_EMULEX_BUG 36747674Scaeland increased 36847674Scael.Dv NCMDL2 36947674Scaeland Emulex has 37047674Scaelnew firmware. Raise 37147674Scael.Dv AEB_MAX_BP 37247674Scaelor turn off 37347674Scael.Dv AVOID_EMULEX_BUG . 37447674Scael.Pp 37547674Scael.It "uda%d: unit %d: unknown message type 0x%x ignored" 37632527SbosticThe controller responded with a mysterious message type. See 37747674Scael.Pa /sys/vax/mscp.h 37847674Scaelfor a list of known message types. This is probably 37932527Sbostica controller hardware problem. 38047674Scael.Pp 38147674Scael.It "uda%d: unit %d out of range" 38232527SbosticThe disk drive unit number (the unit plug) is higher than the 38332527Sbosticmaximum number the driver allows (currently 7). 38447674Scael.Pp 38547674Scael.It "uda%d: unit %d not configured, message ignored" 38632527SbosticThe named disk drive has announced its presence to the controller, 38732527Sbosticbut was not, or cannot now be, configured into the running system. 38847674Scael.Em Message 38932527Sbosticis one of `available attention' (an `I am here' message) or 39032527Sbostic`stray response op 0x%x status 0x%x' (anything else). 39147674Scael.Pp 39247674Scael.It ra%d: bad lbn (%d)? 39332527SbosticThe drive has reported an invalid command error, probably due to an 39432527Sbosticinvalid block number. If the lbn value is very much greater than the 39532527Sbosticsize reported by the drive, this is the problem. It is probably due to 39632527Sbostican improperly configured partition table. Other invalid commands 39732527Sbosticindicate a bug in the driver, or hardware trouble. 39847674Scael.Pp 39947674Scael.It ra%d: duplicate ONLINE ignored 40032527SbosticThe drive has come on-line while already on-line. This condition 40132527Sbosticcan probably be ignored (and has been). 40247674Scael.Pp 40347674Scael.It ra%d: io done, but no buffer? 40447674ScaelHardware trouble, or a bug; the drive has finished an 40547674Scael.Tn I/O 40647674Scaelrequest, 40732527Sbosticbut the response has an invalid (zero) command reference number. 40847674Scael.Pp 40947674Scael.It "Emulex SC41/MS screwup: uda%d, got %d correct, then changed 0x%x to 0x%x" 41047674ScaelYou turned on 41147674Scael.Dv AVOID_EMULEX_BUG , 41247674Scaeland the driver successfully 41332527Sbosticavoided the bug. The number of correctly-handled requests is 41432527Sbosticreported, along with the expected and actual values relating to 41532527Sbosticthe bug being avoided. 41647674Scael.Pp 41747674Scael.It panic: unrecoverable Emulex screwup 41847674ScaelYou turned on 41947674Scael.Dv AVOID_EMULEX_BUG , 42047674Scaelbut Emulex was too clever and 42147674Scaelavoided the avoidance. Try turning on 42247674Scael.Dv MSCP_PARANOIA 42347674Scaelinstead. 42447674Scael.Pp 42547674Scael.It uda%d: bad response packet ignored 42647674ScaelYou turned on 42747674Scael.Dv MSCP_PARANOIA , 42847674Scaeland the driver caught the controller in 42932527Sbostica lie. The lie has been ignored, and the controller will soon be 43032527Sbosticreset (after a `lost' interrupt). This is followed by a hex dump of 43132527Sbosticthe offending packet. 43247674Scael.Pp 43347674Scael.It ra%d: bogus REPLACE end 43432527SbosticThe drive has reported finishing a bad sector replacement, but the 43532527Sbosticdriver never issues bad sector replacement commands. The report 43632527Sbosticis ignored. This is likely a hardware problem. 43747674Scael.Pp 43847674Scael.It "ra%d: unknown opcode 0x%x status 0x%x ignored" 43932527SbosticThe drive has reported something that the driver cannot understand. 44047674ScaelPerhaps 44147674Scael.Tn DEC 44247674Scaelhas been inventive, or perhaps your hardware is ill. 44332527SbosticThis is followed by a hex dump of the offending packet. 44447674Scael.Pp 44547674Scael.It "ra%d%c: hard error %sing fsbn %d [of %d-%d] (ra%d bn %d cn %d tn %d sn %d)." 44634730SkarelsAn unrecoverable error occurred during transfer of the specified 44734730Skarelsfilesystem block number(s), 44834730Skarelswhich are logical block numbers on the indicated partition. 44934730SkarelsIf the transfer involved multiple blocks, the block range is printed as well. 45034730SkarelsThe parenthesized fields list the actual disk sector number 45134730Skarelsrelative to the beginning of the drive, 45234730Skarelsas well as the cylinder, track and sector number of the block. 45347674Scael.Pp 45447674Scael.It uda%d: %s error datagram 45532527SbosticThe controller has reported some kind of error, either `hard' 45632527Sbostic(unrecoverable) or `soft' (recoverable). If the controller is going on 45732527Sbostic(attempting to fix the problem), this message includes the remark 45832527Sbostic`(continuing)'. Emulex controllers wrongly claim that all soft errors 45932527Sbosticare hard errors. This message may be followed by 46032527Sbosticone of the following 5 messages, depending on its type, and will always 46132527Sbosticbe followed by a failure detail message (also listed below). 46247674Scael.Bd -filled -offset indent 46347674Scael.It memory addr 0x%x 46432527SbosticA host memory access error; this is the address that could not be 46532527Sbosticread. 46647674Scael.Pp 46747674Scael.It "unit %d: level %d retry %d, %s %d" 46832527SbosticA typical disk error; the retry count and error recovery levels are 46932527Sbosticprinted, along with the block type (`lbn', or logical block; or `rbn', 47047674Scaelor replacement block) and number. If the string is something else, 47147674Scael.Tn DEC 47232527Sbostichas been clever, or your hardware has gone to Australia for vacation 47332527Sbostic(unless you live there; then it might be in New Zealand, or Brazil). 47447674Scael.Pp 47547674Scael.It unit %d: %s %d 47632527SbosticAlso a disk error, but an `SDI' error, whatever that is. (I doubt 47732527Sbosticit has anything to do with Ronald Reagan.) This lists the block 47833442Sbostictype (`lbn' or `rbn') and number. This is followed by a second 47933442Sbosticmessage indicating a microprocessor error code and a front panel 48033442Sbosticcode. These latter codes are drive-specific, and are intended to 48133442Sbosticbe used by field service as an aid in locating failing hardware. 48233442SbosticThe codes for RA81s can be found in the 48347674Scael.%T RA81 Maintenance Guide , 48433442SbosticDEC order number AA-M879A-TC, in appendices E and F. 48547674Scael.Pp 48647674Scael.It "unit %d: small disk error, cyl %d" 48732527SbosticYet another kind of disk error, but for small disks. (`That's what 48832527Sbosticit says, guv'nor. Dunnask me what it means.') 48947674Scael.Pp 49047674Scael.It "unit %d: unknown error, format 0x%x" 49132527SbosticA mysterious error: the given format code is not known. 49247674Scael.Ed 49347674Scael.Pp 49432527SbosticThe detail messages are as follows: 49547674Scael.Bd -filled -offset indent 49647674Scael.It success (%s) (code 0, subcode %d) 49732527SbosticEverything worked, but the controller thought it would let you know 49832527Sbosticthat something went wrong. No matter what subcode, this can probably 49932527Sbosticbe ignored. 50047674Scael.Pp 50147674Scael.It "invalid command (%s) (code 1, subcode %d)" 50232527SbosticThis probably cannot occur unless the hardware is out; %s should be 50332527Sbostic`invalid msg length', meaning some command was too short or too long. 50447674Scael.Pp 50547674Scael.It "command aborted (unknown subcode) (code 2, subcode %d)" 50632527SbosticThis should never occur, as the driver never aborts commands. 50747674Scael.Pp 50847674Scael.It "unit offline (%s) (code 3, subcode %d)" 50932527SbosticThe drive is offline, either because it is not around (`unknown 51032527Sbosticdrive'), stopped (`not mounted'), out of order (`inoperative'), has the 51132527Sbosticsame unit number as some other drive (`duplicate'), or has been 51232527Sbosticdisabled for diagnostics (`in diagnosis'). 51347674Scael.Pp 51447674Scael.It "unit available (unknown subcode) (code 4, subcode %d)" 51532527SbosticThe controller has decided to report a perfectly normal event as 51632527Sbostican error. (Why?) 51747674Scael.Pp 51847674Scael.It "media format error (%s) (code 5, subcode %d)" 51932527SbosticThe drive cannot be used without reformatting. The Format Control 52032527SbosticTable cannot be read (`fct unread - edc'), there is a bad sector 52132527Sbosticheader (`invalid sector header'), the drive is not set for 512-byte 52232527Sbosticsectors (`not 512 sectors'), the drive is not formatted (`not formatted'), 52347674Scaelor the 52447674Scael.Tn FCT 52547674Scaelhas an uncorrectable 52647674Scael.Tn ECC 52747674Scaelerror (`fct ecc'). 52847674Scael.Pp 52947674Scael.It "write protected (%s) (code 6, subcode %d)" 53032527SbosticThe drive is write protected, either by the front panel switch 53132527Sbostic(`hardware') or via the driver (`software'). The driver never 53232527Sbosticsets software write protect. 53347674Scael.Pp 53447674Scael.It "compare error (unknown subcode) (code 7, subcode %d)" 53532527SbosticA compare operation showed some sort of difference. The driver 53632527Sbosticnever uses compare operations. 53747674Scael.Pp 53847674Scael.It "data error (%s) (code 7, subcode %d)" 53932527SbosticSomething went wrong reading or writing a data sector. A `forced 54032527Sbosticerror' is a software-asserted error used to mark a sector that contains 54132527Sbosticsuspect data. Rewriting the sector will clear the forced error. This 54232527Sbosticis normally set only during bad block replacment, and the driver does 54332527Sbosticno bad block replacement, so these should not occur. A `header 54432527Sbosticcompare' error probably means the block is shot. A `sync timeout' 54532527Sbosticpresumably has something to do with sector synchronisation. 54632527SbosticAn `uncorrectable ecc' error is an ordinary data error that cannot 54747674Scaelbe fixed via 54847674Scael.Tn ECC 54947674Scaellogic. A `%d symbol ecc' error is a data error 55047674Scaelthat can be (and presumably has been) corrected by the 55147674Scael.Tn ECC 55247674Scaellogic. 55332527SbosticIt might indicate a sector that is imperfect but usable, or that 55432527Sbosticis starting to go bad. If any of these errors recur, the sector 55532527Sbosticmay need to be replaced. 55647674Scael.Pp 55747674Scael.It "host buffer access error (%s) (code %d, subcode %d)" 55832527SbosticSomething went wrong while trying to copy data to or from the host 55932527Sbostic(Vax). The subcode is one of `odd xfer addr', `odd xfer count', 56032527Sbostic`non-exist. memory', or `memory parity'. The first two could be a 56132527Sbosticsoftware glitch; the last two indicate hardware problems. 56247674Scael.It controller error (%s) (code %d, subcode %d) 56332527SbosticThe controller has detected a hardware error in itself. A 56432527Sbostic`serdes overrun' is a serialiser / deserialiser overrun; `edc' 56532527Sbosticprobably stands for `error detection code'; and `inconsistent 56632527Sbosticinternal data struct' is obvious. 56747674Scael.Pp 56847674Scael.It "drive error (%s) (code %d, subcode %d)" 56932527SbosticEither the controller or the drive has detected a hardware error 57032527Sbosticin the drive. I am not sure what an `sdi command timeout' is, but 57132527Sbosticthese seem to occur benignly on occasion. A `ctlr detected protocol' 57232527Sbosticerror means that the controller and drive do not agree on a protocol; 57332527Sbosticthis could be a cabling problem, or a version mismatch. A `positioner' 57432527Sbosticerror means the drive seek hardware is ailing; `lost rd/wr ready' 57532527Sbosticmeans the drive read/write logic is sick; and `drive clock dropout' 57632527Sbosticmeans that the drive clock logic is bad, or the media is hopelessly 57732527Sbosticscrambled. I have no idea what `lost recvr ready' means. A `drive 57832527Sbosticdetected error' is a catch-all for drive hardware trouble; `ctlr 57932527Sbosticdetected pulse or parity' errors are often caused by cabling problems. 58047674Scael.Ed 58147674Scael.El 58247674Scael.Sh SEE ALSO 58347674Scael.Xr disklabel 5 , 58447674Scael.Xr disklabel 8 58547674Scael.Sh HISTORY 58647674ScaelThe 58747674Scael.Nm 58847674Scaeldriver appeared in 58947674Scael.Bx 4.2 . 590