se(7D) Devices se(7D)NAMEse - Siemens 82532 ESCC serial communications driver
SYNOPSIS
se@bus_address:port_name[,cu]
DESCRIPTION
The se module is a loadable STREAMS driver that provides basic support
for the 82532 ESCC hardware and basic asynchronous and synchronous com‐
munication support. This manual page describes the asynchronous proto‐
col interface; for information on the synchronous interface, please see
the se_hdlc(7D) manual page.
Note - This module is affected by the setting of specific eeprom vari‐
ables. For information on parameters that are persistent across
reboots, see the eeprom(1M) man page.
The platform specific device bus address for the se module is
bus_address. The se module's port_name is a single letter (a-z).
Note - During boot up, ttya/b characteristics are read from the /ker‐
nel/drv/options.conf file and changed from the PROM defaults to
reflect Solaris defaults. Messages displayed on the console
after this point are based on settings in that file. If you
switch a characteristic, (for example, the baud rate of the
console terminal), you must revise the /kernel/drv/options.conf
or the console will be configured to an unusable configuration
and console messages will be garbled by the mismatched serial
port settings.
APPLICATION PROGRAMMING INTERFACE
The Siemens 82532 provides two serial input/output channels capable of
supporting a variety of communication protocols. A typical system will
use one of these devices to implement two serial ports (port_name),
usually configured for RS-423 (which also supports most RS-232 equip‐
ment). The Siemens 82532 uses 64 character input and output FIFOs to
reduce system overhead. When receiving characters, the CPU is notified
when 32 characters have arrived (one-half of receive buffer is full) or
no character has arrived in the time it would take to receive four
characters at the current baud rate.
When sending characters, the Siemens 82532 places the first 64 charac‐
ters to be sent into its output FIFO and then notifies the CPU when it
is half empty (32 characters left). Because the se module waits for the
Siemens 82532 to transmit the remaining characters within its output
FIFO before making requested changes, delays may occur when the port's
attributes are being modified.
The se module implements CTS/RTS flow control in hardware. To prevent
data overruns, remove CTS/RTS flow control responsibility from the CPU
during periods of high system load.
In async mode (obtained by opening /dev/cua/[a-z], /dev/term/[a-z] or
/dev/tty[a-z]), the driver supports the termio(7I) device control func‐
tions specified by flags in the c_cflag word of the termios structure,
and by the IGNBRK, IGNPAR, PARMRK, or INPCK flags in the c_iflag word.
All other termio(7I) functions must be performed by STREAMS modules
pushed atop the driver. When a device is opened, the ldterm(7M) and
ttcompat(7M) STREAMS modules are automatically pushed on top of the
stream, providing the standard termio interface.
Each of the following are valid name space entries: /dev/cua/[a-z],
/dev/term/[a-z], and /dev/tty[a-z]. The number of entries used in this
name space are machine dependent. The /dev/tty[a-z] device names exist
only if the SunOS 4.x Binary Compatibility Package is installed. The
/dev/tty[a-z] device names are created by the ucblinks command, which
is available only with the SunOS 4.x Binary Compatibility Package.
You can connect a single tty line to a modem for incoming and outgoing
calls using a special feature controlled by the minor device number. By
accessing character-special devices with names of the form /dev/cua/[a-
z], it is possible to open a port without the Carrier Detect signal
being asserted, either through hardware or an equivalent software mech‐
anism. These devices are commonly known as dial-out lines.
After a /dev/cua/[a-z] line is opened, the corresponding tty line can‐
not be opened until the /dev/cua/[a-z] line is closed. A blocking open
will wait until the /dev/cua/[a-z] line is closed (which will drop Data
Terminal Ready and Carrier Detect) and carrier is detected again. A
non-blocking open will return an error. If the tty line has been opened
successfully (usually only when carrier is recognized on the modem),
the corresponding /dev/cua/[a-z] line cannot be opened. This allows a
modem to be attached to a device, (for example, /dev/term/ [a-z]
renamed from /dev/tty[a-z]) and used for dial-in (by enabling the line
for login in /etc/inittab) and dial-out (by tip(1) or uucp(1C)) as
/dev/cua/[a-z] when no one is logged in on the line.
IOCTLS
The se module supports the standard set of termio ioctl() calls.
Breaks can be generated by the TCSBRK, TIOCSBRK, and TIOCCBRK ioctl()
calls.
The state of the DCD, CTS, RTS, and DTR interface signals can be
queried through the use of the TIOCM_CAR, TIOCM_CTS, TIOCM_RTS, and
TIOCM_DTR arguments to the TIOCMGET ioctl command, respectively. Due
to hardware limitations, only the RTS and DTR signals may be set
through their respective arguments to the TIOCMSET, TIOCMBIS, and
TIOCMBIC ioctl commands.
The input and output line speeds may be set to all baud rates supported
by termio. Input and output line speeds cannot be set independently;
when you set the output speed, the input speed is automatically set to
the same speed.
When using baud rates over 100,000 baud, the software changes the line
driver configuration to handle the higher data rates. This action
decreases the theoretical maximum cable length from 70 meters to 30
meters.
When the se module is used to service the serial console port, it sup‐
ports a BREAK condition that allows the system to enter the debugger or
the monitor. The BREAK condition is generated by hardware and it is
usually enabled by default. A BREAK condition originating from erro‐
neous electrical signals cannot be distinguished from one deliberately
sent by remote DCE. Due to a risk of incorrect sequence interpretation,
SLIP and certain other binary protocols should not be run over the
serial console port when Alternate Break sequence is in effect.
Although PPP is a binary protocol, it is able to avoid these sequences
using the ACCM feature in RFC 1662. For Solaris PPP 4.0, you do this by
adding the following line to the /etc/ppp/options file (or other con‐
figuration files used for the connection; see pppd(1M) for details):
asyncmap 0x00002000
By default, the Alternate Break sequence is a three character sequence:
carriage return, tilde and control-B (CR ~ CTRL-B), but may be changed
by the driver. For information on breaking (entering the debugger or
monitor), see kadb(1M) and kb(7M).
ERRORS
An open() will fail under the following conditions:
ENXIO The unit being opened does not exist.
EBUSY The dial-out device is being opened and the dial-in
device is already open, or the dial-in device is being
opened with a no-delay open and the dial-out device is
already open.
EBUSY The port is in use by another serial protocol.
EBUSY The unit has been marked as exclusive-use by another
process with a TIOCEXCL ioctl() call.
EINTR The open was interrupted by the delivery of a signal.
FILES
/dev/cua/[a-z] dial-out tty lines
/dev/term/[a-z] dial-in tty lines
/dev/tty[a-z] binary compatibility package device names
/dev/se_hdlc[0-9] synchronous devices - see se_hdlc(7D).
/dev/se_hdlc synchronous control clone device
/kernel/drv/options.confSystem wide default device driver properties
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Architecture │SPARC │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOtip(1), kadb(1M), ucblinks(1B), cu(1C), uucp(1C), eeprom(1M),
ports(1M), pppd(1M), ioctl(2), open(2), attributes(5),zs(7D), zsh(7D),
se_hdlc(7D), termio(7I), ldterm(7M), ttcompat(7M), kb(7M)DIAGNOSTICS
sen: fifo overrun The Siemens 82532 internal FIFO received more
data than it could handle. This indicates that
Solaris was not servicing data interrupts fast
enough and suggests a system with too many
interrupts or a data line with a data rate that
is too high.
sen: buffer overrun The se module was unable to store data it
removed from the Siemens 82532 FIFO. The user
process is not reading data fast enough, and
suggests an overloaded system. If possible, the
application should enable flow control (either
CTSRTS or XONXOFF) to allow the driver to
backpressure the remote system when the local
buffers fill up.
SunOS 5.10 12 Sep 2002 se(7D)