Содержание

PCIe

PageAbbreviationDescriptionTags
ltssmSTSSMLink Training and Status State Machinepcie

Docs

https://xilinx.github.io/pcie-debug-kmap/pciedebug/build/html/docs/PCIe_Collaterals/index.html PCIE DEBUG (GENERAL)
https://support.xilinx.com/s/article/56616?language=en_US 56616 - 7 Series Integrated Block for PCI Express - Link Training Debug Guide
https://support.xilinx.com/s/article/73361?language=en_US 73361 - Xilinx PCI Express Gen3 Link Training Debugging Guide for UltraScale and UltraScale+ Devices
https://support.xilinx.com/s/article/71355?language=en_US 71355 - Vivado ILA Usage Guide for UltraScale FPGA Gen3 Integrated Block for PCI Express
https://support.xilinx.com/s/article/1097525?language=en_US Debugging PCI Express Link Training Issues with Integrated Debugging Features in the IP
https://github.com/Xilinx/chipscopy/tree/master ILA, JTAG, DDR, PROGRAM

Connectors

Сторона A (Side A) Сторона B (Side B)
A1 PRSNT1# B1 +12V
A2 +12V B2 +12V
A3 +12V B3 +12V
A4 GND B4 GND
A5 JTAG2 B5 SMBCLK
A6 JTAG3 B6 SMBDAT
A7 JTAG4 B7 GND
A8 JTAG5 B8 +3.3V
A9 +3.3V B9 JTAG1
A10 +3.3V B10 +3.3Vaux
A11 PERST# B11 WAKE#
A12 GND B12 CLKREQ#
A13 REFCLK+ B13 GND
A14 REFCLK- B14 PETp0
A15 GND B15 PETn0
A16 PERp0 B16 GND
A17 PERn0 B17 PRSNT2#
A18 GND B18 GND
A19 RSVD B19 PETp1
A20 GND B20 PETn1
A21 PERp1 B21 GND
A22 PERn1 B22 GND
A23 GND B23 PETp2
A24 GND B24 PETn2
A25 PERp2 B25 GND
A26 PERn2 B26 GND
A27 GND B27 PETp3
A28 GND B28 PETn3
A29 PERp3 B29 GND
A30 PERn3 B30 PWRBRK#
A31 GND B31 PRSNT2#
A32 RSVD B32 GND
A33 RSVD B33 PETp4
A34 GND B34 PETn4
A35 PERp4 B35 GND
A36 PERn4 B36 GND
A37 GND B37 PETp5
A38 GND B38 PETn5
A39 PERp5 B39 GND
A40 PERn5 B40 GND
A41 GND B41 PETp6
A42 GND B42 PETn6
A43 PERp6 B43 GND
A44 PERn6 B44 GND
A45 GND B45 PETp7
A46 GND B46 PETn7
A47 PERp7 B47 GND
A48 PERn7 B48 PRSNT2#
A49 GND B49 GND
A50 RSVD B50 PETp8
A51 GND B51 PETn8
A52 PERp8 B52 GND
A53 PERn8 B53 GND
A54 GND B54 PETp9
A55 GND B55 PETn9
A56 PERp9 B56 GND
A57 PERn9 B57 GND
A58 GND B58 PETp10
A59 GND B59 PETn10
A60 PERp10 B60 GND
A61 PERn10 B61 GND
A62 GND B62 PETp11
A63 GND B63 PETn11
A64 PERp11 B64 GND
A65 PERn11 B65 GND
A66 GND B66 PETp12
A67 GND B67 PETn12
A68 PERp12 B68 GND
A69 PERn12 B69 GND
A70 GND B70 PETp13
A71 GND B71 PETn13
A72 PERp13 B72 GND
A73 PERn13 B73 GND
A74 GND B74 PETp14
A75 GND B75 PETn14
A76 PERp14 B76 GND
A77 PERn14 B77 GND
A78 GND B78 PETp15
A79 GND B79 PETn15
A80 PERp15 B80 GND
A81 PERn15 B81 PRSNT2#
A82 GND B82 RSVD

Xilinx

Artix Ultrascale+

PCIe корка стартует нормально только если прошивка быстро загружается из флешки.

Вариант конфигурации через JTAG, а потом ребут компа или пауза в u-boot и потом загрузка Linux не прокатывают.

Возможно, это можно как-то обойти (более глубоко сбрасывать трансиверы - PERST недостаточно)

SMARC

wiki:if:pcie:smarc_pcie.png

LTSSM

link

ltssm.jpg

#define LTSSM_DETECT                 0
#define LTSSM_POLLING                1
#define LTSSM_CONFIG                 2
#define LTSSM_RECOVERY               3
#define LTSSM_DISABLED               4
#define LTSSM_HOTRESET               5
#define LTSSM_LOOPBACK               6
#define LTSSM_L0                     7
#define LTSSM_L0s                    8
#define LTSSM_L1                     9
#define LTSSM_L2                     10
detect.quiet",			/* 0x00 */
detect.active",			/* 0x01 */
polling.active",		/* 0x02 */
polling.compliance",		/* 0x03 */
polling.configuration",		/* 0x04 */
config.linkwidthstart",		/* 0x05 */
config.linkwidthaccept",	/* 0x06 */
config.lanenumwait",		/* 0x07 */
config.lanenumaccept",		/* 0x08 */
config.complete",		/* 0x09 */
config.idle",			/* 0x0A */
recovery.receiverlock",		/* 0x0B */
recovery.equalization",		/* 0x0C */
recovery.speed",		/* 0x0D */
recovery.receiverconfig",	/* 0x0E */
recovery.idle",			/* 0x0F */
L0",				/* 0x10 */
L0s",				/* 0x11 */
L1.entry",			/* 0x12 */
L1.idle",			/* 0x13 */
L2.idle",			/* 0x14 */
L2.transmitwake",		/* 0x15 */
disable",			/* 0x16 */
loopback.entry",		/* 0x17 */
loopback.active",		/* 0x18 */
loopback.exit",			/* 0x19 */
hotreset",			/* 0x1A */

Xilinx Xore:

00: Detect.Quiet
01: Detect.Active
02: Polling.Active
03: Polling.Compliance
04: Polling.Configuration
05: Configuration.Linkwidth.Start
06: Configuration.Linkwidth.Accept
07: Configuration.Lanenum.Accept
08: Configuration.Lanenum.Wait
09: Configuration.Complete
0A: Configuration.Idle
0B: Recovery.RcvrLock
0C: Recovery.Speed
0D: Recovery.RcvrCfg
0E: Recovery.Idle
10: L0
11-16: Reserved
17: L1.Entry
18: L1.Idle
19-1A: Reserved
20: Disabled
21: Loopback_Entry_Master
22: Loopback_Active_Master
23: Loopback_Exit_Master
24: Loopback_Entry_Slave
25: Loopback_Active_Slave
26: Loopback_Exit_Slave
27: Hot_Reset
28: Recovery_Equalization_Phase0
29: Recovery_Equalization_Phase1
2a: Recovery_Equalization_Phase2
2b: Recovery_Equalization_Phase3