UART Controller Test(Stress)
This automated test verifies requirements of Universal Asynchronous Receiver/Transmitter (UART) controllers. This test performs the following tasks:
One-hour stress test that uses random read, write, IOCTL, and cancel operations. Data transfer failure is expected and is ignored by the test during the time that the test is checking for driver stability issues under stress conditions.
Basic write/read IO is run after the stress test.
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.ReadWrite Device.BusController.UART.Stress Device.BusController.UART.SupportedBaudRates |
Platforms |
Windows RT 8.1 Windows 8.1 x64 Windows 8.1 x86 |
Expected run time |
~65 minutes |
Categories |
Reliability |
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=Reliability /p:UartDriver=[UartDriver] /p:Timeout=[StressTimeout] /p:FlowControl=[StressEnableFlowControl] /p:ThreadCount=[StressThreadCount] /p:InstanceID=[UartDeviceInstanceID]
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. |
Reliability |
StressTimeout |
Stress test time, in minutes. |
60 |
StressEnableFlowControl |
Turn on or off automatic hardware flow control. 0 for no flow control 1 for hardware flow control |
1 |
StressThreadCount |
Number of test threads in the stress test. |
21 |
UartDeviceInstanceID |
Device Instance Path of UART DUT. |
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 |
UartDeviceInstanceID |
Device Instance Path of the UART DUT. |
Troubleshooting
For troubleshooting information, see Troubleshooting Bus Controller Testing.
Related topics
UART Controller Test(Basic tests)
UART Controller Test(Functional tests)