DOCUMENT:Q103108 20-AUG-1993 [W_NT] TITLE :16550 UART FIFO Support in Windows NT PRODUCT :Windows NT PROD/VER:3.10 OPER/SYS:WINDOWS KEYWORDS: ------------------------------------------------------------------ The information in this article applies to: - Microsoft Windows NT operating system, version 3.1 - Microsoft Windows NT Advanced Server, version 3.1 ------------------------------------------------------------------ SUMMARY ======= On COM ports that have a 16550 UART chip, Windows NT will automatically enable FIFO support. To verify this, run Event Viewer and look at the system log. Upon startup, each COM port that has a 16550 UART should generate an event whose source is listed as "Serial." If the FIFO for that port has been enabled, the description of the event will read: While validating that COM1 was really a serial port, a FIFO was detected. The FIFO will be used. MORE INFORMATION ================ While enabling FIFO does grant a speed advantage when communicating over the serial port, there are several known hardware issues with the 16550 UART that show up when FIFO is enabled: - The 16650AF has a documented transmit problem that can result in the random loss of a byte. The transmit FIFO occasionally fails to transmit if there is a single character still in the shift register and one is put in the holding register. The character does not transmit, you are not informed, and no interrupts are generated. This and other problems are fully documented in National Semiconductor errata (8/9/90). The transmit problem may or may not be fixed in the 16550AFN revision. - It is not possible to determine, through software, which revision of the chip is installed, so drivers cannot adapt to the problems of the different chips. - Enabling FIFO by default will guarantee occasional data loss for any configurations that use 16550AF chips or earlier revisions and possibly later revisions also. If you are experiencing data loss with FIFO enabled, there is a utility included on the Windows NT CD-ROM to turn FIFO on and off. The utility is in the SUPPORT\SUPTOOLS\I386 directory and consists of the following three files: FIFO.CMD - A batch file to turn FIFO on and off FIFO_ON.INI - A data file used to turn FIFO on in registry FIFO_OFF.INI - A data file used to turn FIFO off in registry To use the utility, either change to the correct directory on the Windows NT CD-ROM drive or copy those three files to another drive and change to the directory they are now in and issue one of the following commands: FIFO OFF - To turn FIFO support OFF FIFO ON - To turn FIFO support ON If you cannot access these three files or no longer have them, FIFO support can still be changed in the registry through the following steps: 1. Run Registry Editor (REGEDT32.EXE). 2. Select the key: \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Serial 3. One of the values in that key will be ForceFifoEnable. By default, this value will be set to 1, which enables it. To disable it, select the value, press ENTER and change the value to 0. To enable it, change the value back to 1. 4. Choose the OK button. 5. Exit Registry Editor, shut down and restart the system. Additional reference words: 3.10 KBCategory: KBSubCategory: winnt howto pertune ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 1993.