F-Tile Avalon® Streaming Intel® FPGA IP for PCI Express* User Guide

ID 683140
Date 1/26/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

8.2.5. Using the F-Tile Link Inspector

The Link Inspector is found under the PCIe Link Inspector tab after opening the Debug Toolkit.

The Link Inspector is enabled by default when the Enable Debug Toolkit is enabled.

Figure 88. View of the Link Inspector

When the Dump LTSSM Sequence to Text File button is initially clicked, a text file (ltssm_sequence_dump_p*.txt) with the LTSSM information is created in the location from where the System Console window is opened. Depending on the PCIe topology, there can be up to four text files. Subsequent LTSSM sequence dumps will append to the respective files.

Note: If you open System Console in a directory that is not writable, the text file will not be generated. To avoid this issue, open System Console from the Command Prompt window (on a Windows system) or change the directory's permission settings to writable.
Example LTSSM Sequence Dump
         LTSSM State                     | Timer (ns) |  LTSSM State #
0x11     L0                              | 126639826  |  0                   
0xd      RECOVERY_LOCK                   | 3708       |  1                   
0x5      PRE_DETECT_QUIET                | 55730      |  2                   
0x0      DETECT_QUIET                    | 114539904  |  3                   
0x1      DETECT_ACTIVE                   | 560        |  4                   
0x6      DETECT_WAIT                     | 12582936   |  5                   
0x1      DETECT_ACTIVE                   | 552        |  6                   
0x0      DETECT_QUIET                    | 12582936   |  7                   
0x1      DETECT_ACTIVE                   | 560        |  8                   
0x6      DETECT_WAIT                     | 12582936   |  9                   
0x1      DETECT_ACTIVE                   | 560        |  10                  
0x2      POLLING_ACTIVE                  | 25855048   |  11                  
0x3      POLLING_COMPLIANCE              | 64165384   |  12                  
0x5      PRE_DETECT_QUIET                | 16850      |  13                  
0x0      DETECT_QUIET                    | 38471890   |  14                  
0x1      DETECT_ACTIVE                   | 560        |  15                  
0x6      DETECT_WAIT                     | 12582936   |  16                  
0x1      DETECT_ACTIVE                   | 552        |  17                  
0x2      POLLING_ACTIVE                  | 25860536   |  18                  
0x3      POLLING_COMPLIANCE              | 13688808   |  19                  
0x2      POLLING_ACTIVE                  | 65696      |  20                  
0x4      POLLING_CONFIG                  | 50331672   |  21                  
0x5      PRE_DETECT_QUIET                | 1048       |  22                  
0x0      DETECT_QUIET                    | 1568       |  23                  
0x1      DETECT_ACTIVE                   | 560        |  24                  
0x2      POLLING_ACTIVE                  | 351712     |  25                  
0x4      POLLING_CONFIG                  | 486576     |  26                  
0x7      CONFIG_LINKWD_START             | 160        |  27                  
0x8      CONFIG_LINKWD_ACCEPT            | 832        |  28                  
0x9      CONFIG_LANENUM_WAIT             | 1808       |  29                  
0xa      CONFIG_LANENUM_ACCEPT           | 128        |  30                  
0xb      CONFIG_COMPLETE                 | 1056       |  31                  
0xc      CONFIG_IDLE                     | 1112       |  32                  
0x11     L0                              | 16         |  33                  
0xd      RECOVERY_LOCK                   | 520        |  34                  
0xf      RECOVERY_RCVRCFG                | 67200      |  35                  
0xe      RECOVERY_SPEED                  | 566460     |  36                  
0xd      RECOVERY_LOCK                   | 16         |  37                  
0x20     RECOVERY_EQ0                    | 10485762   |  38                  
0x21     RECOVERY_EQ1                    | 256        |  39                  
0x22     RECOVERY_EQ2                    | 1712884    |  40                  
0x23     RECOVERY_EQ3                    | 5188070    |  41                  
0xd      RECOVERY_LOCK                   | 146        |  42                  
0xf      RECOVERY_RCVRCFG                | 438        |  43                  
0x10     RECOVERY_IDLE                   | 64         |  44                  
0x11     L0                              | 186        |  45                  
0xd      RECOVERY_LOCK                   | 788        |  46                  
0xf      RECOVERY_RCVRCFG                | 2294       |  47                  
0xe      RECOVERY_SPEED                  | 575050     |  48                  
0xd      RECOVERY_LOCK                   | 8          |  49                  
0x20     RECOVERY_EQ0                    | 10485762   |  50                  
0x21     RECOVERY_EQ1                    | 134        |  51                  
0x22     RECOVERY_EQ2                    | 1481458    |  52                  
0x23     RECOVERY_EQ3                    | 4492962    |  53                  
0xd      RECOVERY_LOCK                   | 76         |  54                  
0xf      RECOVERY_RCVRCFG                | 228        |  55                  
0x10     RECOVERY_IDLE                   | 44         |  56                  
0x11     L0                              | -          |  Current             


The current LTSSM state is: L0

Each LTSSM monitor has a FIFO storing the time values and captured LTSSM states. When you choose to dump out the LTSSM states, reads are dependent on the FIFO elements and will empty out the FIFO.

The Link Inspector only writes to its FIFO if there is a state transition. In cases where the link is stable in L0, there will be no write and hence no text file will be dumped.

When you want to dump the LTSSM sequence, a single read of the FIFO status of the respective core is performed. Depending on the empty status and how many entries are in the FIFO, successive reads are executed.