Skip to content

Commit 86c188f

Browse files
committed
adding dynamic rx/tx polarity configuration support to PGP4
1 parent 8dffefc commit 86c188f

File tree

4 files changed

+123
-4
lines changed

4 files changed

+123
-4
lines changed

firmware/submodules/surf

Submodule surf updated 91 files
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
##############################################################################
2+
## This file is part of 'PGP PCIe APP DEV'.
3+
## It is subject to the license terms in the LICENSE.txt file found in the
4+
## top-level directory of this distribution and at:
5+
## https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
6+
## No part of 'PGP PCIe APP DEV', including this file,
7+
## may be copied, modified, propagated, or distributed except according to
8+
## the terms contained in the LICENSE.txt file.
9+
##############################################################################
10+
11+
##############################
12+
# Get variables and procedures
13+
##############################
14+
source -quiet $::env(RUCKUS_DIR)/vivado_env_var.tcl
15+
source $::env(RUCKUS_PROC_TCL)
16+
17+
######################################################
18+
# Bypass the debug chipscope generation via return cmd
19+
# ELSE ... comment out the return to include chipscope
20+
######################################################
21+
return
22+
23+
############################
24+
## Open the synthesis design
25+
############################
26+
open_run synth_1
27+
28+
###############################
29+
## Set the name of the ILA core
30+
###############################
31+
set ilaName u_ila_0
32+
33+
##################
34+
## Create the core
35+
##################
36+
CreateDebugCore ${ilaName}
37+
38+
#######################
39+
## Set the record depth
40+
#######################
41+
set_property C_DATA_DEPTH 1024 [get_debug_cores ${ilaName}]
42+
43+
#################################
44+
## Set the clock for the ILA core
45+
#################################
46+
SetDebugCoreClk ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/phyRxClk}
47+
48+
#######################
49+
## Set the debug Probes
50+
#######################
51+
52+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/phyRxRst}
53+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/phyRxSlip}
54+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/phyRxValid}
55+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/phyRxActive}
56+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/phyRxData[*]}
57+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/phyRxHeader[*]}
58+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/unscrambledData[*]}
59+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/unscrambledHeader[*]}
60+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/unscrambledValid}
61+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/unscramblerValid}
62+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp3RxGearboxAligner_1/locked}
63+
64+
##########################
65+
## Write the port map file
66+
##########################
67+
WriteDebugProbes ${ilaName}
68+
69+
###############################
70+
## Set the name of the ILA core
71+
###############################
72+
set ilaName u_ila_1
73+
74+
##################
75+
## Create the core
76+
##################
77+
CreateDebugCore ${ilaName}
78+
79+
#######################
80+
## Set the record depth
81+
#######################
82+
set_property C_DATA_DEPTH 1024 [get_debug_cores ${ilaName}]
83+
84+
#################################
85+
## Set the clock for the ILA core
86+
#################################
87+
SetDebugCoreClk ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxClk}
88+
89+
#######################
90+
## Set the debug Probes
91+
#######################
92+
93+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxMaster[tData][*]}
94+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxMaster[tUser][*]}
95+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/protRxData[*]}
96+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/protRxHeader[*]}
97+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/r_reg[count][*]}
98+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/r_reg[notValidCnt][*]}
99+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/eof}
100+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/linkError}
101+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxIn[resetRx]}
102+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxMaster[tLast]}
103+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxMaster[tValid]}
104+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxOut[linkReady]}
105+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxOut[opCodeEn]}
106+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/pgpRxRst}
107+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/phyRxActive}
108+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/phyRxActiveSync}
109+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/phyRxActiveSyncFall}
110+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/protRxPhyInit}
111+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/protRxValid}
112+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/remRxLinkReady}
113+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/U_Pgp4RxProtocol_1/sof}
114+
ConfigProbe ${ilaName} {U_Hardware/U_Pgp/GEN_LANE[0].U_Lane/U_Pgp/U_Pgp4Core_1/GEN_RX.U_Pgp4Rx_1/ebValid}
115+
116+
##########################
117+
## Write the port map file
118+
##########################
119+
WriteDebugProbes ${ilaName}

firmware/targets/shared_config.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# Define Firmware Version: v2.10.0.0
2-
export PRJ_VERSION = 0x02100000
1+
# Define Firmware Version: v2.11.0.0
2+
export PRJ_VERSION = 0x02110000
33

44
# Define release
55
ifndef RELEASE

0 commit comments

Comments
 (0)