NAME¶
uart
—
driver for Universal Asynchronous
Receiver/Transmitter (UART) devices
SYNOPSIS¶
device uart
device puc
device uart
device scc
device uart
In
/boot/device.hints:
hint.uart.0.disabled="1"
hint.uart.0.baud="38400"
hint.uart.0.port="0x3f8"
hint.uart.0.flags="0x10"
With
flags encoded as:
- 0x00010
- device is potential system console
- 0x00080
- use this port for remote kernel debugging
- 0x00100
- set RX FIFO trigger level to ``low'' (NS8250 only)
- 0x00200
- set RX FIFO trigger level to ``medium low'' (NS8250 only)
- 0x00400
- set RX FIFO trigger level to ``medium high'' (default, NS8250 only)
- 0x00800
- set RX FIFO trigger level to ``high'' (NS8250 only)
DESCRIPTION¶
The
uart
device driver provides support for
various classes of UARTs implementing the EIA RS-232C (CCITT V.24) serial
communications interface. Each such interface is controlled by a separate and
independent instance of the
uart
driver.
The primary support for devices that contain multiple serial interfaces or
that contain other functionality besides one or more serial interfaces is
provided by the
puc(4), or
scc(4) device drivers. However, the serial
interfaces of those devices that are managed by the
puc(4), or
scc(4)
driver are each independently controlled by the
uart
driver. As such, the
puc(4), or
scc(4)
driver provides umbrella functionality for the
uart
driver and hides the complexities that
are inherent when elementary components are packaged together.
The
uart
driver has a modular design to allow
it to be used on differing hardware and for various purposes. In the following
sections the components are discussed in detail. Options are described in the
section that covers the component to which each option applies.
CORE COMPONENT¶
At the heart of the
uart
driver is the core
component. It contains the bus attachments and the low-level interrupt
handler.
HARDWARE DRIVERS¶
The core component and the kernel interfaces talk to the hardware through the
hardware interface. This interface serves as an abstraction of the hardware
and allows varying UARTs to be used for serial communications.
SYSTEM DEVICES¶
System devices are UARTs that have a special purpose by way of hardware design
or software setup. For example, Sun UltraSparc machines use UARTs as their
keyboard interface. Such an UART cannot be used for general purpose
communications. Likewise, when the kernel is configured for a serial console,
the corresponding UART will in turn be a system device so that the kernel can
output boot messages early on in the boot process.
KERNEL INTERFACES¶
The last but not least of the components is the kernel interface. This component
ultimately determines how the UART is made visible to the kernel in particular
and to users in general. The default kernel interface is the TTY interface.
This allows the UART to be used for terminals, modems and serial line IP
applications. System devices, with the notable exception of serial consoles,
generally have specialized kernel interfaces.
HARDWARE¶
The
uart
driver supports the following
classes of UARTs:
- NS8250: standard hardware based on the 8250, 16450, 16550, 16650, 16750 or
the 16950 UARTs.
- SCC: serial communications controllers supported by the
scc(4) device driver.
FILES¶
- /dev/ttyu?
- for callin ports
- /dev/ttyu?.init
-
- /dev/ttyu?.lock
- corresponding callin initial-state and lock-state devices
- /dev/cuau?
- for callout ports
- /dev/cuau?.init
-
- /dev/cuau?.lock
- corresponding callout initial-state and lock-state devices
SEE ALSO¶
puc(4),
scc(4)
HISTORY¶
The
uart
device driver first appeared in
FreeBSD 5.2.
AUTHORS¶
The
uart
device driver and this manual page
were written by
Marcel Moolenaar
⟨marcel@xcllnt.net⟩.