This command is for use on Alpha and Integrity servers only. It
connects a hardware device and loads its driver, if the driver is
not already loaded.
On VAX systems, use the SYSGEN command CONNECT.
You must have CMKRNL and SYSLCK privileges to use the SYSMAN IO
CONNECT command.
Format
IO CONNECT device-name[:]
1 – Parameter
device-name[:]
Specifies the name of the hardware device to be connected. The
device name requires the following format:
device-type controller unit-number
For example, in the designation LPA0, LP is a line printer
on controller A at unit number 0. If you use the /NOADAPTER
qualifier, the device is the software to be loaded.
2 – Qualifiers
2.1 /ADAPTER
/ADAPTER=tr_number
/NOADAPTER (default)
Specifies the nexus number of the adapter to which the specified
device is connected. It is a nonnegative 32-bit integer. The
/NOADAPTER qualifier indicates that the device is not associated
with any particular hardware. The /NOADAPTER qualifier is
compatible with the /DRIVER_NAME qualifier only.
2.2 /CSR
/CSR=csr_address
Specifies the CSR address for the device being configured. This
address must be specified in hexadecimal. You must precede the
CSR address with %X. The CSR address is a quadword value that is
loaded into IDB$Q_CSR without any interpretation by SYSMAN. This
address can be physical or virtual, depending on the specific
device being connected:
o /CSR=%X3A0140120 for a physical address
o /CSR=%XFFFFFFFF807F8000 for a virtual address (the sign
extension is required for Alpha and Integrity servers virtual
addresses)
This qualifier is required if /ADAPTER=tr_number is specified.
2.3 /DRIVER_NAME
/DRIVER_NAME=filespec
Specifies the name of the device driver that you are loading.
If you do not specify this qualifier, SYSMAN obtains the default
in the same way that the SYSGEN default name is determined. For
example, if you want to load the VSI-supplied SYS$ELDRIVER.EXE,
the prefix SYS$ must be present. Without the SYS$, SYSMAN looks
for ELDRIVER.EXE in SYS$LOADABLE_IMAGES. This implementation
separates the user device driver namespace from the VSI-supplied
device driver namespace.
2.4 /LOG
/LOG=(ALL,CRB,DDB,DPT,IDB,SB,UCB)
/NOLOG (default)
Controls whether SYSMAN displays the addresses of the specified
control blocks. The default value for the /LOG qualifier is
/LOG=ALL. If /LOG=UCB is specified, a message similar to the
following one is displayed:
%SYSMAN-I-IOADDRESS, the UCB is located at address 805AB000
2.5 /MAX_UNITS
/MAX_UNITS=maximum-number-of-units
Specifies the maximum number of units the driver can support. The
default is specified in the driver prologue table (DPT) of the
driver. If the number is not specified in the DPT, the default
is 8. This number must be greater than or equal to the number of
units specified by /NUM_UNITS. This qualifier is optional.
2.6 /NUM_UNITS
/NUM_UNITS=number-of-units
Specifies the number of units to be created. The starting device
number is the number specified in the device name parameter.
For example, the first device in DKA0 is 0. Subsequent devices
are numbered sequentially. The default is 1. This qualifier is
optional.
2.7 /NUM_VEC
/NUM_VEC=vector-count
Specifies the number of vectors for this device. The default
vector count is 1. The /NUM_VEC qualifier is optional. This
qualifier should be used only when using the /VECTOR_SPACING
qualifier. When using the /NUM_VEC qualifier, you must also use
the /VECTOR qualifier to supply the base vector.
2.8 /SYS_ID
/SYS_ID=number-of-remote-system
Indicates the SCS system ID of the remote system to which the
device is to be connected. It is a 64-bit integer; you must
specify the remote system number in hexadecimal. The default
is the local system. This qualifier is optional.
2.9 /VECTOR
/VECTOR=(vector-address,...)
Specifies the interrupt vectors for the device or lowest vector.
This is either a byte offset into the SCB of the interrupt vector
for directly vectored interrupts or a byte offset into the ADP
vector table for indirectly vectored interrupts. The values must
be longword aligned. To specify the vector address in octal or
hexadecimal, precede the address with %O or %X, respectively. The
/VECTOR qualifier is required when you use the /ADAPTER=tr_number
qualifier or the /NUM_VEC=vector-count qualifier. You can list up
to 64 vectors.
2.10 /VECTOR_SPACING
/VECTOR_SPACING=number-of-bytes-between-vectors
Specifies the spacing between vectors. Specify the amount as a
multiple of 16 bytes. The default is 16. You must specify both
the base vector with /VECTOR and the number of vectors with /NUM_
VEC. This qualifier is optional.
3 – Description
The SYSMAN IO CONNECT command connects a hardware device and
loads its driver, if the driver is not already loaded. You must
have CMKRNL and SYSLCK privileges to use the SYSMAN IO CONNECT
command.
The chapter "Managing Peripheral Devices" in the VSI OpenVMS
System Manager's Manual contains information about file-based
device configuration support.
4 – Examples
1.SYSMAN> IO CONNECT DKA0:/DRIVER_NAME=SYS$DKDRIVER/CSR=%X80AD00-
/ADAPTER=4/NUM_VEC=3/VECTOR_SPACING=%X10/VECTOR=%XA20/LOG
%SYSMAN-I-IOADDRESS, the CRB is located at address 805AEC40
%SYSMAN-I-IOADDRESS, the DDB is located at address 805AA740
%SYSMAN-I-IOADDRESS, the DPT is located at address 80D2A000
%SYSMAN-I-IOADDRESS, the IDB is located at address 805AEE80
%SYSMAN-I-IOADDRESS, the SB is located at address 80417F80
%SYSMAN-I-IOADDRESS, the UCB is located at address 805B68C0
The command in this example connects device DKA0, loads driver
SYS$DKDRIVER, and specifies the following data:
Physical CSR address
Adapter number
Number of vectors
Spacing between vectors
Interrupt vector address
The /LOG qualifier displays the addresses of all control
blocks, as shown.
2.SYSMAN> IO CONNECT DKA0:/DRIVER_NAME=SYS$DKDRIVER/CSR=%X80AD00-
/ADAPTER=4/VECTOR=(%XA20,%XA30,%XA40)/LOG=(CRB,DPT,UCB)
%SYSMAN-I-IOADDRESS, the CRB is located at address 805AEC40
%SYSMAN-I-IOADDRESS, the DPT is located at address 80D2A000
%SYSMAN-I-IOADDRESS, the UCB is located at address 805B68C0
The command in this example connects device DKA0, loads driver
SYS$DKDRIVER, and specifies the following data:
Physical CSR address
Adapter number
Addresses for interrupt vectors
The /LOG qualifier displays the addresses of the channel
request block (CRB), the driver prologue table (DPT), and the
unit control block (UCB).
3.SYSMAN> IO CONNECT FTA0:/DRIVER=SYS$FTDRIVER/NOADAPTER/LOG=(ALL)
%SYSMAN-I-IOADDRESS, the CRB is located at address 805AEC40
%SYSMAN-I-IOADDRESS, the DDB is located at address 805AA740
%SYSMAN-I-IOADDRESS, the DPT is located at address 80D2A000
%SYSMAN-I-IOADDRESS, the IDB is located at address 805AEE80
%SYSMAN-I-IOADDRESS, the SB is located at address 80417F80
%SYSMAN-I-IOADDRESS, the UCB is located at address 805B68C0
The command in this example connects pseudoterminal FTA0,
loads driver SYS$FTDRIVER, and uses the /NOADAPTER qualifier
to indicate that FTA0 is not an actual hardware device. The
/LOG=(ALL) qualifier displays the addresses of all control
blocks, as shown.
For more information about loading and configuring device
drivers, see Writing OpenVMS Alpha Device Drivers in C (Margie
Sherlock and Leonard S. Szubowicz, Digital Press, 1996).