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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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

See the device hardware requirements.

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.

Device.BusController Testing

 

 

Send comments about this topic to Microsoft