Pcie Debug Details
Pcie Debug Details
Pcie Debug Details
2
PureSpec Debug solution - Overview
3
Overview (Cont.)
The big picture
• Performance report
System • Helps system integrators to better utilize the PCIe.
• Packet Tracker
Link • High level overview of traffic on the link. Can be customized
• Trace\History file
• A cycle accurate log file that keeps everything (Purespec wise) that happened
Protocol in the simulation.
4
Overview (Cont.)
.denalirc semantics
5
• Performance report
System • Helps system integrators to better utilize the PCIe.
• Trace\History file
• A cycle accurate log file that keeps everything (Purespec wise) that
Protocol happened in the simulation.
6
Slide 6
r1 is it most?
ronenb, 10/23/2013
r2
7
Slide 7
consider give more detailed reports including TX and stress report with testcase that is more representive
• Trace\History file
• A cycle accurate log file that keeps everything (Purespec wise) that
Protocol happened in the simulation.
8
Packet Tracker (Cont.)
OS packets
SKIP , TS1..
IDLE etc
9
r19
Completer id
Packet Tracker (Cont.)
10
Slide 10
r6 what is message
ronenb, 10/23/2013
• Trace\History file
• A cycle accurate log file that keeps everything (Purespec wise) that
Protocol happened in the simulation.
11
History File (Cont.)
State transition
Source (DUT/VIP)
Payload
Time
12
Trace File
13
Debugging With Trace File
Trace Debug information
Debug: .denalirc Settings
• Captures all .denalirc settings used during the simulation
• grep “ V “ denali.trc
:
V PcieTLBypassInit 0
V PciePhyScrambleData 1
V PcieTransLogFile denali.log
V TraceFile denali.trc
:
:
Debug: SOMA File
• For each Denali model, captures:
o SOMA file used
o All the contents of the SOMA file
o grep “ f “ denali.trc
M f /projects/ep_rc_x1/B0/tb_top/soma/pcie_rc_mon_pipe.spc
14
Debugging With Trace File
Introduction
• Very useful to debug and reproduce issues offsite
• Stores sufficient information to create a test-case for a particular
issue
# Library: PLI
# Simulator: ncsim 06.20-p001
# System: Linux lc-sj1-1101 2.6.9-42.0.3.ELsmp #1 SMP Mon Sep 25 17:24:31 EDT 2006 x86_64
# RH Release:Red Hat Enterprise Linux WS release 4 (Nahant Update 4)
# BuildData: c441374dde594ec0a2b7100dbc5b26d3 2008/09/08 23:53:35
15
Debugging With Trace File
Trace Debug information
Debug: PCIe instance mapping
• Captures all .denalirc settings used during the simulation
• Grep –i “ i “ denali.trc
i – model instance id
I – denali memory instance id
0 i tb.DUT
1 I tb.DUT(cfg_0_0) @[tb.DUT]
2 I tb.DUT(mem_0_0_0) @[tb.DUT]
3 I tb.DUT(mem_0_0_6) @[tb.DUT]
4 I tb.DUT(vmem_0_0_0) @[tb.DUT]
5 I tb.DUT(vmem_0_0_2) @[tb.DUT]
6 i tb.ep_monitor
7 I tb.ep_monitor(cfg_0_0) @[tb.denali_monitor]
8 I tb.ep_monitor(mem_0_0_0) @[tb.denali_monitor]
9 I tb.ep_monitor(mem_0_0_6) @[tb.denali_monitor]
A I tb.ep_monitor(vmem_0_0_0) @[tb.denali_monitor]
B I tb.ep_monitor(vmem_0_0_2) @[tb.denali_monitor]
C i tb.rc
D I tb.rc(cfg_0_0) @[tb.denali_model]
E I tb.rc(mem_0_0_0) @[tb.denali_model]
F I tb.rc(mem_RCMEM)
G I tb.rc(p_0.cfg_0_0) @[tb.denali_model]
H I tb.rc(mem_msi_64) @[tb.denali_model]
I I tb.rc(mem_RCMEM_0) @[tb.denali_model]
J I tb.rc(mem_RCMEM_1) @[tb.denali_model]
K I tb.rc(mem_RCMEM)
16
:
Trace File (Cont.)
LTSSM
H mean change
info appear at History file
Instance
Payload
17
grep / egrep reminder
() needed because .* that precede
^ - start with
Disclaimer
Most of the grep result examples at this presentation were trunked to fit the slide size
18
PCIE HIERARCHY AND
INITIALIZATION PROCESS
19
Hierarchy of PCIe Topology
20
r7
Hierarchy of PCIe Topology
EP UpstreamPort
[port=0, function=1] BAR 0 BAR Start Addr
• BAR Instance:
• tb.ep 8 ns Debug: hier[mem]: cfg_0_1.bar_0[0x00400000]
[10b_Mem32]
21
Slide 21
TL_WRREG_DIFF: Certain registers may not be written with the exact value specified by
the write command due to access types of one or more bits
TL_WRREG_SAME: The exact value was written
grep for “Denali BAR” will get denali internal bar registers. Check at the User manual
what can be done with this register!
22
Slide 22
r5 grep BAR
need to add kind of story explnations on those writes, explain the shadow cfg etc , explain the _DIFF
ronenb, 10/24/2013
Register Writes (WrReg)
24
Capabilities query
r12
• Keyword “capability”
tb.ep 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [cfg_0_0] capability:
Type0 Header [0x00,0x3f] next=>0x40
tb.ep 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [cfg_0_0] capability:
Power Management [0x40,0x47] next=>0x48
tb.ep 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [cfg_0_0] capability:
PCI Express [0x48,0x5b] next=>0x00
tb.rc 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [cfg_0_0] capability:
Type1 Header [0x00,0x3f] next=>0x40
tb.rc 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [cfg_0_0] capability:
Power Management [0x40,0x47] next=>0x48
tb.rc 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [cfg_0_0] capability:
PCI Express [0x48,0x6b] next=>0x00
tb.rc 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [p_0.cfg_0_0]
capability: Type0 Header [0x00,0x3f] next=>0x40
tb.rc 0 ns Detected[cfg_0_0] [] TL_CFG_NEWCAP [PCISIG]. [p_0.cfg_0_0]
capability: Power Management [0x40,0x47] next=>0x48
25
Slide 25
• This is the starting point when you see there is no traffic transmitted
between PCIe components.
• Later need to check the below in descending order : Check where stuck
– egrep "Port Function state" denali.his at enumeration
need to reach END
– egrep “TL state” denali.his
Make sure reach
– egrep "DLCMSM state" denali.his to Normal
– egrep "LTSSM state" denali.his
Make sure
reach to
Active
Make sure
reach to
26 L0
Slide 26
r18
tb.rc 1420 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_END => CAP_BEGIN
tb.rc 1476 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_BEGIN => CAP_END
tb.rc 1740 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_END => CAP_BEGIN
tb.rc 3660 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_BEGIN => VC_BEGIN
tb.rc 3820 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state VC_BEGIN => VC_ARB
tb.rc 3980 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state VC_ARB => VC_PORT_ARB
tb.rc 3984 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state VC_PORT_ARB => CAP_END
tb.rc 3988 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_END => CAP_BEGIN
tb.rc 4044 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_BEGIN => CAP_END
tb.rc 4100 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_END => CAP_BEGIN
tb.rc 4156 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_BEGIN => CAP_END
tb.rc 4212 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_END => CAP_BEGIN
tb.rc 4272 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_BEGIN => CAP_END
tb.rc 4328 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_END => CAP_BEGIN
tb.rc 4384 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_BEGIN => CAP_END
tb.rc 4492 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state CAP_END => SET_BARS_BEGIN
tb.rc 4492 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state SET_BARS_BEGIN => ASSIGN_BARS
tb.rc 4492 ns Debug: cfg_0_0[0_0_0]: Port Function state SET_BARS_BEGIN => ASSIGN_BARS
tb.rc 4492 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state ASSIGN_BARS => SET_BARS_END
tb.rc 4492 ns Debug: cfg_0_0[0_0_0]: Port Function state ASSIGN_BARS => SET_BARS_END
tb.rc 4496 ns Debug: cfg_0_0[0_0_0]: Port Function state SET_BARS_END => FLUSHQ
tb.rc 5012 ns Debug: cfg_0_0[0_0_0]: Port Function state FLUSHQ => END
tb.rc 5012 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state SET_BARS_END => FLUSHQ
tb.rc 5016 ns Debug: p_0.cfg_0_0[1_0_0]: Port Function state FLUSHQ => END
27
Slide 27
28
Initialization process
DL state
• grep "DL.*state" denali.his
tb.ep_monitor 0 ns Debug: DL[port_0] : DLCMSM state : <Undefined> =>
Inactive
tb.ep_monitor 0 ns Debug: DL[port_0] : state unknown => DL_Down
tb.ep_monitor 0 ns Debug: DL[port_0] : DLCMSM state : Inactive => Init
tb.rc 0 ns Debug: DL[port_0] : DLCMSM state : <Undefined> => Inactive
tb.rc 0 ns Debug: DL[port_0] : state unknown => DL_Down
tb.rc 30 ns Debug: DL[port_0] : DLCMSM state : Inactive => Init
tb.ep_monitor 75800 ps Debug: DL[port_0] : state DL_Down => DL_Up
tb.rc 80 ns Debug: DL[port_0] : state DL_Down => DL_Up
tb.rc 92 ns Debug: DL[port_0] : DLCMSM state : Init => Active
tb.ep_monitor 95800 ps Debug: DL[port_0] : DLCMSM state : Init => Active
29
Initialization process
LTSSM state The first L0
is important
30
Initialization process
Full LTSSM grep
31
Power Management (PM)
32
PACKETS FLOW
33
Requests and Completions
CMPL 2
CMPL 1
CMPL
REQ
REQ
TL TL
DLL DLL
PL PL
TX RX TX RX
TLP
REQ
TL TL
TLP ACK
DLL DLL
Seq CRC
PL PL
Frm
Frm
TX RX TX RX
Does any TLP REQ answered No, only non - posted TLPs like:
with CMPL pkt? Cfg , Mrd , IO
Does DLLP layer send No, one DLLP packet can target
ACK\NAK for each TLP pkt? multiple TLPs
how connect pkts in the several layers etc and completion retry buffer etc maybe pointer to the manual
38
Slide 38
how connect pkts in the several layers etc and completion retry buffer etc maybe pointer to the manual
39
Packet Callback Diagram
TL_user_queue_enter
TX Side RX side
TL process
User Queue
TL_user_queue_exit
TL_user_queue_exit TL_Rx_packet
TL_transmit_queue_enter
TL_api_queue_exit
TL_transmit_queue_enter
TL process
Transmit Queue API Queue
TL_TX_completion_queue_enter TL_api_queue_enter
Ordering checks
TL_transmit_queue_exit TL_RX_completion_queue_enter
TL_receive_queue_exit
Completion Queue
Completion Queue
TL Receive Queue
TL_ Tx
TL_TX_packet
_packet TL_to_DL
TL_to_DL TL_TX_completion_queue_exit, TL_Rx_packet
TL_TX_completion_queue_exit,
TL_RX_completion_queue_exit TL_receive_queue_enter
TL_RX_completion_queue_exit
DL_to_TL DL_to_TL
DL_ Tx _retry_buffer_enter
DL_TX_retry_buffer_enter
DL_ Tx _queue_enter
DL_Rx_queue_enter
DL_ Tx _retry_buffer_exit
DL_TX_retry_buffer_exit DL_Rx_queue_exit
DL Tx Queue Retry
RetryBuffer
Buffer Queue DL Rx Queue
PL process PL process
PL
PL_TX_start_packet PL_RX_start_packet
40
TX/TX_ PL_TX_end_packet PL_RX_end_packet RX/RX_
Packet Callback information
example
grep "MRd.*User" denali.his
tb.rc 50176 ns Debug: [port_0] TL_user_queue_exit TLP [MRd_32] User [addr:0x00d534e4
reqId:0x0000 tag:-- len:28 fbe:1000 lbe:0011 tc:0 td:0 ep:0 attr:0] [Qsize:0]
At this point both User and model gen
tb.rc 50176 ns Debug: [port_0] TL_transmit_queue_enter TLP [MRd_32] User [addr:0x00d534e4 Pkts will appear
reqId:0x0000 tag:0] [Qsize:2 PLsize:7 tc0.Qsize:2] Add valid Tag for non-posted pkts
tb.rc 50192 ns Debug: [port_0] TL_TX_completion_queue_enter TLP [MRd_32] User
[addr:0x00d534e4 reqId:0x0000 tag:0] [Qsize:1]
tb.rc 50192 ns Debug: [port_0] TL_transmit_queue_exit TLP [MRd_32] User [addr:0x00d534e4
reqId:0x0000 tag:0] [Qsize:0 PLsize:0 tc0.Qsize:0] A TLP passed the Flow Control gating
tb.rc 50192 ns Debug: [port_0] TL_TX_packet TLP [MRd_32] User [addr:0x00d534e4 functions and TLP ordering rules,
reqId:0x0000 tag:0 len:28 fbe:1000 lbe:0011 tc:0 td:0 ep:0 attr:0] ready to be transmitted through DL.
tb.rc 50192 ns Debug: [port_0] TL_to_DL TLP [MRd_32] User [addr:0x00d534e4 reqId:0x0000
tag:0 len:28 fbe:1000 lbe:0011 tc:0 td:0 ep:0 attr:0] If the __error field does not have an error ID,
this indicates that the TLP has been
tb.rc 50192 ns Debug: [port_0] DL_TX_retry_buffer_enter DLP[seq:100 crc:0x60a95b53]
successfully processed by the TL
[MRd_32] User [addr:0x00d534e4 reqId:0x0000 tag:0]
tb.rc 50192 ns Debug: [port_0] DL_TX_queue_enter DLP[seq:100 crc:0x60a95b53] [MRd_32]
User [addr:0x00d534e4 reqId:0x0000 tag:0 len:28 fbe:1000 lbe:0011 tc:0 td:0 ep:0 attr:0]
tb.rc 50216 ns Debug: [port_0] DL_TX_queue_exit DLP[seq:100 crc:0x60a95b53] [MRd_32] User
[addr:0x00d534e4 reqId:0x0000 tag:0]
A TLP has a valid TLP sequence number
tb.rc 50216 ns Debug: [port_0] DL_to_PL DLP[seq:100 crc:0x60a95b53] [MRd_32] User A DLLP has the
and CRC assigned.
[addr:0x00d534e4 reqId:0x0000 tag:0 len:28 fbe:1000 lbe:0011 tc:0 td:0 ep:0 attr:0]
correct LCRC assigned.
tb.rc 50216 ns Debug: [port_0] PL_TX_start_packet PLP[seq:100 crc:0x60a95b53] [MRd_32] User
[addr:0x00d534e4 reqId:0x0000 tag:0]
tb.rc 50224 ns Debug: [port_0] PL_TX_end_packet PLP[seq:100 crc:0x60a95b53] A packet has[MRd_32] User
been transmitted
[addr:0x00d534e4 reqId:0x0000 tag:0 len:28 fbe:1000 lbe:0011 tc:0 td:0 ep:0 attr:0]the Link.
through
Packet Callback information
example - receive view
43
User Packet Flow
DL Retry Buffer
44
User Packet Flow
DL ACK/NAK
• Ack/Nak being transmitted/received :
egrep "DLLP.*(ACK|NAK)" denali.his
• Check the sequence #
tb.rc 3476 ns DL[port_0] : RX DLLP (type:ACK, seq:64) from physical layer
tb.ep_monitor 3851800 ps DL[port_0] : RX DLLP (type:ACK, seq:71) from physical layer
tb.rc 3908 ns DL[port_0] : RX DLLP (type:ACK, seq:73) from physical layer
tb.ep_monitor 4227800 ps DL[port_0] : RX DLLP (type:ACK, seq:78) from physical layer
• Ack/Nak Timers:
grep "DL.*Timer" denali.his
tb.epMon 8859800 ps DL[port_0] : Ack/Nak Latency Timer Limit = 162993480 fs
tb.epMon 8859800 ps DL[port_0] : Ack/Nak Latency Timer Limit With L0s Adjustment =
406983720 fs
tb.epMon 8859800 ps DL[port_0] : Replay Timer Limit = 488980440 fs
tb.epMon 8859800 ps DL[port_0] : Replay Timer Limit With L0s Adjustment = 8678652840
fs
tb.epMon 19398219370 fs Debug: DL[port_0] : The Max Payload Size modification will now
cause the Ack/Nak and Replay Timer values to be recalculated
45
FLOW CONTROL
46
FC credits – Spec recap
6 FC types –
How many FC credits
PH , PD , NPH ,
types do we have?
NPD , CPLH , CPLD
47
Debugging Flow Control
Flow Control Pkts
• grep “INIT” denali.his
tb_top.bfm 19882 ns DL[port_0] : TX DLLP (type:INIT_FC1_P vc:0 hdr:112
data:35)
tb_top.bfm 19886 ns DL[port_0] : TX DLLP (type:INIT_FC1_NP vc:0 hdr:4
data:1099)
tb_top.bfm 19918 ns DL[port_0] : TX DLLP (type:INIT_FC1_CPL vc:0 hdr:0
data:0)
tb_top.bfm 20002 ns DL[port_0] : RX DLLP (type:INIT_FC1_P vc:0 hdr:4
data:64)
tb_top.bfm 20034 ns DL[port_0] : RX DLLP (type:INIT_FC1_NP vc:0 hdr:4
data:0)
48
Debugging Flow Control
flow control credits counters Partial snapshot!
• egrep “ FC credits ” denali.his
tb.DUT 5492 ns Debug: Initializing VC[0] PH RX_ALLOCATED FC credits = 1
tb.DUT 5492 ns Debug: Initializing VC[0] PD RX_ALLOCATED FC credits = 32
tb.DUT 5492 ns Debug: Initializing VC[0] NPH RX_ALLOCATED FC credits = 1
tb.DUT 5492 ns Debug: Initializing VC[0] NPD RX_ALLOCATED FC credits = 1
tb.DUT 5492 ns Debug: Initializing VC[0] CPLH RX_ALLOCATED
49
Debugging Flow Control
flow control timer
50
EQUALIZATION
51
Equalization Sequence
52
Equalization Debug
Useful facilities
Equalization state:
grep “EQ phase” denali.his
tb.rcModel 9680559350 fs Debug: PL enter EQ phase 1 (entry)
tb.epMon 9729242950 fs Debug: PL enter EQ phase 0 (entry)
tb.epMon 10232952650 fs Debug: PL enter EQ phase 1 (Rx-2xTS1(EC==1))
tb.rcModel 10265512550 fs Debug: PL enter EQ phase 2 (timeout)
tb.epMon 10379190950 fs Debug: PL enter EQ phase 2 (Rx-2xTS1(EC==2))
tb.epMon 10882900650 fs Debug: PL enter EQ phase 3 (timeout)
tb.rcModel 10899211850 fs Debug: PL enter EQ phase 3 (Rx-2xTS1(EC=3))
tb.rcModel 11402921550 fs Debug: PL enter EQ phase 0 (timeout)
tb.epMon 11516599950 fs Debug: PL enter EQ phase 0 (Rx-2xTS1(EC==0))
All Equalization info (review registers:PCIE_REG_DEN_EQ_CTRL_ST, PCIE_REG_DEN_EQ_RX_(0-31),
PCIE_REG_DEN_EQ_TX_(0-31)
egrep "Equalization|accept|reject|preC|phase" denali.his
tb.rcModel 10395502150 fs Debug: Port_0: EQ (phase_2), accept change in lanes 0xff on preset(ffh).
54
Debugging With Trace File
Trace Debug information
Debug: Simulation Time
Simulation time stampZ
Zfollowed by all the activities at that time
tgrep script is available for giving time for each grep results
- 16295 ns -
R E TxDataK 01
R E TxData 0000000010111100
R H Debug: [port_0].TxData state Polling => Training
R H Debug: [port_0].RxData state Polling => Training
Debug: Event on Pin
• Events occuring on a particular pin
• First character always represents instance-id
– 2 E RX 00000000
– 2 – instance-id (testbench.i0)
– E – symbol for event followed by value (0000000 – Represents data on
different lanes.)
– RX – Pin name
55
Debugging With Trace File
Trace Debug information
– 2 S TX 00001100 10 ns T
– 2 – Instance-id
– S – Symbol to represent event scheduling followed by value
– 10 ns – after 10 ns of current simulation time.
– TX – TX pin name
56
r20
• Performance report
System • Helps system integrators to better utilize the PCIe.
57
Slide 57
58
Support Resources
• The following is the only available option for creating and updating the
verification IP (VIP) service requests in the Cadence Support System:
– Submitting a new service request: Use site: http://support.cadence.com
• Choose Service requests -> Create service request
• Set "Product" to:
– "Memory Model" for memory model (MMAV/MMPT) issues
– "Verification IP" for other non-memory protocols like PCIe, USB, SATA, Ethernet, PLB,
MIPI, AMBA etc.
• Select related "Product Feature" in the next page.
• Use the following ftp instructions for uploading files:
– unix> ftp ftp.cadence.com
– ftp> user: cdn_vip_c
– ftp> password: DEnCus10
– ftp> put <file name>
– Updates to existing service requests can be done:
• by replay to an email given from the support with "Update <Case#>" in the subject line.
– For example:
Update 45493616 [Ethernet] ENET how can Z. [ref:_00Dd0c1Z9._500d08HMQR:ref]
• by updating the SR using Cadence Online Support website.
59
Appendix A. (Cont.)
Useful grep commands
General PL
“^. i “ – Get all instances. .(trc file) link speed – Changed link speed
“^. I “ – Get all memorinstances. .(trc file) Cycle.*TX – Tx buffer, before scrambling.
“^. f “ – Get soma files of instances. .(trc file) Cycle.*RX – Rx buffer, after descrambling
“ V “ - .denalirc settings (trc file) LTSSM state – LTSSM state change.
discard – See if a packet was discard at receiver or
reason
transmitter.
E PERST – Value of the wire.
"hier\[mem\]" – Memory picture
:: Detected – Errors\Warnings\info Link state
mmwriteword – register backdoor access by user Pipe state
WRRREG – all register acess EQ phase
Hierarchy and capabilities “Equalization|accept|reject|preC|phase” – all EQ details
“hier” – all PCIe topology
BAR_ - BAR register access Error Handling
capability FatErr(Det|En) – Fatal\Non Fatal Error detected\enabled
Initialization process corErr(Det|En) – correctable error detected\enabled
UR(det|en) – UR detected\enabled
“port Function state”
correctable error (status|mask|severity)
TL state
DLCMSM state
“LTSSM state|LTSSM reason” - – reason for LTSSM state
change (not always).
60
Appendix A.
Useful grep commands
DLL
"DLLP.*(ACK|NAK)" - Ack/Nak being transmitted/received
DL.*Timer – ACK/NAK timers
DLCMSM state – DLCMSM state change.
FC credits – flow control credits couners
NPH TX.*FC – same , only for NPH TX
FC timer – flow control tmer
TL
“TL_user_queue_exit.*User”
“TL_TX.*MRd_32 TL_RX.*CplD” - Tx\Rx a TLP.
dentransset.*DENALI_ARG_PCIE__pkt_type" (trc file) – transadd pkt
“retry_buffer_exit” - TL pkt will be re-transmitted
PureSuite
Can_Run – Which tests can run un this sim.
Step – Puresuite step.
PS : - Puresuite message.
Error: - Puresuite error message.
"# Tes" - Test pass\fail message
61