DMF(4) (vax)

DMF(4) | Device Drivers Manual (vax) | DMF(4)

# NAME

`dmf` —
DMF-32 serial terminal multiplexor

# SYNOPSIS

`dmf0 at uba? csr 0160340 vector dmfsrint dmfsxint dmfdaint dmfdbint dmfrint dmfxint dmflint`

# DESCRIPTION

NOTE: This driver has not been ported from 4.4BSD yet.

The `dmf` device provides 8 lines of asynchronous serial line support. The first two of these have full modem control. The device also provides a line printer port similar to the LP-11. Other features of the DMF-32 are not supported. During autoconfiguration, the driver examines the configuration of each DMF-32 and adjusts the interrupt vectors so that fewer vector locations are used if possible.

An optional argument flags may be supplied with the device specification in the config file indicating that the line corresponding to bit number i is not properly connected, and should be treated as hard-wired with carrier always present. Thus specifying ‘`flags 0x04`’ for `dmf0` would cause line ttyA2 to be treated in this way. Flags should be set for all lines without hardware support for modem control.

Normal I/O control parameters for individual lines are managed by ioctl(2) calls. Line speeds may be initiated via getty(8) and stty(1) or may be communicated by other programs which use ioctl(2) such as ifconfig(8), see tty(4).

The serial line part of the `dmf` driver normally enables the input silos with a short timeout (30 milliseconds); this allows multiple characters to be received per interrupt during periods of high-speed input.

A line printer port on a `dmf` is designated by a minor device number of the form 128+n. See MAKEDEV(8). Column and lines per page may be changed from the default 132 columns and 66 lines by encoding the number of columns in bits 8-15 of flags and the number of lines in bits 16-23. This device does not provide the fancy output canonicalization features of the vax/lp(4) driver.

# FILES

/dev/tty[A-CE-I][0-7]
/dev/ttyd[0-7]
/dev/lp

# DIAGNOSTICS

dmf%d: NXM line %d.
  No response from UNIBUS on a DMA transfer within a timeout period. This is often followed by a UNIBUS adapter error. This occurs most frequently when the UNIBUS is heavily loaded and when devices which hog the bus (such as RK07s) are present. It is not serious.
dmf%d: silo overflow.
  The character input silo overflowed before it could be serviced. This can happen if a hard error occurs when the CPU is running with elevated priority, as the system will then print a message on the console with interrupts disabled. It is not serious.
dmfsrint, dmfsxint, dmfdaint, dmfdbint.
  One of the unsupported parts of the dmf interrupted; something is amiss, check your interrupt vectors for a conflict with another device.

# SEE ALSO

tty(4)

# HISTORY

The `dmf` driver appeared in 4.2BSD.

# BUGS

It should be possible to set the silo timeout with a configuration file option, as the value is a trade-off between efficiency and response time for flow control and character echo.

February 17, 2017 | NetBSD 10.1