icc(7) INTERACTIVE UNIX System icc(7)
NAME
icc - Intelligent Channel Controller (ICC) Multi-Port Serial
Card
DESCRIPTION
The icc driver supports the Bell Technologies Intelligent
Channel Controller (ICC) Multi-Port Serial Card for AT-bus
systems. Up to 4 ICC cards are supported, for a total of up
to 24 serial ports. Provision is made using the device
minor number, as described below, to select an operation
mode for a port of modem control, non-modem control, or out-
put only. If a card for a port is not installed, an attempt
to open it will fail.
If the port was opened with the modem control bit present in
the minor device number (see below), modem control will be
enabled. If enabled, the driver will wait in open until
Data Carrier Detect (DCD) is present. Once opened, if DCD
drops, the driver will return errors on any subsequent read
or write of an asynchronous port by the user. If the port
was opened as a controlling teletype, signal SIGHUP will be
generated to the process which did the open.
Each port can be independently programmed for speed (50-
38400 baud), character length, and parity. Output speed is
always the same as input speed. The ports behave as
described in termio(7). Setting B0 will cause a disconnect,
setting EXTA will set 19200 baud, and setting EXTB will set
38400 baud.
Minor Device Numbers
The device minor number is the low-order 8 bits of the dev-
ice number (see mknod(1M)). The low-order 5 bits (bits 0-4)
of the minor device number are used to identify the asyn-
chronous port number (0-23). Bit 7 enables modem control on
the port. Thus, minor device 0 corresponds to the ICC board
0 serial port 0 with no modem control, while minor device
128 corresponds to the same port with modem control enabled.
In a similar manner, bit 6 is used to indicate an output-
only device.
A special case of the device minor number is the ICC control
process that uses device number 255. Through this device
number, the ICC control process downloads the board control
program.
Ioctl Calls
The standard tty device ioctl calls are supported (see ter-
mio(7)). One exception is the use of XMT1EN in the c_cflag
field which is redefined in /usr/include/sys/iccioctl.h as
CTSRTS. Setting the CTSRTS indicator causes the port to
utilize the ``auto-enable'' mode of operation in the SCC
8350/51 chip on the ICC board. In this mode, the UART is
Rev. 386/ix Page 1
icc(7) INTERACTIVE UNIX System icc(7)
controlled by external signals to partially implement an
RTS/CTS handshaking. The ``auto-enable'' mode simply stated
means that the UART can transmit only if the CTS signal is
true and can receive only when the DCD signal is true. For
additional information on the operation in this mode, refer
to the chip documentation.
Configuration
The ICC board provides for the selection of IRQ number, I/O
space beginning address, and the starting address of the
dual port RAM. Instructions for setting the board switches
can be found in the User's Manual for the board. These
switch settings for the board I/O address range, the dual-
ported RAM, and the IRQ value must be communicated to the
driver, which is done by modifying the files
/etc/conf/pack.d/icc/space.c and /etc/conf/sdevice.d/icc.
The /etc/conf/pack.d/icc/config file contains a definition
for structure icconf, where field port contains the base I/O
address for each ICC card defined by the board's dip switch
setting, which is located on block S2 of the board itself,
and field sw contains the hex value of the dip switch set-
ting on the board located at block S1. The sw field speci-
fies two characteristics of the board. Bits 0-2 of this
field specify the ICC-to-system memory DMA channel selected,
while bits 3-7 specify the base address for the ICC card's
dual-ported memory. Board switch block S1 defines the
dual-port RAM starting address for the 0.5 MB RAM. Switch
S1 value should be at least 1 to establish a starting
address above minimal motherboard 512KB RAM. Any changes to
these dip switches on the ICC card must be reflected in the
/etc/conf/pack.d/icc/space.c file or your driver will not
work.
The file /etc/conf/sdevice.d/icc contains 10 entries. Each
entry specifies an important specification regarding the ICC
driver. The IRQ is specified in field 6. If the IRQ level
for the board is changed, which is done by selecting 1 of 10
possible switch positions on the dip switch located on block
S3 of the board. Field 6 of this file must reflect the
corresponding IRQ level. The default IRQ level for ICC
cards is 6. The I/O address ranges of the ICC cards are
also specified in the file /etc/conf/sdevice.d/icc. The
seventh and eighth entries in the icc file specify the
beginning and ending addresses on the I/O bus through which
the device communicates. These two fields specify the I/O
address ranges for all cards (0-3). The default values for
these two fields are 348 and 357, respectively. For infor-
mation on other fields in this file, refer to sdevice(4).
Board switch block S1 defines the dual-port RAM starting
address for the 0.5 MB RAM. Switch S1 value should be at
least 1 to establish a starting address above minimal moth-
erboard 512KB RAM. On some machines, especially those with
cache controllers, it may be necessary to select a starting
Rev. 386/ix Page 2
icc(7) INTERACTIVE UNIX System icc(7)
address that will place the board in a non-cached area of
RAM. It is not necessary to set a different dual-port
address for each card installed; however, each card must
have a unique I/O address.
The shell script mkicc found at /etc/icc provides a con-
venient means of establishing the port path names. When
executed, mkicc accepts as arguments the board numbers
(blank separated) for which port paths are to be esta-
blished.
FILES
/dev/ttyi[A-X]
Serial port with modem control
/dev/ttyi[a-x]
Serial port without modem control
/dev/ttyo[a-x]
Serial output port without modem control
/dev/icc
ICC control device
SEE ALSO
termio(7).
signal(2), sdevice(4) in the INTERACTIVE SDS Guide and
Programmer's Reference Manual.
The user's manual for your equipment.
BUGS
The VP/ix support provided allows text mode DOS applications
and does not support the use of ICC ports as COM1 or COM2.
Use of the CTSRTS mode does not fully implement a hardware
CTSRTS handshaking.
ADDED VALUE
This entry, supplied by INTERACTIVE Systems Corporation, is
an extension of UNIX System V.
Rev. 386/ix Page 3