xref: /freebsd/share/man/man4/uart.4 (revision 27d5dc189c8e2eaf1cbe7e47078bf065854ba210)
127d5dc18SMarcel Moolenaar.\"
227d5dc18SMarcel Moolenaar.\" Copyright (c) 2003 Marcel Moolenaar
327d5dc18SMarcel Moolenaar.\" All rights reserved.
427d5dc18SMarcel Moolenaar.\"
527d5dc18SMarcel Moolenaar.\" Redistribution and use in source and binary forms, with or without
627d5dc18SMarcel Moolenaar.\" modification, are permitted provided that the following conditions
727d5dc18SMarcel Moolenaar.\" are met:
827d5dc18SMarcel Moolenaar.\"
927d5dc18SMarcel Moolenaar.\" 1. Redistributions of source code must retain the above copyright
1027d5dc18SMarcel Moolenaar.\"    notice, this list of conditions and the following disclaimer.
1127d5dc18SMarcel Moolenaar.\" 2. Redistributions in binary form must reproduce the above copyright
1227d5dc18SMarcel Moolenaar.\"    notice, this list of conditions and the following disclaimer in the
1327d5dc18SMarcel Moolenaar.\"    documentation and/or other materials provided with the distribution.
1427d5dc18SMarcel Moolenaar.\"
1527d5dc18SMarcel Moolenaar.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1627d5dc18SMarcel Moolenaar.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1727d5dc18SMarcel Moolenaar.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1827d5dc18SMarcel Moolenaar.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
1927d5dc18SMarcel Moolenaar.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2027d5dc18SMarcel Moolenaar.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2127d5dc18SMarcel Moolenaar.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2227d5dc18SMarcel Moolenaar.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2327d5dc18SMarcel Moolenaar.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2427d5dc18SMarcel Moolenaar.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2527d5dc18SMarcel Moolenaar.\"
2627d5dc18SMarcel Moolenaar.\" $FreeBSD$
2727d5dc18SMarcel Moolenaar.\"
2827d5dc18SMarcel Moolenaar.Dd August 25, 2003
2927d5dc18SMarcel Moolenaar.Dt UART 4
3027d5dc18SMarcel Moolenaar.Os
3127d5dc18SMarcel Moolenaar.\"
3227d5dc18SMarcel Moolenaar.Sh NAME
3327d5dc18SMarcel Moolenaar.Nm uart
3427d5dc18SMarcel Moolenaar.Nd driver for Universal Asynchronous Receiver/Transmitter (UART) devices
3527d5dc18SMarcel Moolenaar.\"
3627d5dc18SMarcel Moolenaar.Sh SYNOPSIS
3727d5dc18SMarcel Moolenaar.Cd "device uart"
3827d5dc18SMarcel Moolenaar.Pp
3927d5dc18SMarcel Moolenaar.Cd "device puc"
4027d5dc18SMarcel Moolenaar.Cd "device uart"
4127d5dc18SMarcel Moolenaar.Pp
4227d5dc18SMarcel Moolenaar.\"
4327d5dc18SMarcel Moolenaar.Sh DESCRIPTION
4427d5dc18SMarcel MoolenaarThe
4527d5dc18SMarcel Moolenaar.Nm
4627d5dc18SMarcel Moolenaardevice driver provides support for various classes of UARTs implementing the
4727d5dc18SMarcel MoolenaarEIA RS-232C (CCITT V.24) serial communications interface.
4827d5dc18SMarcel MoolenaarEach such interface is controlled by a seperate and independent instance of
4927d5dc18SMarcel Moolenaarthe
5027d5dc18SMarcel Moolenaar.Nm
5127d5dc18SMarcel Moolenaardriver.
5227d5dc18SMarcel MoolenaarThe primary support for devices that contain multiple serial interfaces or
5327d5dc18SMarcel Moolenaarthat contain other functionality besides one or more serial interfaces is
5427d5dc18SMarcel Moolenaarprovided by the
5527d5dc18SMarcel Moolenaar.Xr puc 4
5627d5dc18SMarcel Moolenaardevice driver.
5727d5dc18SMarcel MoolenaarHowever, the serial interfaces of those devices that are managed by the
5827d5dc18SMarcel Moolenaar.Xr puc 4
5927d5dc18SMarcel Moolenaardriver are controlled by the
6027d5dc18SMarcel Moolenaar.Nm
6127d5dc18SMarcel Moolenaardriver.
6227d5dc18SMarcel MoolenaarAs such, the
6327d5dc18SMarcel Moolenaar.Xr puc 4
6427d5dc18SMarcel Moolenaardriver provides umbrella functionality for the
6527d5dc18SMarcel Moolenaar.Nm
6627d5dc18SMarcel Moolenaardriver and hides the complexities that are inherent when elementary components
6727d5dc18SMarcel Moolenaarare packaged together.
6827d5dc18SMarcel Moolenaar.Pp
6927d5dc18SMarcel MoolenaarThe
7027d5dc18SMarcel Moolenaar.Nm
7127d5dc18SMarcel Moolenaardriver has a modular design to allow it to be used on differing hardware and
7227d5dc18SMarcel Moolenaarfor various purposes.
7327d5dc18SMarcel MoolenaarIn the following sections the components are discussed in detail.
7427d5dc18SMarcel MoolenaarOptions are described in the section that covers the component to which each
7527d5dc18SMarcel Moolenaaroption applies.
7627d5dc18SMarcel Moolenaar.\"
7727d5dc18SMarcel Moolenaar.Ss CORE COMPONENT
7827d5dc18SMarcel MoolenaarAt the heart of the
7927d5dc18SMarcel Moolenaar.Nm
8027d5dc18SMarcel Moolenaardriver is the core component. It contains the bus attachments and the low-level
8127d5dc18SMarcel Moolenaarinterrupt handler.
8227d5dc18SMarcel Moolenaar.\"
8327d5dc18SMarcel Moolenaar.Ss HARDWARE DRIVERS
8427d5dc18SMarcel MoolenaarThe core component and the kernel interfaces talk to the hardware through the
8527d5dc18SMarcel Moolenaarhardware interface.
8627d5dc18SMarcel MoolenaarThis interface serves as an abstraction of the hardware and allows varying
8727d5dc18SMarcel MoolenaarUARTs to be used for serial communications.
8827d5dc18SMarcel Moolenaar.\"
8927d5dc18SMarcel Moolenaar.Ss SYSTEM DEVICES
9027d5dc18SMarcel MoolenaarSystem devices are UARTs that have a special purpose by way of hardware
9127d5dc18SMarcel Moolenaardesign or software setup.
9227d5dc18SMarcel MoolenaarFor example, Sun UltraSparc machines use UARTs as their keyboard interface.
9327d5dc18SMarcel MoolenaarSuch an UART cannot be used for general purpose communications.
9427d5dc18SMarcel MoolenaarLikewise, when the kernel is configured for a serial console, the
9527d5dc18SMarcel Moolenaarcorresponding UART will in turn be a system device so that the kernel can
9627d5dc18SMarcel Moolenaaroutput boot messages early on in the boot process.
9727d5dc18SMarcel Moolenaar.\"
9827d5dc18SMarcel Moolenaar.Ss KERNEL INTERFACES
9927d5dc18SMarcel MoolenaarThe last but not least of the components is the kernel interface.
10027d5dc18SMarcel MoolenaarThis component ultimately determines how the UART is made visible to the
10127d5dc18SMarcel Moolenaarkernel in particular and to users in general.
10227d5dc18SMarcel MoolenaarThe default kernel interface is the TTY interface.
10327d5dc18SMarcel MoolenaarThis allows the UART to be used for terminals, modems and serial line IP
10427d5dc18SMarcel Moolenaarapplications.
10527d5dc18SMarcel MoolenaarSystem devices, with the notable exception of serial consoles, generally
10627d5dc18SMarcel Moolenaarhave specialized kernel interfaces.
10727d5dc18SMarcel Moolenaar.\"
10827d5dc18SMarcel Moolenaar.Sh SEE ALSO
10927d5dc18SMarcel Moolenaar.Xr puc 4
11027d5dc18SMarcel Moolenaar.\"
11127d5dc18SMarcel Moolenaar.Sh HISTORY
11227d5dc18SMarcel MoolenaarThe
11327d5dc18SMarcel Moolenaar.Nm
11427d5dc18SMarcel Moolenaardevice driver first appeared in
11527d5dc18SMarcel Moolenaar.Fx 5.2 .
116