UART Controller Test(Functional tests)
This automated test verifies requirements of Universal Asynchronous Receiver/Transmitter (UART) controllers. The test covers the following functionality:
Baud rate support and throughput assessment
Line control settings support
RTS/CTS flow control support (handshake, control)
DTR/DCD flow control support (handshake, control) [non-mandatory]
Transfers with no flow control settings set
Loopback transfers
Non-paged aligned I/O transfers
Read transfer internal timeout, total timeout and cancellation
Write transfer total timeout and cancellation
Test details
Associated requirements |
Device.BusController.UART.Cancellation Device.BusController.UART.DMA Device.BusController.UART.FlowControl Device.BusController.UART.FlushFIFO Device.BusController.UART.HCKTestability Device.BusController.UART.IdlePowerManagement Device.BusController.UART.Performance Device.BusController.UART.ReadWrite Device.BusController.UART.SupportedBaudRates |
Platforms |
Windows RT 8.1 Windows 8.1 x64 Windows 8.1 x86 |
Expected run time |
~20 minutes |
Categories |
Functional |
Type |
Automated |
Prerequisites
This test requires external connectivity pin-outs. The test also requires that you change the Advanced Configuration and Power Interface (ACPI) firmware to enumerate the UART test.
Before you run the test, perform the following steps. For all steps, <hckcontrollername> is a Windows HCK controller and <architecture> is the architecture of the device under test (DUT); these are ARM, AMD64, or x86.
Perform the system changes that are described under the Device.BusController.UART.HCKTestability requirement.
Update the ACPI table for UART test drivers based on the template that is located at \\<hckcontrollername>\Tests\<architecture>\UART\Sample-UART.asl.
Install the UARTTest test peripheral driver from \\<hckcontrollername>\Tests\<architecture>\UART\UARTTest.inf.
Edit the UART capabilities XML file to match the UART controller capabilities. The XML file is located at \\<hckcontrollername>\Tests\<architecture>\UART\UartCapabilities.xml.
The fields in the UartCapabilities.xml file are defined as follows:
Parameter Description Default value SettableStopBitsMask
DWORD value that maps to the supported stop bits settings from the SettableStopParity bitmask of the SERIAL_COMMPROP structure.
7
SettableParityMask
DWORD value mapping to the supported parity settings from the SettableStopParity bitmask of the SERIAL_COMMPROP structure.
7936
SettableWordLengthMask
DWORD value mapping to the supported word length settings from the SettableData bitmask of the SERIAL_COMMPROP structure.
15
SettableBaudRates
Supported baud rate values.
1152003000000
DmaMtu
DMA MTU
4
DmaMaxTransferSize
DMA maximum transfer size. Note that multiple transfers can be performed in a single request.
4096
FifoHighWatermark
Hardware FIFO size.
16
IdleTimeout
Activity timeout before UART DUT goes from D0 to Dx.
200
Running the test
This automated test runs one time as it is detected and scheduled by Windows Hardware Certification Kit (Windows HCK) Studio. In Windows HCK Studio, on the Device selection page, select Microsoft UART Test Peripheral device to select UART-specific Windows HCK tests.
Alternately, you can run the test from the command line. To run the test from the command line, you must copy the following files from the Windows HCK controller to the DUT:
Files | Source location on a Windows HCK |
---|---|
TAEF binaries |
\TaefBinaries\* |
Test binaries |
\Tests\<architecture>\UART\* |
Where <architecture> is the platform of the DUT; these are ARM, AMD64, or x86.
To run the test from the command line, type the following command from a command prompt that has administrative privileges:
te.exe SerCxTestHarness.dll /p:InternalLoopback=[EnableLoopback] /p:Capabilities=Table:[CapabilitiesFileName]#[CapabilitiesTableId] /p:Category=[Category] /p:UartDriver=[UartDriver]
Where the command line parameter definitions are as follows:
Parameter | Definition | Default value in Windows HCK |
---|---|---|
EnableLoopback |
0 for hardware loopback 1 for internal loopback |
0 |
CapabilitiesFileName |
XML file that contains the UART device capabilities description. |
UartCapabilities.xml |
CapabilitiesTableId |
UartCapabilities.XML table name attribute value. |
Default |
Category |
Windows HCK Test category. |
Basic or Functional |
For more information how to run test commands by using the Test Authoring and Execution Framework (TAEF) service, see TAEF: Executing Tests and Te.exe Command Options.
Test parameter descriptions
Parameter name | Description | Default value |
---|---|---|
CapabilitiesTableId |
UartCapabilities.XML table name attribute value. |
Default |
Troubleshooting
For additional troubleshooting information, see Troubleshooting Bus Controller Testing.
Error | Description | Solution/Workaround |
---|---|---|
UART controller driver Windows HCK tests do not display in Windows HCK Studio |
When you select UART controller driver in Windows HCK Studio, the Windows HCK tests do not display on the Tests page. |
|
Read requests do not appear to read any bytes. |
The test takes a long time to complete. Write requests are all successful and read requests all fail. |
Make sure that the UART DUT test has exposed pinouts and is connected in hardware loopback mode. |
Related topics
UART Controller Test(Basic tests)