MAGMA(4)

NAME
magma - Magma Sp Serial/Parallel board device driver

SYNOPSIS
magma* at sbus? slot ? offset ?
mtty* at magma?
mbpp* at magma?

DESCRIPTION
The magma driver provides an interface to Magma LC2+1Sp, 2+1Sp, 4+1Sp, 8+2Sp, 4Sp, 8Sp, 12Sp, 16Sp, 1P and 2P boards. These boards are based around the Cirrus Logic CD1400 serial/parallel communications engine and the Cirrus Logic CD1190 parallel communications engine.

The device minor numbers for this driver are encoded as follows:

        +---+---+---+---+---+---+---+---+
        | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
        +---+---+---+---+---+---+---+---+
          |   |   |   |   |   |   |   |
          |   |   |   |   +---+---+---+---> port number
          |   |   |   |
          |   |   |   +-------------------> dial-out (on tty ports)
          |   |   |
          |   |   +-----------------------> unused
          |   |
          +---+---------------------------> card number

Up to four cards are supported in the system.

All tty ports have full automatic hardware (RTS/CTS) flow control available and a 12 byte FIFO on the chip in each direction so errors should be minimal.

FILES
/dev/tty[0-3][0-a]
    Serial ports
/dev/bpp[0-3][0-1]
    Parallel ports

DIAGNOSTICS

mtty%d%x: ring buffer overflow Incoming characters have been discarded due to a buffer overflow. This is caused by the process in control of the device not reading characters fast enough.

If need be you can make the ring buffer bigger by changing the MAGMA_RBUF_SIZE #define to something bigger, but it should be a multiple of two.

mtty%d%x: fifo overflow Incoming characters have been discarded due to a CD1400 channel overrun. This is caused by interrupts not being serviced sufficiently quickly to prevent the 12 byte receive FIFO on a serial channel from overflowing.

Reducing the value of either the MTTY_RX_FIFO_THRESHOLD or MTTY_RX_DTR_THRESHOLD #define's to something smaller may help slow machines avoid this problem.

SEE ALSO
read(2), termios(4), tty(4)

HISTORY
The driver was loosely based upon the cy(4) Cyclades Cyclom device driver written by Andrew Herbert and Timo Rossi.

AUTHORS
The driver was written by Iain Hibbert.

TO DO
CD1190 parallel support.

"bpp" input.

Dial-out (cua) devices are not yet supported.

"mdmbuf" is unsupported (see tty(4) and termios(4)).

Automatic XON/XOFF handshaking could be implemented fairly easily.

It would be good if the tty port waited for the FIFO to empty before allowing a close, so that I could turn off the channel interrupts at that time. It can be done.