Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ icc(7) — Interactive 3.2r4.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

signal(2)

sdevice(4)

termio(7)

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 output 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 device number (see mknod(1M)). The low-order 5 bits (bits 0-4) of the minor ­device number are used to identify the asynchronous 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 termio(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 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 /etc/conf/pack.d/icc/space.c and /etc/conf/sdevice.d/icc files.  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 setting on the board located at block S1.  The sw field specifies 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 information 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 motherboard 512KB RAM.  On some machines, especially those with cache controllers, it may be necessary to select a starting 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 convenient 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 established. 

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

signal(2), sdevice(4), termio(7). 

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 SunSoft, Inc., is an extension of UNIX System V. 
 

\*U  —  Version 1.0

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026