WITT I2C Controller Test-Functional Tests
The Windows Inter-Integrated Circuit (I2C) 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:
-
Basic_Kernel_Test
-
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 |
Platforms |
Windows RT 8.1
|
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
Run time |
~<3 minutes |
Type |
Automated |
Perf_Read_Test
This test confirms that the controller can achieve 250kbps on a fast I2C 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: |
Run time |
~<1 minute |
Type |
Automated |
Perf_Write_Test
This test confirms that the controller can achieve 250kbps on a fast I2C 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: |
Run time |
~<1 minute |
Type |
Automated |
Perf_Seq_Test
This test confirms that the controller can achieve 250kbps on a fast I2C 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: |
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.
See Also