home | help
UART(4) 		     Kernel Interfaces Manual			 UART(4)

NAME
     uart  --  driver for Universal Asynchronous Receiver/Transmitter (UART) de-
     vices

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 imple-
     menting 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 compo-
     nents 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 de-
     sign  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 con-
     sole, 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>.

FreeBSD 9.1			 March 12, 2008 			 UART(4)

home | help