Test 52-20. linkretrainonretryfail – Teledyne LeCroy Protocol PCI Express Script Automation Test Tool User Manual

Page 43

Advertising
background image

Teledyne LeCroy

PCI Express Script Automation Test Tool User Manual

39

3.2.1.5 Test 52-20. LinkRetrainOnRetryFail


ASSERTIONS COVERED:
DLL.5.2#2, DLL.5.2#7
The intent of this test is to ensure that the link connected to the DUT goes into retraining after trying and failing for
REPLAY_NUM of times to get a TLP through. It also tests that the retry buffer and link states are not changed
while in retraining and that the pending TLP is retransmitted after link retraining completes.

Trainer Stimulus: link_52-20_LinkRetrainOnRetryFail.peg

Recording Options: link_layer.rec

Verification Scripts: link_52-20_LinkRetrainOnRetryFail.pevs

Test Algorithm:

1. Issue command to the Driver to clear all error status bits for the Root or Switch port to which the Device

Emulator is attached.

2. Main test stage. Do the following:

a. Issue command to the Driver to perform 1-DWORD Memory Write to the Device Emulator.
b. Switch to the 'Disable' ACK/NAK policy.
c. Wait (with timeout) for the link to be retrained as a result of Memory Write TLP to be sent

REPLAY_NUM + 1 times.

d. Switch back to the 'Automatic' ACK/NAK policy.
e. Acknowledge the TLP that comes after link retraining.

3. Issue command to the Driver to reflect the current values of the Error Reporting Registers for the port to

which the Device Emulator is attached (using Configuration Writes).


Pass/Fail Criteria:

Test should successfully progress though all test stages.
All test stages should be executed without protocol violations.

Verify that:
a) The link did not change its state, and the Memory Write TLP is sent after the retraining is complete (that the
DATA_BUF contains the correct data). If not, treat it as DUT failure (DLL.5.2#7).
b) The DUT set the ERR_CORR bit in its Device Status register. If not, treat it as DUT failure (DLL.5.2#2).
c) The DUT did not set any error bits in the Advanced Uncorrectable Error Status register (if implemented).
d) The DUT set the “REPLAY_NUM Rollover Status” bit in the Advanced Error Reporting Correctable Error Status
register (if implemented). If not, treat it as DUT failure (DLL.5.2#2).
e) The DUT set the “Correctable Error Received” bit in the Root Error Status register (if implemented and
applicable).

If the DUT meets all these criteria, the DUT passes the test.

Advertising