Commit | Line | Data |
---|---|---|
52ac9c69 RG |
1 | .\" Copyright (c) 1990, 1991 The Regents of the University of California. |
2 | .\" All rights reserved. | |
3 | .\" | |
4 | .\" This code is derived from software contributed to Berkeley by | |
5 | .\" the Systems Programming Group of the University of Utah Computer | |
6 | .\" Science Department. | |
7 | .\" Redistribution and use in source and binary forms, with or without | |
8 | .\" modification, are permitted provided that the following conditions | |
9 | .\" are met: | |
10 | .\" 1. Redistributions of source code must retain the above copyright | |
11 | .\" notice, this list of conditions and the following disclaimer. | |
12 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
13 | .\" notice, this list of conditions and the following disclaimer in the | |
14 | .\" documentation and/or other materials provided with the distribution. | |
15 | .\" 3. All advertising materials mentioning features or use of this software | |
16 | .\" must display the following acknowledgement: | |
17 | .\" This product includes software developed by the University of | |
18 | .\" California, Berkeley and its contributors. | |
19 | .\" 4. Neither the name of the University nor the names of its contributors | |
20 | .\" may be used to endorse or promote products derived from this software | |
21 | .\" without specific prior written permission. | |
22 | .\" | |
23 | .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
24 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
25 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
26 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
27 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
28 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
29 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
30 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
31 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
32 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
33 | .\" SUCH DAMAGE. | |
34 | .\" | |
35 | .\" from: @(#)dca.4 5.2 (Berkeley) 3/27/91 | |
36 | .\" from: com.4,v 1.1 1993/08/06 11:19:07 cgd Exp | |
c2714ef5 | 37 | .\" $Id: sio.4,v 1.9 1994/03/18 13:40:01 ache Exp $ |
52ac9c69 | 38 | .\" |
22d83443 | 39 | .Dd February 9, 1994 |
52ac9c69 RG |
40 | .Dt SIO 4 i386 |
41 | .Os FreeBSD | |
42 | .Sh NAME | |
43 | .Nm sio | |
44 | .Nd | |
63ec8d43 | 45 | fast interrupt driven asynchronous serial communications interface |
52ac9c69 | 46 | .Sh SYNOPSIS |
22d83443 | 47 | For standard ports: |
52ac9c69 RG |
48 | .Cd "device sio0 at isa? port" \&"IO_COM1\&" tty irq 4 vector siointr |
49 | .Cd "device sio1 at isa? port" \&"IO_COM2\&" tty irq 3 vector siointr | |
50 | .Cd "device sio2 at isa? port" \&"IO_COM3\&" tty irq 5 vector siointr | |
51 | .Cd "device sio3 at isa? port" \&"IO_COM4\&" tty irq 9 vector siointr | |
22d83443 | 52 | .sp |
63ec8d43 AC |
53 | For multiport cards: |
54 | .Cd "options" \&"COM_MULTIPORT\&" | |
87ac16c5 RG |
55 | .Cd "device sio4 at isa? port 0x2a0 tty irq 12 flags 0x401 vector siointr" |
56 | .Cd "device sio5 at isa? port 0x2a8 tty flags 0x401 vector siointr" | |
57 | .Cd "device sio6 at isa? port 0x2b0 tty flags 0x401 vector siointr" | |
58 | .Cd "device sio7 at isa? port 0x2b8 tty flags 0x401 vector siointr" | |
22d83443 AC |
59 | .sp |
60 | For bidirectional use of ports: | |
63ec8d43 | 61 | .Cd "options" \&"COM_BIDIR\&" |
22d83443 AC |
62 | .sp |
63 | For control FIFO trigger: | |
64 | .Cd "options" \&"FIFO_TRIGGER=FIFO_TRIGGER_14\&" | |
65 | .sp | |
66 | Use 0x02 bit in flags field to disable FIFO on specified port. | |
52ac9c69 RG |
67 | .Sh DESCRIPTION |
68 | The | |
69 | .Nm sio | |
63ec8d43 | 70 | driver provides support for NS8250-, NS16450-, NS16550 and NS16550A-based |
52ac9c69 RG |
71 | .Tn EIA |
72 | .Tn RS-232C | |
73 | .Pf ( Tn CCITT | |
63ec8d43 | 74 | .Tn V.24 ) |
52ac9c69 | 75 | communications interfaces. The NS8250 and NS16450 have single character |
22d83443 | 76 | buffers, the NS16550A has a 16 character FIFO buffer. |
52ac9c69 RG |
77 | .Pp |
78 | Input and output for each line may set to one of following baud rates; | |
79 | 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, | |
22d83443 AC |
80 | 19200, 38400, 57600, or 115200. Your hardware may limit your baud |
81 | rate choices. | |
63ec8d43 | 82 | .Pp |
c2714ef5 | 83 | The driver supports `multiport' cards. |
84 | Multiport cards are those that have one or more groups of ports | |
85 | that share a common IRQ and Interrupt Request register set per group. | |
86 | Frequently 4 ports share 1 IRQ, some 8 port cards have 2 groups of 4 ports, | |
87 | thus using 2 IRQs. | |
88 | Some cards allow the first 2 serial ports to have seperate IRQs per port | |
89 | (as per DOS PC standard). | |
90 | .sp | |
91 | The | |
63ec8d43 | 92 | .Nm flags |
c2714ef5 | 93 | keyword specifies for each |
94 | .Nm device sio | |
95 | line in the kernel configuration file, | |
96 | whether the port is part of an IRQ sharing group, & if so, | |
97 | which port is the master device for | |
98 | the group (ie which port has the IRQ control registers). | |
99 | The master device is the port which | |
100 | has registers through which all interrupts of the port group are funneled. | |
101 | All ports of a port group report pending interrupts using this | |
22d83443 | 102 | single register. |
b99eee8c | 103 | .sp |
c2714ef5 | 104 | The master device is an integer embedded in the high byte of the |
105 | .Nm flags | |
106 | bitfield, so all sio entries in the kernel config file that are part of a | |
b99eee8c AC |
107 | multiport card must include the correct |
108 | .Nm flags | |
c2714ef5 | 109 | specification. |
110 | The bitwise assignment allows multiple port groups to | |
22d83443 | 111 | be configured in one system. It does |
b99eee8c | 112 | .Nm not |
c2714ef5 | 113 | imply that more than one port group (or card) can share |
114 | the same physical interrupt line! | |
22d83443 AC |
115 | .Pp |
116 | In the synopsis the | |
117 | .Nm flags 0x401 | |
c2714ef5 | 118 | means that the 5th port (sio4) is the master |
22d83443 | 119 | device (so the MSB of the flags), and that the ports are part of a |
63ec8d43 AC |
120 | multiport card (the LSB of the flags, actually only the LS |
121 | .Nm bit | |
22d83443 AC |
122 | ). |
123 | F.e. if you have only two standard ports in addition to multiport | |
124 | card, this | |
37d58e3c | 125 | .Nm flags |
22d83443 | 126 | will be |
c2714ef5 | 127 | .Nm 0x201 |
128 | (assuming the control port is | |
129 | .Nm sio2 | |
130 | ). | |
22d83443 AC |
131 | .Pp |
132 | Which port is the master device depends on the card type. Consult | |
133 | the hardware documentation of your card. | |
134 | .Pp | |
135 | Serial ports controlled by the | |
63ec8d43 AC |
136 | .Nm sio |
137 | driver can be used for both dialin and dialout. Use | |
22d83443 AC |
138 | .Xr comcontrol 8 |
139 | to enable/disable bidirectional use of the | |
63ec8d43 | 140 | .Nm sio |
22d83443 AC |
141 | ports. The minor number of the dialout |
142 | port is 128 higher than that of the corresponding dialin port. Use | |
143 | .Xr stty 1 | |
63ec8d43 | 144 | to enable or disable modem control as required by your setup. |
c2714ef5 | 145 | .Pp |
146 | While testing new cards & resolving card config DIP header & | |
147 | .Nm sio flags | |
148 | settings, to avoid coms. failure from lack of full modem DC level | |
149 | settings on ports, | |
150 | you are recommended to temporarily use syntax such as: | |
151 | .Nm stty -f /dev/tty03 clocal | |
152 | or open | |
153 | .Nm /dev/cua03 | |
154 | if you have bidirectional mode active | |
155 | to force serial port to open without | |
156 | .Nm O_NONBLOCK | |
157 | flag. | |
52ac9c69 | 158 | .Sh FILES |
750070c3 AC |
159 | .Bl -tag -width /dev/tty0? -compact |
160 | .It Pa /dev/tty0? | |
161 | for hardwired terminals | |
52ac9c69 | 162 | .El |
750070c3 AC |
163 | or |
164 | .Bl -tag -width /dev/tty0? -compact | |
165 | .It Pa /dev/ttyd? | |
166 | for dialin ports (and dialout when bidirectional usage disabled) | |
167 | .It Pa /dev/cua0? | |
168 | for dialout ports when bidirectional usage enabled | |
169 | .El | |
170 | .Pp | |
c79c8c67 AC |
171 | The devices numbers are made from the set [0-9a-z] so that more than |
172 | 10 ports can be supported. | |
750070c3 AC |
173 | /dev/tty0? and /dev/ttyd? are mutually exclusive, if you have |
174 | /dev/tty0? corresponding /dev/ttyd? must be removed and vice versa. | |
52ac9c69 RG |
175 | .Sh DIAGNOSTICS |
176 | .Bl -diag | |
177 | .It sio%d: silo overflow. | |
178 | The single-character input | |
179 | .Dq silo | |
180 | has overflowed and incoming data has been lost. | |
22d83443 AC |
181 | .\".It com%d: weird interrupt: %x. |
182 | .\"The device has generated an unexpected interrupt | |
183 | .\"with the code listed. | |
52ac9c69 RG |
184 | .El |
185 | .Sh SEE ALSO | |
22d83443 AC |
186 | .Xr tty 4 , |
187 | .Xr comcontrol 8 , | |
188 | .Xr stty 1 . | |
52ac9c69 RG |
189 | .Sh HISTORY |
190 | The | |
191 | .Nm | |
192 | driver is derived from the | |
193 | .Nm HP9000/300 | |
194 | .Nm dca | |
195 | driver and is | |
196 | .Ud | |
197 | .Sh BUGS | |
22d83443 | 198 | Data loss is not near as likely on busy systems as they are with the |
b99eee8c | 199 | .Xr com 4 |
22d83443 AC |
200 | driver but they still can occur at very high baud rates on slow systems. The |
201 | use of NS16550A's helps lot to handle high baud rates. | |
52ac9c69 | 202 | .Pp |
b99eee8c AC |
203 | Stay away from NS16550 (so without the trailing A). These are early |
204 | implementations of the chip with non-functional FIFO hardware. | |
205 | .Pp | |
52ac9c69 | 206 | The constants which define the locations |
22d83443 | 207 | of the various serial ports are holdovers from |
52ac9c69 | 208 | .Nm DOS . |
b99eee8c | 209 | As shown, hex addresses can be and for clarity probably should be used instead. |
63ec8d43 | 210 | .Pp |
22d83443 | 211 | As usual, you get what you pay for; cheap NS16550 clones generally don't work. |
63ec8d43 | 212 | .Pp |
b99eee8c | 213 | The multiport example is based on an AST/4 card, your |
22d83443 | 214 | mileage may vary however. Note that on the AST/4 the card's dipswitches should |
b99eee8c AC |
215 | .Nm not |
216 | be set to use interrupt sharing. AST/4-like interrupt sharing is only used when | |
217 | .Nm multiple | |
218 | AST/4 cards are installed in the same system. The sio driver does not | |
22d83443 | 219 | support more than 1 AST/4 on one IRQ. |