nvrd(7) DG/UX R4.11MU05 nvrd(7)
NAME
nvrd - Non-volatile VME RAM Disk controller (88K only)
SYNOPSIS
nvrd(parent-bus[,controller-num])
DESCRIPTION
A nvrd device driver supports the Model 5018 VME 2-megabyte Special
Systems ECC non-volatile memory board. The non-volatile storage
appears to the operating system as a small but very fast physical
disk device.
To configure such devices, you must add to the DG/UX system
configuration file one or more device name entries of the form
described in the synopsis above. The parameters in a device name
have the following meanings:
· The parent-bus parameter is itself a device name, representing
the VME bus device to which the controller is attached (vme(0) or
vme(1), for example). There is no default value for this
parameter; it must always be specified explicitly.
· The controller-num parameter is a hexadecimal number in the range
0 through 7 which distinguishes the various standard addressing
values to which the controller may be jumpered. Consult the
table below for details on these address settings. The default
value for controller-num is 0.
Each nvrd controller board contains DIP switches that control three
VME board address settings: the interrupt vector number used by the
board, the A16 address of the board's 16-bit control register space,
and the A32 address of the board's non-volatile memory. The
following hexadecimal address values are used for the 8 standard
controller-num instances supported by the device driver on each
parent VME bus:
Controller Interrupt A16 Address A32 Address
Number Vector
Number
0 80 FFFFFF00 E5000000
1 82 FFFFFF20 E5200000
2 84 FFFFFF40 E5400000
3 86 FFFFFF60 E5600000
4 88 FFFFFF80 E5800000
5 8A FFFFFFA0 E5A00000
6 8C FFFFFFC0 E5C00000
7 8E FFFFFFE0 E5E00000
An nvrd device can still be used even if it is not jumpered to one of
the standard address settings. However, such a device is referred to
as a non-standard instance, and it requires a different device name
format:
nvrd@intr-vec-num(parent-bus,a16-addr,a32-addr,size)
The parameters in a non-standard device name have the following
meanings:
· The intr-vec-num value is the hexadecimal VME interrupt vector
number used by the board. There is no default value for this
parameter; it must always be specified explicitly.
· The parent-bus parameter has exactly the same meaning here as it
does in the standard device name format.
· The a16-addr parameter is the hexadecimal value of the VME A16
address of the board's 16-bit control register space. There is
no default value for this parameter; it must always be specified
explicitly.
· The a32-addr parameter is the hexadecimal value of the VME A32
address of the board's non-volatile memory. There is no default
value for this parameter; it must always be specified explicitly.
· The size parameter is a hexadecimal number specifying the number
of megabytes of non-volatile memory on the device. There is no
default value for this parameter; it must always be specified
explicitly. Currently, the only valid value for this parameter
is 2.
The entries in the above table of standard address settings skip a
set of interrupt vector numbers and control register addresses. This
is done in order to allow boards to be mirrored for redundancy: each
of the above eight standard nvrd instances can be used in a mirrored
pair. Such board is considered the master and is the only board in a
mirrored pair that is explicitly configured. The slave board, which
is not configured, must have its DIP switches set to values that
correspond to the master board in the following manner:
· The interrupt vector number must be one greater on the slave
board than on the master.
· The A16 address must be 0x10 greater on the slave board than on
the master.
· The A32 address must be identical on the two boards.
So, for example, the slave device to the master board nvrd(vme(0),2)
would require an interrupt vector setting of 85, an A16 address of
FFFFFF50, and an A32 address of E5400000.
If one of the boards in a mirrored pair fails, a message will be sent
to the system console and logged. Because the boards are mirrored,
no application using the boards will notice the failure. However,
until the failed board is repaired or replaced, a failure in the
remaining board could result in the loss of data. To avoid such a
loss, restore the redundancy as soon as possible. If the board that
failed is the slave board, then it can be repaired or replaced by a
board with the same DIP switch settings. If the board that failed is
the master board, then the slave board must become the new master by
having its DIP switch settings changed to the master board values,
and the old master board must be repaired or replaced by a new slave
board (using the slave board settings).
FILES
Each disk unit on a standard nvrd controller creates a pair of device
nodes when it is configured, with the pathnames:
/dev/pdsk/nvrd(parent-bus,controller-num)
/dev/rpdsk/nvrd(parent-bus,controller-num)
The /dev/pdsk device node provides access as a block-special device
as described in dsk(7). The /dev/rpdsk device node provides access
as a character-special device as described in dsk(7). The nvrd
driver provides no bad block remapping for accesses to these device
nodes. See the vdm(7) man page for details on how to set up a bad-
block remap area using the Virtual Disk Manager.
The pathnames of the device nodes created for units on non-standard
controller instances are:
/dev/pdsk/nvrd@intr-vec-num(parent-bus,a16-addr,a32-addr,size)
/dev/rpdsk/nvrd@intr-vec-num(parent-bus,a16-addr,a32-addr,size)
EXAMPLES
The following entry in a DG/UX configuration file configures a single
NVRD device or a mirrored pair of such devices, depending on whether
a slave board with the appropriate DIP switch settings is present:
nvrd(vme(0),2)
For more information about DG/UX device configuration, refer to
"Writing a Device Driver" in Programming in the DG/UX Kernel
Environment.
SEE ALSO
vme(7), dsk(7), rdsk(7), vdm(7), system(4), intro(7).
Licensed material--property of copyright holder(s)