Source string Read only

(itstool) path: row/entry
14/140
Context English State
It is important to understand that a simple count of differences from COMTEST does not reveal a lot about what differences are important and which are not. For example, about half of the differences reported in the two modems listed above that have internal UARTs were caused by the clone UARTs not supporting five- and six-bit character modes. The real 16550, 16450, and 8250 UARTs all support these modes and COMTEST checks the functionality of these modes so over fifty differences are reported. However, almost no modern modem supports five- or six-bit characters, particularly those with error-correction and compression capabilities. This means that the differences related to five- and six-bit character modes can be discounted.
Many of the differences COMTEST reports have to do with timing. In many of the clone designs, when the host reads from one port, the status bits in some other port may not update in the same amount of time (some faster, some slower) as a <emphasis>real</emphasis> NS16550AFN and COMTEST looks for these differences. This means that the number of differences can be misleading in that one device may only have one or two differences but they are extremely serious, and some other device that updates the status registers faster or slower than the reference part (that would probably never affect the operation of a properly written driver) could have dozens of differences reported.
COMTEST can be used as a screening tool to alert the administrator to the presence of potentially incompatible components that might cause problems or have to be handled as a special case.
If you run COMTEST on a 16550 that is in a modem or a modem is attached to the serial port, you need to first issue a ATE0&amp;W command to the modem so that the modem will not echo any of the test characters. If you forget to do this, COMTEST will report at least this one difference:
Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61
8250/16450/16550 Registers
The 8250/16450/16550 UART occupies eight contiguous I/O port addresses. In the IBM PC, there are two defined locations for these eight ports and they are known collectively as <filename>COM1</filename> and <filename>COM2</filename>. The makers of PC-clones and add-on cards have created two additional areas known as <filename>COM3</filename> and <filename>COM4</filename>, but these extra COM ports conflict with other hardware on some systems. The most common conflict is with video adapters that provide IBM 8514 emulation.
<filename>COM1</filename> is located from 0x3f8 to 0x3ff and normally uses IRQ 4. <filename>COM2</filename> is located from 0x2f8 to 0x2ff and normally uses IRQ 3. <filename>COM3</filename> is located from 0x3e8 to 0x3ef and has no standardized IRQ. <filename>COM4</filename> is located from 0x2e8 to 0x2ef and has no standardized IRQ.
A description of the I/O ports of the 8250/16450/16550 UART is provided below.
I/O Port
Access Allowed
+0x00
write (DLAB==0)
Transmit Holding Register (THR).
Information written to this port are treated as data words and will be transmitted by the UART.
read (DLAB==0)
Receive Buffer Register (RBR).
Any data words received by the UART form the serial link are accessed by the host by reading this port.
write/read (DLAB==1)
Divisor Latch LSB (DLL)
This value will be divided from the master input clock (in the IBM PC, the master clock is 1.8432MHz) and the resulting clock will determine the baud rate of the UART. This register holds bits 0 thru 7 of the divisor.
+0x01
Divisor Latch MSB (DLH)
This value will be divided from the master input clock (in the IBM PC, the master clock is 1.8432MHz) and the resulting clock will determine the baud rate of the UART. This register holds bits 8 thru 15 of the divisor.
write/read (DLAB==0)
Interrupt Enable Register (IER)
The 8250/16450/16550 UART classifies events into one of four categories. Each category can be configured to generate an interrupt when any of the events occurs. The 8250/16450/16550 UART generates a single external interrupt signal regardless of how many events in the enabled categories have occurred. It is up to the host processor to respond to the interrupt and then poll the enabled interrupt categories (usually all categories have interrupts enabled) to determine the true cause(s) of the interrupt.
Bit 7
Reserved, always 0.
Bit 6
Bit 5

Loading…

No matching activity found.

Browse all component changes

Glossary

English English
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: row/entry
Flags
read-only
Source string location
article.translate.xml:1193
String age
a year ago
Source string age
a year ago
Translation file
articles/serial-uart.pot, string 277