WITT I2C Controller Test-Functional Tests
The Windows Inter-Integrated Circuit (I²C) Testing Tool (WITT) functional controller tests verify Windows Hardware Certification Kit (Windows HCK)Windows® Simple Peripheral Bus (SPB) compliance and functionality. The following test cases are included:
Clock_Stretch_Test
Device_Nack_Test
Device_Lock_Unlock_Test
Cancel_Read_Test
Cancel_Write_Test
Cancel_Seq_Test
Multiple_Targets_Test
Bus_Recovery_Test
Power_Transition_Test
Perf_Read_Test
Perf_Write_Test
Perf_Seq_Test
Test details
Associated requirements |
Device.BusController.I2C.CancellationOfIO Device.BusController.I2C.ClockStretching Device.BusController.I2C.HCKTestability Device.BusController.I2C.IdlePowerManagement Device.BusController.I2C.LockUnlockIOCTL Device.BusController.I2C.NACK Device.BusController.I2C.SPBRead Device.BusController.I2C.SPBSequenceIOCTL Device.BusController.I2C.SPBWrite |
Platforms |
Windows RT 8.1 Windows 8.1 x64 Windows 8.1 x86 |
Expected run time |
~30 minutes |
Categories |
Functional |
Type |
Automated |
Clock_Stretch_Test
The controller must tolerate up to 10ms random I/O clock stretching for read, write and sequence operations.
Test details
Associated requirement(s) |
Device.BusController.I2C.ClockStretching |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Device_Nack_Test
Controller can handle the following cases:
Device NACK the write operation and still function afterwards
Device NACK for a write-read sequence.
Perform subsequent I/O after device NACK.
Test details
Associated requirement(s) |
Device.BusController.I2C.NACK |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Device_Lock_Unlock_Test
In this test, Lock and Unlock requests are completed by using SPBRequestComplete DDI. Restart condition between each I/O inside Lock-Unlock stop/start is allowed, but displays a warning message. Start and Stop before lock, and stop after lock are tested. Stop condition after Unlock request is tested.
Test details
Associated requirement(s) |
Device.BusController.I2C. LockUnlockIOCTL |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Cancel_Read_Test
The controller must support cancellation of an on-going read operation. The cancelled request is completed by using SPBRequestComplete DDI. The controller must function after the cancellation.
Test details
Associated requirement(s) |
Device.BusController.I2C. CancellationOfIO |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Cancel_Write_Test
The controller must support cancellation of an on-going write operation. The cancelled request is completed by using SPBRequestComplete DDI. The controller must function after the cancellation.
Test details
Associated requirement(s) |
Device.BusController.I2C. CancellationOfIO |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Cancel_Seq_Test
The controller must support cancellation of an on-going sequence operation. The cancelled request is completed by using SPBRequestComplete DDI. The controller must function after the cancellation.
Test details
Associated requirement(s) |
Device.BusController.I2C. CancellationOfIO |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Multiple_Targets_Test
This test case tests Lock, unlock and I/O on multiple targets, and verifies the expected sequences.
Test details
Associated requirement(s) |
Device.BusController.I2C. CancellationOfIO Device.BusController.I2C. Read Device.BusController.I2C. Write Device.BusController.I2C. Sequence |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<3 minutes |
Type |
Automated |
Bus_Recovery_Test
This test case makes sure that the driver correctly implements the request watch dog timer and keeps communicating with the peripheral device after it is reset.
Test details
Associated requirement(s) |
Device.BusController.I2C. Stress |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<5 minutes |
Type |
Automated |
Power_Transition_Test
This test verifies that the controller driver manages idle power in the following ways:
D3 state is not too forceful, to avoid a zero idle timeout problem.
Controller goes to D3 if there is no traffic for long time.
Test details
Associated requirement(s) |
Device.BusController.I2C. IdlePowerManagement |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<3 minutes |
Type |
Automated |
Perf_Read_Test
This test confirms that the controller can achieve 250kbps on a fast I²C target that receives data from WITT in PERF test mode (packet size 4096).
Associated requirement(s) |
Device.BusController.I2C.SPBRead |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Perf_Write_Test
This test confirms that the controller can achieve 250kbps on a fast I²C target that transmits to WITT in PERF mode (packet size 4096).
Associated requirement(s) |
Device.BusController.I2C.SPBWrite |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Perf_Seq_Test
This test confirms that the controller can achieve 250kbps on a fast I²C target, of sequence operations to and from WITT in PERF mode (packet size 4096).
Associated requirement(s) |
Device.BusController.I2C.SPBSequence |
Platforms |
System on Chip (SoC) reference platforms: Windows RT (ARM-based)Windows 8 (x64)Windows 8 (x86) |
Run time |
~<1 minute |
Type |
Automated |
Running the tests
Before you run the test, complete the test setup as described in the test requirements WITT I2C Testing Prerequisites.
Troubleshooting
For troubleshooting information, see Troubleshooting Bus Controller Testing.
Related topics