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.