diff options
author | ache <ache@FreeBSD.org> | 1994-06-04 00:41:25 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1994-06-04 00:41:25 +0000 |
commit | 7a9508d2f074ec9f92704550f1732faad7e9158e (patch) | |
tree | 5bf324c54cfeb6da09ea55540002a0fb27e5e350 /share | |
parent | 6a539275005d4775ea279583c39dca23fe02a1d0 (diff) | |
download | FreeBSD-src-7a9508d2f074ec9f92704550f1732faad7e9158e.zip FreeBSD-src-7a9508d2f074ec9f92704550f1732faad7e9158e.tar.gz |
Updated for new sio driver
Diffstat (limited to 'share')
-rw-r--r-- | share/man/man4/man4.i386/sio.4 | 276 | ||||
-rw-r--r-- | share/man/man4/sio.4 | 276 |
2 files changed, 396 insertions, 156 deletions
diff --git a/share/man/man4/man4.i386/sio.4 b/share/man/man4/man4.i386/sio.4 index e6a0caf..d1ce9dd 100644 --- a/share/man/man4/man4.i386/sio.4 +++ b/share/man/man4/man4.i386/sio.4 @@ -36,7 +36,7 @@ .\" from: com.4,v 1.1 1993/08/06 11:19:07 cgd Exp .\" $Id: sio.4,v 1.10 1994/05/07 01:15:10 ache Exp $ .\" -.Dd February 9, 1994 +.Dd June 3, 1994 .Dt SIO 4 i386 .Os FreeBSD .Sh NAME @@ -50,14 +50,42 @@ For standard ports: .Cd "device sio2 at isa? port" \&"IO_COM3\&" tty irq 5 vector siointr .Cd "device sio3 at isa? port" \&"IO_COM4\&" tty irq 9 vector siointr .sp -For multiport cards: +For AST compatible multiport cards with 4 ports: .Cd "options" \&"COM_MULTIPORT\&" -.Cd "device sio4 at isa? port 0x2a0 tty irq 12 flags 0x701 vector siointr" -.Cd "device sio5 at isa? port 0x2a8 tty flags 0x701 vector siointr" -.Cd "device sio6 at isa? port 0x2b0 tty flags 0x701 vector siointr" -.Cd "device sio7 at isa? port 0x2b8 tty flags 0x701 vector siointr" +.Cd "device sio4 at isa? port 0x2a0 tty flags 0x701" +.Cd "device sio5 at isa? port 0x2a8 tty flags 0x701" +.Cd "device sio6 at isa? port 0x2b0 tty flags 0x701" +.Cd "device sio7 at isa? port 0x2b8 tty flags 0x701 irq 12 vector siointr" .sp -Use 0x02 bit in flags field to disable FIFO on specified port. +For Boca Board compatible multiport cards with 8 ports: +.Cd "options" \&"COM_MULTIPORT\&" +.Cd "device sio4 at isa? port 0x100 tty flags 0xb05" +.Cd "..." +.Cd "device sio11 at isa? port 0x138 tty flags 0xb05 irq 12 vector siointr" +.sp +Meaning of \fBflags\fR: +.br +\fB0x0001\fR shared IRQs +.br +\fB0x0002\fR disable FIFO +.br +\fB0x0004\fR no AST/4 compatible IRQ control register +.br +\fB0x0080\fR disable diagnostics in probe +.br +\fB0x\fI??\fB00\fR minor number of master port +.sp +Minor numbering: +.br +0b\fIOLIMMMMM\fR +.br + call\fBO\fRut +.br + \fBL\fRock +.br + \fBI\fRnitial +.br + \fBMMMMMM\fRinor .Sh DESCRIPTION The .Nm sio @@ -67,108 +95,199 @@ driver provides support for NS8250-, NS16450-, NS16550 and NS16550A-based .Pf ( Tn CCITT .Tn V.24 ) communications interfaces. The NS8250 and NS16450 have single character -buffers, the NS16550A has a 16 character FIFO buffer. +buffers, the NS16550A has 16 character FIFO input and output buffers. .Pp Input and output for each line may set to one of following baud rates; 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, or 115200. Your hardware may limit your baud rate choices. .Pp -The driver supports `multiport' cards. +The driver supports `multiport' cards. Multiport cards are those that have one or more groups of ports -that share a common IRQ and Interrupt Request register set per group. -Frequently 4 ports share 1 IRQ, some 8 port cards have 2 groups of 4 ports, +that share an Interrupt Request (IRQ) line per group. +Shared IRQs on different cards are not supported. +Frequently 4 ports share 1 IRQ; some 8 port cards have 2 groups of 4 ports, thus using 2 IRQs. Some cards allow the first 2 serial ports to have seperate IRQs per port (as per DOS PC standard). .sp +Some cards have an IRQ control register for each group. +Some cards require special initialization related to such registers. +Only AST/4 compatible IRQ control registers are supported. +Some cards have an IRQ status register for each group. +The driver does not require or use such registers yet. +To work, the control and status registers for a group, if any, +must be mapped to the scratch register (register 7) +of a port in the group. +Such a port is called a +.Nm master +port. +.sp The .Nm flags -keyword specifies for each +keyword may be used on each .Nm device sio -line in the kernel configuration file, -whether the port is part of an IRQ sharing group, & if so, -which port is the master device for -the group (ie which port has the IRQ control registers). -The master device is the port which -has registers through which all interrupts of the port group are funneled. -All ports of a port group report pending interrupts using this -single register. -.sp -The master device is an integer embedded in the high byte of the -.Nm flags -bitfield, so all sio entries in the kernel config file that are part of a -multiport card must include the correct +line in the kernel configuration file +to silence the probe +or to disable the FIFO on 16550A UARTs +(see the synopsis). +Disabling the FIFO should rarely be necessary +since the driver automatically adjusts the receiver +FIFO trigger level for low latency and high efficiency. +.sp +The .Nm flags -specification. -The bitwise assignment allows multiple port groups to -be configured in one system. It does +keyword +.Nm must +be used for all ports that are part of an IRQ sharing group. +One bit specifies IRQ sharing; another bit specifies whether the port does .Nm not -imply that more than one port group (or card) can share -the same physical interrupt line! +require AST/4 compatible initialization. +The minor number of the device corresponding a master port +for the group is encoded as a bitfield in the high byte. +The same master port must be specified for all ports in a group. +.sp +The +.Nm irq +and +.Nm vector +specifications must be given for master ports +and for ports that are not part of an IRQ sharing group, +and not for other ports. .Pp -In the synopsis the +In the synopsis, .Nm flags 0x701 means that the 8th port (sio7) is the master -device (so the MSB of the flags), and that the ports are part of a -multiport card (the LSB of the flags, actually only the LS -.Nm bit -). -F.e. if you have only two standard ports in addition to multiport -card, this -.Nm flags -will be -.Nm 0x501 -(assuming the control port is -.Nm sio5 -). +port, and that the port is on a multiport card with shared IRQs +and an AST/4 compatible IRQ control register. +.sp +.Nm flags 0xb05 +means that the 12th port (sio11) is the master +port, and that the port is on a multiport card with shared IRQs +and no special IRQ control register. .Pp -Which port is the master device depends on the card type. Consult -the hardware documentation of your card. +Which port is the master port depends on the card type. +Consult the hardware documentation of your card. +Since IRQ status registers are never used, +and IRQ control registers are only used for AST/4 compatible cards, +and some cards map the control/status registers to all ports in a group, +any port in a group will sometimes do for the master port. +Choose a port containing an IRQ status register for forwards compatibility, +and the highest possible port for consistency. .Pp -Serial ports controlled by the +Serial ports controlled by the .Nm sio -driver can be used for both dialin and dialout. -The minor number of the dialout -port is 128 higher than that of the corresponding dialin port. Use -.Xr stty 1 -to enable or disable modem control as required by your setup. +driver can be used for both `callin' and `callout'. +For each port there is a callin device and a callout device. +The minor number of the callout device is 128 higher +than that of the corresponding callin port. +The callin device is general purpose. +Processes opening it normally wait for carrier +and for the callout device to become inactive. +The callout device is used to steal the port from +processes waiting for carrier on the callin device. +Processes opening it do not wait for carrier +and put any processes waiting for carrier on the callin device into +a deeper sleep so that they do not conflict with the callout session. +The callout device is abused for handling programs that are supposed +to work on general ports and need to open the port without waiting +but are too stupid to do so. .Pp -While testing new cards & resolving card config DIP header & -.Nm sio flags -settings, to avoid coms. failure from lack of full modem DC level -settings on ports, -you are recommended to temporarily use syntax such as: -.Nm stty -f /dev/tty03 clocal +The +.Nm sio +driver also supports an initial-state and a lock-state control +device for each of the callin and the callout "data" devices. +The minor number of the initial-state device is 32 higher +than that of the corresponding data device. +The minor number of the lock-state device is 64 higher +than that of the corresponding data device. +The termios settings of a data device are copied +from those of the corresponding initial-state device +on first opens and are not inherited from previous opens. +Use +.Xr stty 1 +in the normal way on the initial-state devices to program +initial termios states suitable for your setup. +.sp +The lock termios state acts as flags to disable changing +the termios state. E.g., to lock a flag variable such as +CRTSCTS, use +.Nm stty crtscts +on the lock-state device. Speeds and special characters +may be locked by setting the corresponding value in the lock-state +device to any nonzero value. +.sp +Correct programs talking to correctly wired external devices +work with arbitrary initial states and almost no locking, +but other setups may benefit from changing some of the default +initial state and locking the state. +E.g., CRTSCTS should be locked on for devices that support +RTS/CTS handshaking at all times and off for devices that don't +support it at all. CLOCAL should be locked on for devices +that don't support carrier. HUPCL may be locked off if you don't +want to hang up for reason. In general, very bad things happen +if something is locked to the wrong state, and things should not +be locked for devices that support more than one setting. The +CLOCAL flag on callin ports should be locked off for logins +to avoid certain security holes, but this needs to be done by +getty if the callin port is used for anything else. .Sh FILES -.Bl -tag -width /dev/tty0? -compact +.Bl -tag -width /dev/ttyi0? -compact .It Pa /dev/tty0? for hardwired terminals +.It Pa /dev/ttyi0? +.It Pa /dev/ttyl0? +corresponding initial-state and lock-state devices .El +.sp or -.Bl -tag -width /dev/tty0? -compact +.sp +.Bl -tag -width /dev/ttyi0? -compact .It Pa /dev/ttyd? -for dialin ports +for callin ports +.It Pa /dev/ttyid? +.It Pa /dev/ttyld? +corresponding callin initial-state and lock-state devices +.sp .It Pa /dev/cua0? -for dialout ports +for callout ports +.It Pa /dev/cuai0? +.It Pa /dev/cual0? +corresponding callout initial-state and lock-state devices +.El +.sp +.Bl -tag -width /etc/rc.serial -compact +.It Pa /etc/rc.serial +examples of setting the initial-state and lock-state devices .El .Pp -The devices numbers are made from the set [0-9a-z] so that more than +The devices numbers are made from the set [0-9a-v] so that more than 10 ports can be supported. /dev/tty0? and /dev/ttyd? are mutually exclusive, if you have /dev/tty0? corresponding /dev/ttyd? must be removed and vice versa. .Sh DIAGNOSTICS .Bl -diag .It sio%d: silo overflow. -The single-character input -.Dq silo -has overflowed and incoming data has been lost. -.\".It com%d: weird interrupt: %x. -.\"The device has generated an unexpected interrupt -.\"with the code listed. +Problem in the interrupt handler. +.El +.Bl -diag +.It sio%d: interrupt-level buffer overflow. +Problem in the bottom half of the driver. .El +.Bl -diag +.It sio%d: tty-level buffer overflow. +Problem in the application. +.sp +Input has arrived faster than the given module could process it +and some has been lost. +.sp +.El +.Bl -diag +.It sio%d: reduced fifo trigger level to %d. +Attempting to avoid further silo overflows. .Sh SEE ALSO .Xr tty 4 , +.Xr termios 4 , .Xr comcontrol 8 , .Xr stty 1 . .Sh HISTORY @@ -180,12 +299,12 @@ driver is derived from the driver and is .Ud .Sh BUGS -Data loss is not near as likely on busy systems as they are with the +Data loss is not nearly as likely on busy systems as it is with the .Xr com 4 -driver but they still can occur at very high baud rates on slow systems. The -use of NS16550A's helps lot to handle high baud rates. +driver but it can still occur at very high baud rates on slow systems. +The use of NS16550A's reduces system load and helps to avoid data loss. .Pp -Stay away from NS16550 (so without the trailing A). These are early +Stay away from plain NS16550's. These are early implementations of the chip with non-functional FIFO hardware. .Pp The constants which define the locations @@ -193,12 +312,13 @@ of the various serial ports are holdovers from .Nm DOS . As shown, hex addresses can be and for clarity probably should be used instead. .Pp -As usual, you get what you pay for; cheap NS16550 clones generally don't work. -.Pp -The multiport example is based on an AST/4 card, your -mileage may vary however. Note that on the AST/4 the card's dipswitches should +Note that on the AST/4 the card's dipswitches should .Nm not -be set to use interrupt sharing. AST/4-like interrupt sharing is only used when +be set to use interrupt sharing. AST/4-like interrupt sharing is only used when .Nm multiple -AST/4 cards are installed in the same system. The sio driver does not +AST/4 cards are installed in the same system. The sio driver does not support more than 1 AST/4 on one IRQ. +.Pp +Hardwired terminals should not have different device names. +.Pp +The examples in the synopsis are too vendor-specific. diff --git a/share/man/man4/sio.4 b/share/man/man4/sio.4 index e6a0caf..d1ce9dd 100644 --- a/share/man/man4/sio.4 +++ b/share/man/man4/sio.4 @@ -36,7 +36,7 @@ .\" from: com.4,v 1.1 1993/08/06 11:19:07 cgd Exp .\" $Id: sio.4,v 1.10 1994/05/07 01:15:10 ache Exp $ .\" -.Dd February 9, 1994 +.Dd June 3, 1994 .Dt SIO 4 i386 .Os FreeBSD .Sh NAME @@ -50,14 +50,42 @@ For standard ports: .Cd "device sio2 at isa? port" \&"IO_COM3\&" tty irq 5 vector siointr .Cd "device sio3 at isa? port" \&"IO_COM4\&" tty irq 9 vector siointr .sp -For multiport cards: +For AST compatible multiport cards with 4 ports: .Cd "options" \&"COM_MULTIPORT\&" -.Cd "device sio4 at isa? port 0x2a0 tty irq 12 flags 0x701 vector siointr" -.Cd "device sio5 at isa? port 0x2a8 tty flags 0x701 vector siointr" -.Cd "device sio6 at isa? port 0x2b0 tty flags 0x701 vector siointr" -.Cd "device sio7 at isa? port 0x2b8 tty flags 0x701 vector siointr" +.Cd "device sio4 at isa? port 0x2a0 tty flags 0x701" +.Cd "device sio5 at isa? port 0x2a8 tty flags 0x701" +.Cd "device sio6 at isa? port 0x2b0 tty flags 0x701" +.Cd "device sio7 at isa? port 0x2b8 tty flags 0x701 irq 12 vector siointr" .sp -Use 0x02 bit in flags field to disable FIFO on specified port. +For Boca Board compatible multiport cards with 8 ports: +.Cd "options" \&"COM_MULTIPORT\&" +.Cd "device sio4 at isa? port 0x100 tty flags 0xb05" +.Cd "..." +.Cd "device sio11 at isa? port 0x138 tty flags 0xb05 irq 12 vector siointr" +.sp +Meaning of \fBflags\fR: +.br +\fB0x0001\fR shared IRQs +.br +\fB0x0002\fR disable FIFO +.br +\fB0x0004\fR no AST/4 compatible IRQ control register +.br +\fB0x0080\fR disable diagnostics in probe +.br +\fB0x\fI??\fB00\fR minor number of master port +.sp +Minor numbering: +.br +0b\fIOLIMMMMM\fR +.br + call\fBO\fRut +.br + \fBL\fRock +.br + \fBI\fRnitial +.br + \fBMMMMMM\fRinor .Sh DESCRIPTION The .Nm sio @@ -67,108 +95,199 @@ driver provides support for NS8250-, NS16450-, NS16550 and NS16550A-based .Pf ( Tn CCITT .Tn V.24 ) communications interfaces. The NS8250 and NS16450 have single character -buffers, the NS16550A has a 16 character FIFO buffer. +buffers, the NS16550A has 16 character FIFO input and output buffers. .Pp Input and output for each line may set to one of following baud rates; 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, or 115200. Your hardware may limit your baud rate choices. .Pp -The driver supports `multiport' cards. +The driver supports `multiport' cards. Multiport cards are those that have one or more groups of ports -that share a common IRQ and Interrupt Request register set per group. -Frequently 4 ports share 1 IRQ, some 8 port cards have 2 groups of 4 ports, +that share an Interrupt Request (IRQ) line per group. +Shared IRQs on different cards are not supported. +Frequently 4 ports share 1 IRQ; some 8 port cards have 2 groups of 4 ports, thus using 2 IRQs. Some cards allow the first 2 serial ports to have seperate IRQs per port (as per DOS PC standard). .sp +Some cards have an IRQ control register for each group. +Some cards require special initialization related to such registers. +Only AST/4 compatible IRQ control registers are supported. +Some cards have an IRQ status register for each group. +The driver does not require or use such registers yet. +To work, the control and status registers for a group, if any, +must be mapped to the scratch register (register 7) +of a port in the group. +Such a port is called a +.Nm master +port. +.sp The .Nm flags -keyword specifies for each +keyword may be used on each .Nm device sio -line in the kernel configuration file, -whether the port is part of an IRQ sharing group, & if so, -which port is the master device for -the group (ie which port has the IRQ control registers). -The master device is the port which -has registers through which all interrupts of the port group are funneled. -All ports of a port group report pending interrupts using this -single register. -.sp -The master device is an integer embedded in the high byte of the -.Nm flags -bitfield, so all sio entries in the kernel config file that are part of a -multiport card must include the correct +line in the kernel configuration file +to silence the probe +or to disable the FIFO on 16550A UARTs +(see the synopsis). +Disabling the FIFO should rarely be necessary +since the driver automatically adjusts the receiver +FIFO trigger level for low latency and high efficiency. +.sp +The .Nm flags -specification. -The bitwise assignment allows multiple port groups to -be configured in one system. It does +keyword +.Nm must +be used for all ports that are part of an IRQ sharing group. +One bit specifies IRQ sharing; another bit specifies whether the port does .Nm not -imply that more than one port group (or card) can share -the same physical interrupt line! +require AST/4 compatible initialization. +The minor number of the device corresponding a master port +for the group is encoded as a bitfield in the high byte. +The same master port must be specified for all ports in a group. +.sp +The +.Nm irq +and +.Nm vector +specifications must be given for master ports +and for ports that are not part of an IRQ sharing group, +and not for other ports. .Pp -In the synopsis the +In the synopsis, .Nm flags 0x701 means that the 8th port (sio7) is the master -device (so the MSB of the flags), and that the ports are part of a -multiport card (the LSB of the flags, actually only the LS -.Nm bit -). -F.e. if you have only two standard ports in addition to multiport -card, this -.Nm flags -will be -.Nm 0x501 -(assuming the control port is -.Nm sio5 -). +port, and that the port is on a multiport card with shared IRQs +and an AST/4 compatible IRQ control register. +.sp +.Nm flags 0xb05 +means that the 12th port (sio11) is the master +port, and that the port is on a multiport card with shared IRQs +and no special IRQ control register. .Pp -Which port is the master device depends on the card type. Consult -the hardware documentation of your card. +Which port is the master port depends on the card type. +Consult the hardware documentation of your card. +Since IRQ status registers are never used, +and IRQ control registers are only used for AST/4 compatible cards, +and some cards map the control/status registers to all ports in a group, +any port in a group will sometimes do for the master port. +Choose a port containing an IRQ status register for forwards compatibility, +and the highest possible port for consistency. .Pp -Serial ports controlled by the +Serial ports controlled by the .Nm sio -driver can be used for both dialin and dialout. -The minor number of the dialout -port is 128 higher than that of the corresponding dialin port. Use -.Xr stty 1 -to enable or disable modem control as required by your setup. +driver can be used for both `callin' and `callout'. +For each port there is a callin device and a callout device. +The minor number of the callout device is 128 higher +than that of the corresponding callin port. +The callin device is general purpose. +Processes opening it normally wait for carrier +and for the callout device to become inactive. +The callout device is used to steal the port from +processes waiting for carrier on the callin device. +Processes opening it do not wait for carrier +and put any processes waiting for carrier on the callin device into +a deeper sleep so that they do not conflict with the callout session. +The callout device is abused for handling programs that are supposed +to work on general ports and need to open the port without waiting +but are too stupid to do so. .Pp -While testing new cards & resolving card config DIP header & -.Nm sio flags -settings, to avoid coms. failure from lack of full modem DC level -settings on ports, -you are recommended to temporarily use syntax such as: -.Nm stty -f /dev/tty03 clocal +The +.Nm sio +driver also supports an initial-state and a lock-state control +device for each of the callin and the callout "data" devices. +The minor number of the initial-state device is 32 higher +than that of the corresponding data device. +The minor number of the lock-state device is 64 higher +than that of the corresponding data device. +The termios settings of a data device are copied +from those of the corresponding initial-state device +on first opens and are not inherited from previous opens. +Use +.Xr stty 1 +in the normal way on the initial-state devices to program +initial termios states suitable for your setup. +.sp +The lock termios state acts as flags to disable changing +the termios state. E.g., to lock a flag variable such as +CRTSCTS, use +.Nm stty crtscts +on the lock-state device. Speeds and special characters +may be locked by setting the corresponding value in the lock-state +device to any nonzero value. +.sp +Correct programs talking to correctly wired external devices +work with arbitrary initial states and almost no locking, +but other setups may benefit from changing some of the default +initial state and locking the state. +E.g., CRTSCTS should be locked on for devices that support +RTS/CTS handshaking at all times and off for devices that don't +support it at all. CLOCAL should be locked on for devices +that don't support carrier. HUPCL may be locked off if you don't +want to hang up for reason. In general, very bad things happen +if something is locked to the wrong state, and things should not +be locked for devices that support more than one setting. The +CLOCAL flag on callin ports should be locked off for logins +to avoid certain security holes, but this needs to be done by +getty if the callin port is used for anything else. .Sh FILES -.Bl -tag -width /dev/tty0? -compact +.Bl -tag -width /dev/ttyi0? -compact .It Pa /dev/tty0? for hardwired terminals +.It Pa /dev/ttyi0? +.It Pa /dev/ttyl0? +corresponding initial-state and lock-state devices .El +.sp or -.Bl -tag -width /dev/tty0? -compact +.sp +.Bl -tag -width /dev/ttyi0? -compact .It Pa /dev/ttyd? -for dialin ports +for callin ports +.It Pa /dev/ttyid? +.It Pa /dev/ttyld? +corresponding callin initial-state and lock-state devices +.sp .It Pa /dev/cua0? -for dialout ports +for callout ports +.It Pa /dev/cuai0? +.It Pa /dev/cual0? +corresponding callout initial-state and lock-state devices +.El +.sp +.Bl -tag -width /etc/rc.serial -compact +.It Pa /etc/rc.serial +examples of setting the initial-state and lock-state devices .El .Pp -The devices numbers are made from the set [0-9a-z] so that more than +The devices numbers are made from the set [0-9a-v] so that more than 10 ports can be supported. /dev/tty0? and /dev/ttyd? are mutually exclusive, if you have /dev/tty0? corresponding /dev/ttyd? must be removed and vice versa. .Sh DIAGNOSTICS .Bl -diag .It sio%d: silo overflow. -The single-character input -.Dq silo -has overflowed and incoming data has been lost. -.\".It com%d: weird interrupt: %x. -.\"The device has generated an unexpected interrupt -.\"with the code listed. +Problem in the interrupt handler. +.El +.Bl -diag +.It sio%d: interrupt-level buffer overflow. +Problem in the bottom half of the driver. .El +.Bl -diag +.It sio%d: tty-level buffer overflow. +Problem in the application. +.sp +Input has arrived faster than the given module could process it +and some has been lost. +.sp +.El +.Bl -diag +.It sio%d: reduced fifo trigger level to %d. +Attempting to avoid further silo overflows. .Sh SEE ALSO .Xr tty 4 , +.Xr termios 4 , .Xr comcontrol 8 , .Xr stty 1 . .Sh HISTORY @@ -180,12 +299,12 @@ driver is derived from the driver and is .Ud .Sh BUGS -Data loss is not near as likely on busy systems as they are with the +Data loss is not nearly as likely on busy systems as it is with the .Xr com 4 -driver but they still can occur at very high baud rates on slow systems. The -use of NS16550A's helps lot to handle high baud rates. +driver but it can still occur at very high baud rates on slow systems. +The use of NS16550A's reduces system load and helps to avoid data loss. .Pp -Stay away from NS16550 (so without the trailing A). These are early +Stay away from plain NS16550's. These are early implementations of the chip with non-functional FIFO hardware. .Pp The constants which define the locations @@ -193,12 +312,13 @@ of the various serial ports are holdovers from .Nm DOS . As shown, hex addresses can be and for clarity probably should be used instead. .Pp -As usual, you get what you pay for; cheap NS16550 clones generally don't work. -.Pp -The multiport example is based on an AST/4 card, your -mileage may vary however. Note that on the AST/4 the card's dipswitches should +Note that on the AST/4 the card's dipswitches should .Nm not -be set to use interrupt sharing. AST/4-like interrupt sharing is only used when +be set to use interrupt sharing. AST/4-like interrupt sharing is only used when .Nm multiple -AST/4 cards are installed in the same system. The sio driver does not +AST/4 cards are installed in the same system. The sio driver does not support more than 1 AST/4 on one IRQ. +.Pp +Hardwired terminals should not have different device names. +.Pp +The examples in the synopsis are too vendor-specific. |