uda man page on 4.4BSD

Printed from http://www.polarhome.com/service/man/?qf=uda&af=0&tf=2&of=4.4BSD

UDA(4)		       BSD/vax Kernel Interfaces Manual			UDA(4)

NAME
     uda — UDA50 disk controller interface

SYNOPSIS
     controller uda0 at uba0 csr 0172150 vector udaintr
     disk ra0 at uda0 drive 0
     options MSCP_PARANOIA

DESCRIPTION
     This is a driver for the DEC UDA50 disk controller and other compatible
     controllers.  The UDA50 communicates with the host through a packet pro‐
     tocol known as the Mass Storage Control Protocol (MSCP).  Consult the
     file ⟨vax/mscp.h⟩ for a detailed description of this protocol.

     The uda driver is a typical block-device disk driver; see physio(4) for a
     description of block I/O.	The script MAKEDEV(8) should be used to create
     the uda special files; should a special file need to be created by hand,
     consult mknod(8).

     The MSCP_PARANOIA option enables runtime checking on all transfer comple‐
     tion responses from the controller.  This increases disk I/O overhead and
     may be undesirable on slow machines, but is otherwise recommended.

     The first sector of each disk contains both a first-stage bootstrap pro‐
     gram and a disk label containing geometry information and partition lay‐
     outs (see disklabel(5)).  This sector is normally write-protected, and
     disk-to-disk copies should avoid copying this sector.  The label may be
     updated with disklabel(8), which can also be used to write-enable and
     write-disable the sector.	The next 15 sectors contain a second-stage
     bootstrap program.

DISK SUPPORT
     During autoconfiguration, as well as when a drive is opened after all
     partitions are closed, the first sector of the drive is examined for a
     disk label.  If a label is found, the geometry of the drive and the par‐
     tition tables are taken from it.  If no label is found, the driver con‐
     figures the type of each drive when it is first encountered.  A default
     partition table in the driver is used for each type of disk when a pack
     is not labelled.  The origin and size (in sectors) of the default pseudo-
     disks on each drive are shown below.  Not all partitions begin on cylin‐
     der boundaries, as on other drives, because previous drivers used one
     partition table for all drive types.  Variants of the partition tables
     are common; check the driver and the file /etc/disktab (disktab(5)) for
     other possibilities.

     Special file names begin with ‘ra’ and ‘rra’ for the block and character
     files respectively. The second component of the name, a drive unit number
     in the range of zero to seven, is represented by a ‘’?  in the disk lay‐
     outs below. The last component of the name is the file system partition
     designated by a letter from ‘a’ to ‘h’ and which corresponds to a minor
     device number set: zero to seven, eight to 15, 16 to 23 and so forth for
     drive zero, drive two and drive three respectively, (see physio(4)).  The
     location and size (in sectors) of the partitions:

     RA60 partitions
     disk      start	length
	       ra?a	0	     15884
	       ra?b	15884	     33440
	       ra?c	0	     400176
	       ra?d	49324	     82080     same as 4.2BSD ra?g
	       ra?e	131404	     268772    same as 4.2BSD ra?h
	       ra?f	49324	     350852
	       ra?g	242606	     157570
	       ra?h	49324	     193282

     RA70 partitions
     disk      start	length
	       ra?a	0	     15884
	       ra?b	15972	     33440
	       ra?c	0	     547041
	       ra?d	34122	     15884
	       ra?e	357192	     55936
	       ra?f	413457	     133584
	       ra?g	341220	     205821
	       ra?h	49731	     29136

     RA80 partitions
     disk      start	length
	       ra?a	0	     15884
	       ra?b	15884	     33440
	       ra?c	0	     242606
	       ra?e	49324	     193282    same as old Berkeley ra?g
	       ra?f	49324	     82080     same as 4.2BSD ra?g
	       ra?g	49910	     192696
	       ra?h	131404	     111202    same as 4.2BSD

     RA81 partitions
     disk      start	length
	       ra?a	0	     15884
	       ra?b	16422	     66880
	       ra?c	0	     891072
	       ra?d	375564	     15884
	       ra?e	391986	     307200
	       ra?f	699720	     191352
	       ra?g	375564	     515508
	       ra?h	83538	     291346

     RA81 partitions with 4.2BSD-compatible partitions
     disk      start	length
	       ra?a	0	     15884
	       ra?b	16422	     66880
	       ra?c	0	     891072
	       ra?d	49324	     82080     same as 4.2BSD ra?g
	       ra?e	131404	     759668    same as 4.2BSD ra?h
	       ra?f	412490	     478582    same as 4.2BSD ra?f
	       ra?g	375564	     515508
	       ra?h	83538	     291346

     RA82 partitions
     disk      start	length
	       ra?a	0	     15884
	       ra?b	16245	     66880
	       ra?c	0	     1135554
	       ra?d	375345	     15884
	       ra?e	391590	     307200
	       ra?f	669390	     466164
	       ra?g	375345	     760209
	       ra?h	83790	     291346

     The ra?a partition is normally used for the root file system, the ra?b
     partition as a paging area, and the ra?c partition for pack-pack copying
     (it maps the entire disk).

FILES
     /dev/ra[0-9][a-f]
     /dev/rra[0-9][a-f]

DIAGNOSTICS
     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.

     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 prob‐
     lem or someone pulling unit number plugs very fast.

     uda%d: unit %d off line  While searching for drives, the controller found
     one that seems to be manually disabled.  It is ignored.

     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.

     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.

     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].

     ra%d: don't have a partition table for %s; using (s,t,c)=(%d,%d,%d)  The
     controller found a drive whose media identifier (e.g. `RA 25') does not
     have a default partition table.  A temporary partition table containing
     only an `a' partition has been created covering the entire disk, which
     has the indicated numbers of sectors per track (s), tracks per cylinder
     (t), and total cylinders (c).  Give the pack a label with the disklabel
     utility.

     uda%d: uballoc map failed	Unibus resource map allocation failed during
     initialisation.  This can only happen if you have 496 devices on a
     Unibus.

     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.

     uda%d: init failed, sa=%b	The controller refused to initalise.

     uda%d: controller hung  The controller never finished initialisation.
     Retrying may sometimes fix it.

     ra%d: drive will not come on line	The drive will not come on line, prob‐
     ably because it is spun down.  This should be preceded by a message giv‐
     ing details as to why the drive stayed off line.

     uda%d: still hung	When the controller hangs, the driver occasionally
     tries to reinitialise it.	This means it just tried, without success.

     panic: udastart: bp==NULL	A bug in the driver has put an empty drive
     queue on a controller queue.

     uda%d: command ring too small  If you increase NCMDL2, you may see a per‐
     formance improvement.  (See /sys/vaxuba/uda.c.)

     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.

     uda%d: controller error, sa=0%o (%s)  The controller reported an error.
     The error code is printed in octal, along with a short description if the
     code is known (see the UDA50 Maintenance Guide, DEC part number
     AA-M185B-TC, pp. 18-22).  If this occurs during normal operation, the
     driver will reset it and retry pending I/O.  If it occurs during configu‐
     ration, the controller may be ignored.

     uda%d: stray intr	The controller interrupted when it should have stayed
     quiet.  The interrupt has been ignored.

     uda%d: init step %d failed, sa=%b	The controller reported an error dur‐
     ing the named initialisation step.	 The driver will retry initialisation
     later.

     uda%d: version %d model %d	 An informational message giving the revision
     level of the controller.

     uda%d: DMA burst size set to %d  An informational message showing the DMA
     burst size, in words.

     panic: udaintr  Indicates a bug in the generic MSCP code.

     uda%d: driver bug, state %d  The driver has a bogus value for the con‐
     troller state.  Something is quite wrong.	This is immediately followed
     by a `panic: udastate'.

     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.

     uda%d: SETCTLRC failed: `detail'  The Set Controller Characteristics com‐
     mand (the last part of the controller initialisation sequence) failed.
     The detail message tells why.

     uda%d: attempt to bring ra%d on line failed:  `detail'  The drive could
     not be brought on line.  The detail message tells why.

     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.

     ra%d: changed types! was %d now %d	 A drive somehow changed from one kind
     to another, e.g., from an RA80 to an RA60.	 The numbers printed are the
     encoded media identifiers (see ⟨vax/mscp.h⟩ for the encoding).  The
     driver believes the new type.

     ra%d: uda%d, unit %d, size = %d sectors  The named drive is on the indi‐
     cated controller as the given unit, and has that many sectors of user-
     file area.	 This is printed during configuration.

     uda%d: attempt to get status for ra%d failed:  `detail'  A status request
     failed.  The detail message should tell why.

     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.

     ra%d: serious exception reported  I have no idea what this really means.

     panic: udareplace	The controller reported completion of a REPLACE opera‐
     tion.  The driver never issues any REPLACEs, so something is wrong.

     panic: udabb  The controller reported completion of bad block related
     I/O.  The driver never issues any such, so something is wrong.

     uda%d: lost interrupt  The controller has gone out to lunch, and is being
     reset to try to bring it back.

     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.

     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.

     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).

     uda%d: unit %d not configured, message ignored  The named disk drive has
     announced its presence to the controller, but was not, or cannot now be,
     configured into the running system.  Message is one of `available atten‐
     tion' (an `I am here' message) or `stray response op 0x%x status 0x%x'
     (anything else).

     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.

     ra%d: duplicate ONLINE ignored  The drive has come on-line while already
     on-line.  This condition can probably be ignored (and has been).

     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.

     Emulex SC41/MS screwup: uda%d, got %d correct, then changed 0x%x to 0x%x
     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.

     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.

     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 fol‐
     lowed by a hex dump of the offending packet.

     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.

     ra%d: unknown opcode 0x%x status 0x%x ignored  The drive has reported
     something that the driver cannot understand.  Perhaps DEC has been inven‐
     tive, or perhaps your hardware is ill.  This is followed by a hex dump of
     the offending packet.

     ra%d%c: hard error %sing fsbn %d [of %d-%d] (ra%d bn %d cn %d tn %d sn
     %d).  An unrecoverable error occurred during transfer of the specified
     filesystem block number(s), which are logical block numbers on the indi‐
     cated partition.  If the transfer involved multiple blocks, the block
     range is printed as well.	The parenthesized fields list the actual disk
     sector number relative to the beginning of the drive, as well as the
     cylinder, track and sector number of the block.

     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 fol‐
     lowing 5 messages, depending on its type, and will always be followed by
     a failure detail message (also listed below).

	   memory addr 0x%x  A host memory access error; this is  the  address
	   that could not be read.

	   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).

	   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.  This is followed
	   by  a  second  message indicating a microprocessor error code and a
	   front panel code.  These latter codes are drive-specific,  and  are
	   intended  to be used by field service as an aid in locating failing
	   hardware.  The codes for RA81s can be found in the RA81 Maintenance
	   Guide, DEC order number AA-M879A-TC, in appendices E and F.

	   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.')

	   unit	 %d: unknown error, format 0x%x	 A mysterious error: the given
	   format code is not known.

     The detail messages are as follows:

	   success (%s) (code 0, subcode %d)  Everything worked, but the  con‐
	   troller  thought  it	 would let you know that something went wrong.
	   No matter what subcode, this can probably be ignored.

	   invalid command (%s) (code 1, subcode %d)	This  probably	cannot
	   occur  unless  the  hardware	 is  out;  %s  should  be `invalid msg
	   length', meaning some command was too short or too long.

	   command aborted (unknown subcode) (code 2, subcode %d)  This should
	   never occur, as the driver never aborts commands.

	   unit	 offline  (%s)	(code  3,  subcode  %d)	 The drive is offline,
	   either because it is not around (`unknown  drive'),	stopped	 (`not
	   mounted'),  out  of order (`inoperative'), has the same unit number
	   as some other drive (`duplicate'), or has been disabled  for	 diag‐
	   nostics (`in diagnosis').

	   unit	 available  (unknown  subcode)	(code 4, subcode %d)  The con‐
	   troller has decided to report a perfectly normal event as an error.
	   (Why?)

	   media  format  error (%s) (code 5, subcode %d)  The drive cannot be
	   used without reformatting.  The Format Control Table cannot be read
	   (`fct unread - edc'), there is a bad sector header (`invalid sector
	   header'), the drive is not set for 512-byte sectors (`not 512  sec‐
	   tors'),  the	 drive	is not formatted (`not formatted'), or the FCT
	   has an uncorrectable ECC error (`fct ecc').

	   write protected (%s) (code 6, subcode %d)  The drive is write  pro‐
	   tected,  either  by	the front panel switch (`hardware') or via the
	   driver (`software').	 The driver never sets software write protect.

	   compare error (unknown subcode) (code 7, subcode  %d)    A  compare
	   operation  showed  some  sort of difference.	 The driver never uses
	   compare operations.

	   data error (%s) (code 7, subcode %d)	 Something went wrong  reading
	   or  writing a data sector.  A `forced error' is a software-asserted
	   error used to mark a sector that contains suspect data.   Rewriting
	   the	sector will clear the forced error.  This is normally set only
	   during bad block replacment, and  the  driver  does	no  bad	 block
	   replacement,	 so  these should not occur.  A `header compare' error
	   probably means the block is shot.  A `sync timeout' presumably  has
	   something  to  do  with  sector synchronisation.  An `uncorrectable
	   ecc' error is an ordinary data error that cannot be fixed  via  ECC
	   logic.   A  `%d  symbol ecc' error is a data error that can be (and
	   presumably has been) corrected by the ECC logic.  It might indicate
	   a  sector  that  is imperfect but usable, or that is starting to go
	   bad.	 If any of these errors recur,	the  sector  may  need	to  be
	   replaced.

	   host buffer access error (%s) (code %d, subcode %d)	Something went
	   wrong while trying to copy data to or from  the  host  (Vax).   The
	   subcode  is	one  of `odd xfer addr', `odd xfer count', `non-exist.
	   memory', or `memory parity'.	 The first two	could  be  a  software
	   glitch; the last two indicate hardware problems.

	   controller  error  (%s)  (code  %d, subcode %d)  The controller has
	   detected a hardware error in itself.	 A `serdes overrun' is a seri‐
	   aliser  /  deserialiser  overrun;  `edc' probably stands for `error
	   detection code'; and `inconsistent internal data struct'  is	 obvi‐
	   ous.

	   drive  error	 (%s)  (code %d, subcode %d)  Either the controller or
	   the drive has detected a hardware error in the  drive.   I  am  not
	   sure	 what  an  `sdi	 command  timeout' is, but these seem to occur
	   benignly on occasion.  A `ctlr detected protocol' error means  that
	   the	controller and drive do not agree on a protocol; this could be
	   a cabling problem, or a version  mismatch.	A  `positioner'	 error
	   means  the  drive seek hardware is ailing; `lost rd/wr ready' means
	   the drive read/write logic is sick; and `drive clock dropout' means
	   that	 the  drive  clock  logic  is  bad, or the media is hopelessly
	   scrambled.  I have no idea what `lost recvr ready' means.  A `drive
	   detected  error'  is	 a catch-all for drive hardware trouble; `ctlr
	   detected pulse or parity' errors are often caused by cabling	 prob‐
	   lems.

SEE ALSO
     disklabel(5), disklabel(8)

HISTORY
     The uda driver appeared in 4.2BSD.

4th Berkeley Distribution	 June 5, 1993	     4th Berkeley Distribution
[top]

List of man pages available for 4.4BSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net