blob: 832a592dbaa04708ed93535a5812afc92c73ef50 [file] [log] [blame]
Aaron Williams72b31562020-12-11 17:05:34 +01001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2020 Marvell International Ltd.
4 */
5
6#ifndef __CVMX_GSERX_DEFS_H__
7#define __CVMX_GSERX_DEFS_H__
8
9#define CVMX_GSERX_DLMX_TX_AMPLITUDE(offset, block_id) (0x0001180090003008ull)
10#define CVMX_GSERX_DLMX_TX_PREEMPH(offset, block_id) (0x0001180090003028ull)
11#define CVMX_GSERX_DLMX_MPLL_EN(offset, block_id) (0x0001180090001020ull)
12#define CVMX_GSERX_DLMX_REF_SSP_EN(offset, block_id) (0x0001180090001048ull)
13#define CVMX_GSERX_DLMX_TX_RATE(offset, block_id) (0x0001180090003030ull)
14#define CVMX_GSERX_DLMX_TX_EN(offset, block_id) (0x0001180090003020ull)
15#define CVMX_GSERX_DLMX_TX_CM_EN(offset, block_id) (0x0001180090003010ull)
16#define CVMX_GSERX_DLMX_TX_RESET(offset, block_id) (0x0001180090003038ull)
17#define CVMX_GSERX_DLMX_TX_DATA_EN(offset, block_id) (0x0001180090003018ull)
18#define CVMX_GSERX_DLMX_RX_RATE(offset, block_id) (0x0001180090002028ull)
19#define CVMX_GSERX_DLMX_RX_PLL_EN(offset, block_id) (0x0001180090002020ull)
20#define CVMX_GSERX_DLMX_RX_DATA_EN(offset, block_id) (0x0001180090002008ull)
21#define CVMX_GSERX_DLMX_RX_RESET(offset, block_id) (0x0001180090002030ull)
22
23#define CVMX_GSERX_DLMX_TX_STATUS(offset, block_id) \
24 (0x0001180090003000ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
25#define CVMX_GSERX_DLMX_RX_STATUS(offset, block_id) \
26 (0x0001180090002000ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
27
28static inline u64 CVMX_GSERX_SATA_STATUS(unsigned long offset)
29{
30 switch (cvmx_get_octeon_family()) {
31 case OCTEON_CN70XX & OCTEON_FAMILY_MASK:
32 return 0x0001180090100200ull + (offset) * 0x1000000ull;
33 case OCTEON_CNF75XX & OCTEON_FAMILY_MASK:
34 return 0x0001180090100900ull + (offset) * 0x1000000ull;
35 case OCTEON_CN73XX & OCTEON_FAMILY_MASK:
36 return 0x0001180090100900ull + (offset) * 0x1000000ull;
37 }
38 return 0x0001180090100900ull + (offset) * 0x1000000ull;
39}
40
41#define CVMX_GSERX_DLMX_RX_EQ(offset, block_id) \
42 (0x0001180090002010ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
43#define CVMX_GSERX_DLMX_REF_USE_PAD(offset, block_id) \
44 (0x0001180090001050ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
45#define CVMX_GSERX_DLMX_REFCLK_SEL(offset, block_id) \
46 (0x0001180090000008ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
47#define CVMX_GSERX_DLMX_PHY_RESET(offset, block_id) \
48 (0x0001180090001038ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
49#define CVMX_GSERX_DLMX_TEST_POWERDOWN(offset, block_id) \
50 (0x0001180090001060ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
51#define CVMX_GSERX_DLMX_REF_CLKDIV2(offset, block_id) \
52 (0x0001180090001040ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
53#define CVMX_GSERX_DLMX_MPLL_MULTIPLIER(offset, block_id) \
54 (0x0001180090001030ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
55#define CVMX_GSERX_DLMX_MPLL_STATUS(offset, block_id) \
56 (0x0001180090001000ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
57
58#define CVMX_GSERX_BR_RXX_CTL(offset, block_id) \
59 (0x0001180090000400ull + (((offset) & 3) + ((block_id) & 15) * 0x20000ull) * 128)
60#define CVMX_GSERX_BR_RXX_EER(offset, block_id) \
61 (0x0001180090000418ull + (((offset) & 3) + ((block_id) & 15) * 0x20000ull) * 128)
62
63#define CVMX_GSERX_PCIE_PIPE_PORT_SEL(offset) (0x0001180090080460ull)
64#define CVMX_GSERX_PCIE_PIPE_RST(offset) (0x0001180090080448ull)
65
66#define CVMX_GSERX_SATA_CFG(offset) (0x0001180090100208ull)
67#define CVMX_GSERX_SATA_REF_SSP_EN(offset) (0x0001180090100600ull)
68
69static inline u64 CVMX_GSERX_SATA_LANE_RST(unsigned long offset)
70{
71 switch (cvmx_get_octeon_family()) {
72 case OCTEON_CN70XX & OCTEON_FAMILY_MASK:
73 return 0x0001180090100210ull + (offset) * 0x1000000ull;
74 case OCTEON_CNF75XX & OCTEON_FAMILY_MASK:
75 return 0x0001180090000908ull + (offset) * 0x1000000ull;
76 case OCTEON_CN73XX & OCTEON_FAMILY_MASK:
77 return 0x0001180090000908ull + (offset) * 0x1000000ull;
78 }
79 return 0x0001180090000908ull + (offset) * 0x1000000ull;
80}
81
82#define CVMX_GSERX_EQ_WAIT_TIME(offset) (0x00011800904E0000ull + ((offset) & 15) * 0x1000000ull)
83
84#define CVMX_GSERX_GLBL_MISC_CONFIG_1(offset) (0x0001180090460030ull + ((offset) & 15) * 0x1000000ull)
85#define CVMX_GSERX_GLBL_PLL_CFG_3(offset) (0x0001180090460018ull + ((offset) & 15) * 0x1000000ull)
86
87#define CVMX_GSERX_PHYX_OVRD_IN_LO(offset, block_id) \
88 (0x0001180090400088ull + (((offset) & 3) + ((block_id) & 0) * 0x0ull) * 524288)
89
90#define CVMX_GSERX_RX_PWR_CTRL_P1(offset) (0x00011800904600B0ull + ((offset) & 15) * 0x1000000ull)
91#define CVMX_GSERX_RX_PWR_CTRL_P2(offset) (0x00011800904600B8ull + ((offset) & 15) * 0x1000000ull)
92#define CVMX_GSERX_RX_EIE_DETSTS(offset) (0x0001180090000150ull + ((offset) & 15) * 0x1000000ull)
93
94#define CVMX_GSERX_LANE_MODE(offset) (0x0001180090000118ull + ((offset) & 15) * 0x1000000ull)
95
96#define CVMX_GSERX_LANE_VMA_FINE_CTRL_0(offset) \
97 (0x00011800904E01C8ull + ((offset) & 15) * 0x1000000ull)
98
99#define CVMX_GSERX_LANEX_LBERT_CFG(offset, block_id) \
100 (0x00011800904C0020ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
101
102#define CVMX_GSERX_LANEX_MISC_CFG_0(offset, block_id) \
103 (0x00011800904C0000ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
104
105#define CVMX_GSERX_LANE_PX_MODE_0(offset, block_id) \
106 (0x00011800904E0040ull + (((offset) & 15) + ((block_id) & 15) * 0x80000ull) * 32)
107#define CVMX_GSERX_LANE_PX_MODE_1(offset, block_id) \
108 (0x00011800904E0048ull + (((offset) & 15) + ((block_id) & 15) * 0x80000ull) * 32)
109
110#define CVMX_GSERX_LANEX_RX_CFG_0(offset, block_id) \
111 (0x0001180090440000ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
112#define CVMX_GSERX_LANEX_RX_CFG_1(offset, block_id) \
113 (0x0001180090440008ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
114#define CVMX_GSERX_LANEX_RX_CFG_2(offset, block_id) \
115 (0x0001180090440010ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
116#define CVMX_GSERX_LANEX_RX_CFG_3(offset, block_id) \
117 (0x0001180090440018ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
118#define CVMX_GSERX_LANEX_RX_CFG_4(offset, block_id) \
119 (0x0001180090440020ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
120#define CVMX_GSERX_LANEX_RX_CFG_5(offset, block_id) \
121 (0x0001180090440028ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
122#define CVMX_GSERX_LANEX_RX_CTLE_CTRL(offset, block_id) \
123 (0x0001180090440058ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
124
125#define CVMX_GSERX_LANEX_RX_LOOP_CTRL(offset, block_id) \
126 (0x0001180090440048ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
127#define CVMX_GSERX_LANEX_RX_VALBBD_CTRL_0(offset, block_id) \
128 (0x0001180090440240ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
129#define CVMX_GSERX_LANEX_RX_VALBBD_CTRL_1(offset, block_id) \
130 (0x0001180090440248ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
131#define CVMX_GSERX_LANEX_RX_VALBBD_CTRL_2(offset, block_id) \
132 (0x0001180090440250ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
133#define CVMX_GSERX_LANEX_RX_MISC_OVRRD(offset, block_id) \
134 (0x0001180090440258ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
135
136#define CVMX_GSERX_LANEX_TX_CFG_0(offset, block_id) \
137 (0x00011800904400A8ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
138#define CVMX_GSERX_LANEX_TX_CFG_1(offset, block_id) \
139 (0x00011800904400B0ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
140#define CVMX_GSERX_LANEX_TX_CFG_2(offset, block_id) \
141 (0x00011800904400B8ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
142#define CVMX_GSERX_LANEX_TX_CFG_3(offset, block_id) \
143 (0x00011800904400C0ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
144#define CVMX_GSERX_LANEX_TX_PRE_EMPHASIS(offset, block_id) \
145 (0x00011800904400C8ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
146
147#define CVMX_GSERX_RX_TXDIR_CTRL_0(offset) (0x00011800904600E8ull + ((offset) & 15) * 0x1000000ull)
148#define CVMX_GSERX_RX_TXDIR_CTRL_1(offset) (0x00011800904600F0ull + ((offset) & 15) * 0x1000000ull)
149#define CVMX_GSERX_RX_TXDIR_CTRL_2(offset) (0x00011800904600F8ull + ((offset) & 15) * 0x1000000ull)
150
151#define CVMX_GSERX_LANEX_PCS_CTLIFC_0(offset, block_id) \
152 (0x00011800904C0060ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
153#define CVMX_GSERX_LANEX_PCS_CTLIFC_1(offset, block_id) \
154 (0x00011800904C0068ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
155#define CVMX_GSERX_LANEX_PCS_CTLIFC_2(offset, block_id) \
156 (0x00011800904C0070ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
157
158#define CVMX_GSERX_LANEX_PWR_CTRL(offset, block_id) \
159 (0x00011800904400D8ull + (((offset) & 3) + ((block_id) & 15) * 0x10ull) * 1048576)
160
161#define CVMX_GSERX_LANE_VMA_FINE_CTRL_2(offset) \
162 (0x00011800904E01D8ull + ((offset) & 15) * 0x1000000ull)
163
164#define CVMX_GSERX_PLL_STAT(offset) (0x0001180090000010ull + ((offset) & 15) * 0x1000000ull)
165#define CVMX_GSERX_QLM_STAT(offset) (0x00011800900000A0ull + ((offset) & 15) * 0x1000000ull)
166
167#define CVMX_GSERX_PLL_PX_MODE_0(offset, block_id) \
168 (0x00011800904E0030ull + (((offset) & 15) + ((block_id) & 15) * 0x80000ull) * 32)
169#define CVMX_GSERX_PLL_PX_MODE_1(offset, block_id) \
170 (0x00011800904E0038ull + (((offset) & 15) + ((block_id) & 15) * 0x80000ull) * 32)
171
172#define CVMX_GSERX_SLICE_CFG(offset) (0x0001180090460060ull + ((offset) & 15) * 0x1000000ull)
173
174#define CVMX_GSERX_SLICEX_PCIE1_MODE(offset, block_id) \
175 (0x0001180090460228ull + (((offset) & 1) + ((block_id) & 15) * 0x8ull) * 2097152)
176#define CVMX_GSERX_SLICEX_PCIE2_MODE(offset, block_id) \
177 (0x0001180090460230ull + (((offset) & 1) + ((block_id) & 15) * 0x8ull) * 2097152)
178#define CVMX_GSERX_SLICEX_PCIE3_MODE(offset, block_id) \
179 (0x0001180090460238ull + (((offset) & 1) + ((block_id) & 15) * 0x8ull) * 2097152)
180#define CVMX_GSERX_SLICEX_RX_SDLL_CTRL(offset, block_id) \
181 (0x0001180090460220ull + (((offset) & 1) + ((block_id) & 15) * 0x8ull) * 2097152)
182
183#define CVMX_GSERX_REFCLK_SEL(offset) (0x0001180090000008ull + ((offset) & 15) * 0x1000000ull)
184#define CVMX_GSERX_PHY_CTL(offset) (0x0001180090000000ull + ((offset) & 15) * 0x1000000ull)
185#define CVMX_GSERX_CFG(offset) (0x0001180090000080ull + ((offset) & 15) * 0x1000000ull)
186
187/**
188 * cvmx_gser#_cfg
189 */
190union cvmx_gserx_cfg {
191 u64 u64;
192 struct cvmx_gserx_cfg_s {
193 u64 reserved_9_63 : 55;
194 u64 rmac_pipe : 1;
195 u64 rmac : 1;
196 u64 srio : 1;
197 u64 sata : 1;
198 u64 bgx_quad : 1;
199 u64 bgx_dual : 1;
200 u64 bgx : 1;
201 u64 ila : 1;
202 u64 pcie : 1;
203 } s;
204 struct cvmx_gserx_cfg_cn73xx {
205 u64 reserved_6_63 : 58;
206 u64 sata : 1;
207 u64 bgx_quad : 1;
208 u64 bgx_dual : 1;
209 u64 bgx : 1;
210 u64 ila : 1;
211 u64 pcie : 1;
212 } cn73xx;
213 struct cvmx_gserx_cfg_cn78xx {
214 u64 reserved_5_63 : 59;
215 u64 bgx_quad : 1;
216 u64 bgx_dual : 1;
217 u64 bgx : 1;
218 u64 ila : 1;
219 u64 pcie : 1;
220 } cn78xx;
221 struct cvmx_gserx_cfg_cn78xx cn78xxp1;
222 struct cvmx_gserx_cfg_s cnf75xx;
223};
224
225typedef union cvmx_gserx_cfg cvmx_gserx_cfg_t;
226
227/**
228 * cvmx_gser#_eq_wait_time
229 *
230 * These registers are for diagnostic use only.
231 * These registers are reset by hardware only during chip cold reset.
232 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
233 */
234union cvmx_gserx_eq_wait_time {
235 u64 u64;
236 struct cvmx_gserx_eq_wait_time_s {
237 u64 reserved_8_63 : 56;
238 u64 rxeq_wait_cnt : 4;
239 u64 txeq_wait_cnt : 4;
240 } s;
241 struct cvmx_gserx_eq_wait_time_s cn73xx;
242 struct cvmx_gserx_eq_wait_time_s cn78xx;
243 struct cvmx_gserx_eq_wait_time_s cn78xxp1;
244 struct cvmx_gserx_eq_wait_time_s cnf75xx;
245};
246
247typedef union cvmx_gserx_eq_wait_time cvmx_gserx_eq_wait_time_t;
248
249/**
250 * cvmx_gser#_glbl_misc_config_1
251 *
252 * These registers are for diagnostic use only.
253 * These registers are reset by hardware only during chip cold reset.
254 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
255 */
256union cvmx_gserx_glbl_misc_config_1 {
257 u64 u64;
258 struct cvmx_gserx_glbl_misc_config_1_s {
259 u64 reserved_10_63 : 54;
260 u64 pcs_sds_vref_tr : 4;
261 u64 pcs_sds_trim_chp_reg : 2;
262 u64 pcs_sds_vco_reg_tr : 2;
263 u64 pcs_sds_cvbg_en : 1;
264 u64 pcs_sds_extvbg_en : 1;
265 } s;
266 struct cvmx_gserx_glbl_misc_config_1_s cn73xx;
267 struct cvmx_gserx_glbl_misc_config_1_s cn78xx;
268 struct cvmx_gserx_glbl_misc_config_1_s cn78xxp1;
269 struct cvmx_gserx_glbl_misc_config_1_s cnf75xx;
270};
271
272typedef union cvmx_gserx_glbl_misc_config_1 cvmx_gserx_glbl_misc_config_1_t;
273
274/**
275 * cvmx_gser#_glbl_pll_cfg_3
276 *
277 * These registers are for diagnostic use only.
278 * These registers are reset by hardware only during chip cold reset.
279 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
280 */
281union cvmx_gserx_glbl_pll_cfg_3 {
282 u64 u64;
283 struct cvmx_gserx_glbl_pll_cfg_3_s {
284 u64 reserved_10_63 : 54;
285 u64 pcs_sds_pll_vco_amp : 2;
286 u64 pll_bypass_uq : 1;
287 u64 pll_vctrl_sel_ovrrd_en : 1;
288 u64 pll_vctrl_sel_ovrrd_val : 2;
289 u64 pll_vctrl_sel_lcvco_val : 2;
290 u64 pll_vctrl_sel_rovco_val : 2;
291 } s;
292 struct cvmx_gserx_glbl_pll_cfg_3_s cn73xx;
293 struct cvmx_gserx_glbl_pll_cfg_3_s cn78xx;
294 struct cvmx_gserx_glbl_pll_cfg_3_s cn78xxp1;
295 struct cvmx_gserx_glbl_pll_cfg_3_s cnf75xx;
296};
297
298typedef union cvmx_gserx_glbl_pll_cfg_3 cvmx_gserx_glbl_pll_cfg_3_t;
299
300/**
301 * cvmx_gser#_dlm#_rx_data_en
302 *
303 * DLM Receiver Enable.
304 *
305 */
306union cvmx_gserx_dlmx_rx_data_en {
307 u64 u64;
308 struct cvmx_gserx_dlmx_rx_data_en_s {
309 u64 reserved_9_63 : 55;
310 u64 rx1_data_en : 1;
311 u64 reserved_1_7 : 7;
312 u64 rx0_data_en : 1;
313 } s;
314 struct cvmx_gserx_dlmx_rx_data_en_s cn70xx;
315 struct cvmx_gserx_dlmx_rx_data_en_s cn70xxp1;
316};
317
318typedef union cvmx_gserx_dlmx_rx_data_en cvmx_gserx_dlmx_rx_data_en_t;
319
320/**
321 * cvmx_gser#_dlm#_rx_pll_en
322 *
323 * DLM0 DPLL Enable.
324 *
325 */
326union cvmx_gserx_dlmx_rx_pll_en {
327 u64 u64;
328 struct cvmx_gserx_dlmx_rx_pll_en_s {
329 u64 reserved_9_63 : 55;
330 u64 rx1_pll_en : 1;
331 u64 reserved_1_7 : 7;
332 u64 rx0_pll_en : 1;
333 } s;
334 struct cvmx_gserx_dlmx_rx_pll_en_s cn70xx;
335 struct cvmx_gserx_dlmx_rx_pll_en_s cn70xxp1;
336};
337
338typedef union cvmx_gserx_dlmx_rx_pll_en cvmx_gserx_dlmx_rx_pll_en_t;
339
340/**
341 * cvmx_gser#_dlm#_rx_rate
342 *
343 * DLM0 Rx Data Rate.
344 *
345 */
346union cvmx_gserx_dlmx_rx_rate {
347 u64 u64;
348 struct cvmx_gserx_dlmx_rx_rate_s {
349 u64 reserved_10_63 : 54;
350 u64 rx1_rate : 2;
351 u64 reserved_2_7 : 6;
352 u64 rx0_rate : 2;
353 } s;
354 struct cvmx_gserx_dlmx_rx_rate_s cn70xx;
355 struct cvmx_gserx_dlmx_rx_rate_s cn70xxp1;
356};
357
358typedef union cvmx_gserx_dlmx_rx_rate cvmx_gserx_dlmx_rx_rate_t;
359
360/**
361 * cvmx_gser#_dlm#_rx_reset
362 *
363 * DLM0 Receiver Reset.
364 *
365 */
366union cvmx_gserx_dlmx_rx_reset {
367 u64 u64;
368 struct cvmx_gserx_dlmx_rx_reset_s {
369 u64 reserved_9_63 : 55;
370 u64 rx1_reset : 1;
371 u64 reserved_1_7 : 7;
372 u64 rx0_reset : 1;
373 } s;
374 struct cvmx_gserx_dlmx_rx_reset_s cn70xx;
375 struct cvmx_gserx_dlmx_rx_reset_s cn70xxp1;
376};
377
378typedef union cvmx_gserx_dlmx_rx_reset cvmx_gserx_dlmx_rx_reset_t;
379
380/**
381 * cvmx_gser#_dlm#_test_powerdown
382 *
383 * DLM Test Powerdown.
384 *
385 */
386union cvmx_gserx_dlmx_test_powerdown {
387 u64 u64;
388 struct cvmx_gserx_dlmx_test_powerdown_s {
389 u64 reserved_1_63 : 63;
390 u64 test_powerdown : 1;
391 } s;
392 struct cvmx_gserx_dlmx_test_powerdown_s cn70xx;
393 struct cvmx_gserx_dlmx_test_powerdown_s cn70xxp1;
394};
395
396typedef union cvmx_gserx_dlmx_test_powerdown cvmx_gserx_dlmx_test_powerdown_t;
397
398/**
399 * cvmx_gser#_dlm#_tx_amplitude
400 *
401 * DLM0 Tx Amplitude (Full Swing Mode).
402 *
403 */
404union cvmx_gserx_dlmx_tx_amplitude {
405 u64 u64;
406 struct cvmx_gserx_dlmx_tx_amplitude_s {
407 u64 reserved_15_63 : 49;
408 u64 tx1_amplitude : 7;
409 u64 reserved_7_7 : 1;
410 u64 tx0_amplitude : 7;
411 } s;
412 struct cvmx_gserx_dlmx_tx_amplitude_s cn70xx;
413 struct cvmx_gserx_dlmx_tx_amplitude_s cn70xxp1;
414};
415
416typedef union cvmx_gserx_dlmx_tx_amplitude cvmx_gserx_dlmx_tx_amplitude_t;
417
418/**
419 * cvmx_gser#_dlm#_tx_en
420 *
421 * DLM Transmit Clocking and Data Sampling Enable.
422 *
423 */
424union cvmx_gserx_dlmx_tx_en {
425 u64 u64;
426 struct cvmx_gserx_dlmx_tx_en_s {
427 u64 reserved_9_63 : 55;
428 u64 tx1_en : 1;
429 u64 reserved_1_7 : 7;
430 u64 tx0_en : 1;
431 } s;
432 struct cvmx_gserx_dlmx_tx_en_s cn70xx;
433 struct cvmx_gserx_dlmx_tx_en_s cn70xxp1;
434};
435
436typedef union cvmx_gserx_dlmx_tx_en cvmx_gserx_dlmx_tx_en_t;
437
438/**
439 * cvmx_gser#_dlm#_tx_preemph
440 *
441 * DLM0 Tx Deemphasis.
442 *
443 */
444union cvmx_gserx_dlmx_tx_preemph {
445 u64 u64;
446 struct cvmx_gserx_dlmx_tx_preemph_s {
447 u64 reserved_15_63 : 49;
448 u64 tx1_preemph : 7;
449 u64 reserved_7_7 : 1;
450 u64 tx0_preemph : 7;
451 } s;
452 struct cvmx_gserx_dlmx_tx_preemph_s cn70xx;
453 struct cvmx_gserx_dlmx_tx_preemph_s cn70xxp1;
454};
455
456typedef union cvmx_gserx_dlmx_tx_preemph cvmx_gserx_dlmx_tx_preemph_t;
457
458/**
459 * cvmx_gser#_dlm#_tx_status
460 *
461 * DLM Transmit Common Mode Control Status.
462 *
463 */
464union cvmx_gserx_dlmx_tx_status {
465 u64 u64;
466 struct cvmx_gserx_dlmx_tx_status_s {
467 u64 reserved_10_63 : 54;
468 u64 tx1_cm_status : 1;
469 u64 tx1_status : 1;
470 u64 reserved_2_7 : 6;
471 u64 tx0_cm_status : 1;
472 u64 tx0_status : 1;
473 } s;
474 struct cvmx_gserx_dlmx_tx_status_s cn70xx;
475 struct cvmx_gserx_dlmx_tx_status_s cn70xxp1;
476};
477
478typedef union cvmx_gserx_dlmx_tx_status cvmx_gserx_dlmx_tx_status_t;
479
480/**
481 * cvmx_gser#_dlm#_rx_status
482 *
483 * DLM Receive DPLL State Indicator.
484 *
485 */
486union cvmx_gserx_dlmx_rx_status {
487 u64 u64;
488 struct cvmx_gserx_dlmx_rx_status_s {
489 u64 reserved_9_63 : 55;
490 u64 rx1_status : 1;
491 u64 reserved_1_7 : 7;
492 u64 rx0_status : 1;
493 } s;
494 struct cvmx_gserx_dlmx_rx_status_s cn70xx;
495 struct cvmx_gserx_dlmx_rx_status_s cn70xxp1;
496};
497
498typedef union cvmx_gserx_dlmx_rx_status cvmx_gserx_dlmx_rx_status_t;
499
500/**
501 * cvmx_gser#_dlm#_tx_rate
502 *
503 * DLM0 Tx Data Rate.
504 *
505 */
506union cvmx_gserx_dlmx_tx_rate {
507 u64 u64;
508 struct cvmx_gserx_dlmx_tx_rate_s {
509 u64 reserved_10_63 : 54;
510 u64 tx1_rate : 2;
511 u64 reserved_2_7 : 6;
512 u64 tx0_rate : 2;
513 } s;
514 struct cvmx_gserx_dlmx_tx_rate_s cn70xx;
515 struct cvmx_gserx_dlmx_tx_rate_s cn70xxp1;
516};
517
518typedef union cvmx_gserx_dlmx_tx_rate cvmx_gserx_dlmx_tx_rate_t;
519
520/**
521 * cvmx_gser#_sata_status
522 *
523 * SATA PHY Ready Status.
524 *
525 */
526union cvmx_gserx_sata_status {
527 u64 u64;
528 struct cvmx_gserx_sata_status_s {
529 u64 reserved_2_63 : 62;
530 u64 p1_rdy : 1;
531 u64 p0_rdy : 1;
532 } s;
533 struct cvmx_gserx_sata_status_s cn70xx;
534 struct cvmx_gserx_sata_status_s cn70xxp1;
535 struct cvmx_gserx_sata_status_s cn73xx;
536 struct cvmx_gserx_sata_status_s cnf75xx;
537};
538
539typedef union cvmx_gserx_sata_status cvmx_gserx_sata_status_t;
540
541/**
542 * cvmx_gser#_dlm#_tx_data_en
543 *
544 * DLM0 Transmit Driver Enable.
545 *
546 */
547union cvmx_gserx_dlmx_tx_data_en {
548 u64 u64;
549 struct cvmx_gserx_dlmx_tx_data_en_s {
550 u64 reserved_9_63 : 55;
551 u64 tx1_data_en : 1;
552 u64 reserved_1_7 : 7;
553 u64 tx0_data_en : 1;
554 } s;
555 struct cvmx_gserx_dlmx_tx_data_en_s cn70xx;
556 struct cvmx_gserx_dlmx_tx_data_en_s cn70xxp1;
557};
558
559typedef union cvmx_gserx_dlmx_tx_data_en cvmx_gserx_dlmx_tx_data_en_t;
560
561/**
562 * cvmx_gser#_dlm#_tx_cm_en
563 *
564 * DLM0 Transmit Common-Mode Control Enable.
565 *
566 */
567union cvmx_gserx_dlmx_tx_cm_en {
568 u64 u64;
569 struct cvmx_gserx_dlmx_tx_cm_en_s {
570 u64 reserved_9_63 : 55;
571 u64 tx1_cm_en : 1;
572 u64 reserved_1_7 : 7;
573 u64 tx0_cm_en : 1;
574 } s;
575 struct cvmx_gserx_dlmx_tx_cm_en_s cn70xx;
576 struct cvmx_gserx_dlmx_tx_cm_en_s cn70xxp1;
577};
578
579typedef union cvmx_gserx_dlmx_tx_cm_en cvmx_gserx_dlmx_tx_cm_en_t;
580
581/**
582 * cvmx_gser#_dlm#_tx_reset
583 *
584 * DLM0 Tx Reset.
585 *
586 */
587union cvmx_gserx_dlmx_tx_reset {
588 u64 u64;
589 struct cvmx_gserx_dlmx_tx_reset_s {
590 u64 reserved_9_63 : 55;
591 u64 tx1_reset : 1;
592 u64 reserved_1_7 : 7;
593 u64 tx0_reset : 1;
594 } s;
595 struct cvmx_gserx_dlmx_tx_reset_s cn70xx;
596 struct cvmx_gserx_dlmx_tx_reset_s cn70xxp1;
597};
598
599typedef union cvmx_gserx_dlmx_tx_reset cvmx_gserx_dlmx_tx_reset_t;
600
601/**
602 * cvmx_gser#_dlm#_mpll_status
603 *
604 * DLM PLL Lock Status.
605 *
606 */
607union cvmx_gserx_dlmx_mpll_status {
608 u64 u64;
609 struct cvmx_gserx_dlmx_mpll_status_s {
610 u64 reserved_1_63 : 63;
611 u64 mpll_status : 1;
612 } s;
613 struct cvmx_gserx_dlmx_mpll_status_s cn70xx;
614 struct cvmx_gserx_dlmx_mpll_status_s cn70xxp1;
615};
616
617typedef union cvmx_gserx_dlmx_mpll_status cvmx_gserx_dlmx_mpll_status_t;
618
619/**
620 * cvmx_gser#_dlm#_phy_reset
621 *
622 * DLM Core and State Machine Reset.
623 *
624 */
625union cvmx_gserx_dlmx_phy_reset {
626 u64 u64;
627 struct cvmx_gserx_dlmx_phy_reset_s {
628 u64 reserved_1_63 : 63;
629 u64 phy_reset : 1;
630 } s;
631 struct cvmx_gserx_dlmx_phy_reset_s cn70xx;
632 struct cvmx_gserx_dlmx_phy_reset_s cn70xxp1;
633};
634
635typedef union cvmx_gserx_dlmx_phy_reset cvmx_gserx_dlmx_phy_reset_t;
636
637/**
638 * cvmx_gser#_dlm#_ref_clkdiv2
639 *
640 * DLM Input Reference Clock Divider Control.
641 *
642 */
643union cvmx_gserx_dlmx_ref_clkdiv2 {
644 u64 u64;
645 struct cvmx_gserx_dlmx_ref_clkdiv2_s {
646 u64 reserved_1_63 : 63;
647 u64 ref_clkdiv2 : 1;
648 } s;
649 struct cvmx_gserx_dlmx_ref_clkdiv2_s cn70xx;
650 struct cvmx_gserx_dlmx_ref_clkdiv2_s cn70xxp1;
651};
652
653typedef union cvmx_gserx_dlmx_ref_clkdiv2 cvmx_gserx_dlmx_ref_clkdiv2_t;
654
655/**
656 * cvmx_gser#_dlm#_ref_ssp_en
657 *
658 * DLM0 Reference Clock Enable for the PHY.
659 *
660 */
661union cvmx_gserx_dlmx_ref_ssp_en {
662 u64 u64;
663 struct cvmx_gserx_dlmx_ref_ssp_en_s {
664 u64 reserved_1_63 : 63;
665 u64 ref_ssp_en : 1;
666 } s;
667 struct cvmx_gserx_dlmx_ref_ssp_en_s cn70xx;
668 struct cvmx_gserx_dlmx_ref_ssp_en_s cn70xxp1;
669};
670
671typedef union cvmx_gserx_dlmx_ref_ssp_en cvmx_gserx_dlmx_ref_ssp_en_t;
672
673union cvmx_gserx_dlmx_mpll_en {
674 u64 u64;
675 struct cvmx_gserx_dlmx_mpll_en_s {
676 u64 reserved_1_63 : 63;
677 u64 mpll_en : 1;
678 } s;
679 struct cvmx_gserx_dlmx_mpll_en_s cn70xx;
680 struct cvmx_gserx_dlmx_mpll_en_s cn70xxp1;
681};
682
683typedef union cvmx_gserx_dlmx_mpll_en cvmx_gserx_dlmx_mpll_en_t;
684
685/**
686 * cvmx_gser#_dlm#_rx_eq
687 *
688 * DLM Receiver Equalization Setting.
689 *
690 */
691union cvmx_gserx_dlmx_rx_eq {
692 u64 u64;
693 struct cvmx_gserx_dlmx_rx_eq_s {
694 u64 reserved_11_63 : 53;
695 u64 rx1_eq : 3;
696 u64 reserved_3_7 : 5;
697 u64 rx0_eq : 3;
698 } s;
699 struct cvmx_gserx_dlmx_rx_eq_s cn70xx;
700 struct cvmx_gserx_dlmx_rx_eq_s cn70xxp1;
701};
702
703typedef union cvmx_gserx_dlmx_rx_eq cvmx_gserx_dlmx_rx_eq_t;
704
705/**
706 * cvmx_gser#_dlm#_mpll_multiplier
707 *
708 * DLM MPLL Frequency Multiplier Control.
709 *
710 */
711union cvmx_gserx_dlmx_mpll_multiplier {
712 u64 u64;
713 struct cvmx_gserx_dlmx_mpll_multiplier_s {
714 u64 reserved_7_63 : 57;
715 u64 mpll_multiplier : 7;
716 } s;
717 struct cvmx_gserx_dlmx_mpll_multiplier_s cn70xx;
718 struct cvmx_gserx_dlmx_mpll_multiplier_s cn70xxp1;
719};
720
721typedef union cvmx_gserx_dlmx_mpll_multiplier cvmx_gserx_dlmx_mpll_multiplier_t;
722
723/**
724 * cvmx_gser#_br_rx#_ctl
725 */
726union cvmx_gserx_br_rxx_ctl {
727 u64 u64;
728 struct cvmx_gserx_br_rxx_ctl_s {
729 u64 reserved_4_63 : 60;
730 u64 rxt_adtmout_disable : 1;
731 u64 rxt_swm : 1;
732 u64 rxt_preset : 1;
733 u64 rxt_initialize : 1;
734 } s;
735 struct cvmx_gserx_br_rxx_ctl_s cn73xx;
736 struct cvmx_gserx_br_rxx_ctl_s cn78xx;
737 struct cvmx_gserx_br_rxx_ctl_cn78xxp1 {
738 u64 reserved_3_63 : 61;
739 u64 rxt_swm : 1;
740 u64 rxt_preset : 1;
741 u64 rxt_initialize : 1;
742 } cn78xxp1;
743 struct cvmx_gserx_br_rxx_ctl_s cnf75xx;
744};
745
746typedef union cvmx_gserx_br_rxx_ctl cvmx_gserx_br_rxx_ctl_t;
747
748/**
749 * cvmx_gser#_br_rx#_eer
750 *
751 * GSER software BASE-R RX link training equalization evaluation request (EER). A write to
752 * [RXT_EER] initiates a equalization request to the RAW PCS. A read of this register returns the
753 * equalization status message and a valid bit indicating it was updated. These registers are for
754 * diagnostic use only.
755 */
756union cvmx_gserx_br_rxx_eer {
757 u64 u64;
758 struct cvmx_gserx_br_rxx_eer_s {
759 u64 reserved_16_63 : 48;
760 u64 rxt_eer : 1;
761 u64 rxt_esv : 1;
762 u64 rxt_esm : 14;
763 } s;
764 struct cvmx_gserx_br_rxx_eer_s cn73xx;
765 struct cvmx_gserx_br_rxx_eer_s cn78xx;
766 struct cvmx_gserx_br_rxx_eer_s cn78xxp1;
767 struct cvmx_gserx_br_rxx_eer_s cnf75xx;
768};
769
770typedef union cvmx_gserx_br_rxx_eer cvmx_gserx_br_rxx_eer_t;
771
772/**
773 * cvmx_gser#_pcie_pipe_port_sel
774 *
775 * PCIE PIPE Enable Request.
776 *
777 */
778union cvmx_gserx_pcie_pipe_port_sel {
779 u64 u64;
780 struct cvmx_gserx_pcie_pipe_port_sel_s {
781 u64 reserved_3_63 : 61;
782 u64 cfg_pem1_dlm2 : 1;
783 u64 pipe_port_sel : 2;
784 } s;
785 struct cvmx_gserx_pcie_pipe_port_sel_s cn70xx;
786 struct cvmx_gserx_pcie_pipe_port_sel_s cn70xxp1;
787};
788
789typedef union cvmx_gserx_pcie_pipe_port_sel cvmx_gserx_pcie_pipe_port_sel_t;
790
791/**
792 * cvmx_gser#_pcie_pipe_rst
793 *
794 * PCIE PIPE Reset.
795 *
796 */
797union cvmx_gserx_pcie_pipe_rst {
798 u64 u64;
799 struct cvmx_gserx_pcie_pipe_rst_s {
800 u64 reserved_4_63 : 60;
801 u64 pipe3_rst : 1;
802 u64 pipe2_rst : 1;
803 u64 pipe1_rst : 1;
804 u64 pipe0_rst : 1;
805 } s;
806 struct cvmx_gserx_pcie_pipe_rst_s cn70xx;
807 struct cvmx_gserx_pcie_pipe_rst_s cn70xxp1;
808};
809
810typedef union cvmx_gserx_pcie_pipe_rst cvmx_gserx_pcie_pipe_rst_t;
811
812/**
813 * cvmx_gser#_sata_cfg
814 *
815 * SATA Config Enable.
816 *
817 */
818union cvmx_gserx_sata_cfg {
819 u64 u64;
820 struct cvmx_gserx_sata_cfg_s {
821 u64 reserved_1_63 : 63;
822 u64 sata_en : 1;
823 } s;
824 struct cvmx_gserx_sata_cfg_s cn70xx;
825 struct cvmx_gserx_sata_cfg_s cn70xxp1;
826};
827
828typedef union cvmx_gserx_sata_cfg cvmx_gserx_sata_cfg_t;
829
830/**
831 * cvmx_gser#_sata_lane_rst
832 *
833 * Lane Reset Control.
834 *
835 */
836union cvmx_gserx_sata_lane_rst {
837 u64 u64;
838 struct cvmx_gserx_sata_lane_rst_s {
839 u64 reserved_2_63 : 62;
840 u64 l1_rst : 1;
841 u64 l0_rst : 1;
842 } s;
843 struct cvmx_gserx_sata_lane_rst_s cn70xx;
844 struct cvmx_gserx_sata_lane_rst_s cn70xxp1;
845 struct cvmx_gserx_sata_lane_rst_s cn73xx;
846 struct cvmx_gserx_sata_lane_rst_s cnf75xx;
847};
848
849typedef union cvmx_gserx_sata_lane_rst cvmx_gserx_sata_lane_rst_t;
850
851/**
852 * cvmx_gser#_sata_ref_ssp_en
853 *
854 * SATA Reference Clock Enable for the PHY.
855 *
856 */
857union cvmx_gserx_sata_ref_ssp_en {
858 u64 u64;
859 struct cvmx_gserx_sata_ref_ssp_en_s {
860 u64 reserved_1_63 : 63;
861 u64 ref_ssp_en : 1;
862 } s;
863 struct cvmx_gserx_sata_ref_ssp_en_s cn70xx;
864 struct cvmx_gserx_sata_ref_ssp_en_s cn70xxp1;
865};
866
867typedef union cvmx_gserx_sata_ref_ssp_en cvmx_gserx_sata_ref_ssp_en_t;
868
869/**
870 * cvmx_gser#_phy#_ovrd_in_lo
871 *
872 * PHY Override Input Low Register.
873 *
874 */
875union cvmx_gserx_phyx_ovrd_in_lo {
876 u64 u64;
877 struct cvmx_gserx_phyx_ovrd_in_lo_s {
878 u64 reserved_16_63 : 48;
879 u64 res_ack_in_ovrd : 1;
880 u64 res_ack_in : 1;
881 u64 res_req_in_ovrd : 1;
882 u64 res_req_in : 1;
883 u64 rtune_req_ovrd : 1;
884 u64 rtune_req : 1;
885 u64 mpll_multiplier_ovrd : 1;
886 u64 mpll_multiplier : 7;
887 u64 mpll_en_ovrd : 1;
888 u64 mpll_en : 1;
889 } s;
890 struct cvmx_gserx_phyx_ovrd_in_lo_s cn70xx;
891 struct cvmx_gserx_phyx_ovrd_in_lo_s cn70xxp1;
892};
893
894typedef union cvmx_gserx_phyx_ovrd_in_lo cvmx_gserx_phyx_ovrd_in_lo_t;
895
896/**
897 * cvmx_gser#_phy_ctl
898 *
899 * This register contains general PHY/PLL control of the RAW PCS.
900 * These registers are reset by hardware only during chip cold reset. The values of the CSR
901 * fields in these registers do not change during chip warm or soft resets.
902 */
903union cvmx_gserx_phy_ctl {
904 u64 u64;
905 struct cvmx_gserx_phy_ctl_s {
906 u64 reserved_2_63 : 62;
907 u64 phy_reset : 1;
908 u64 phy_pd : 1;
909 } s;
910 struct cvmx_gserx_phy_ctl_s cn73xx;
911 struct cvmx_gserx_phy_ctl_s cn78xx;
912 struct cvmx_gserx_phy_ctl_s cn78xxp1;
913 struct cvmx_gserx_phy_ctl_s cnf75xx;
914};
915
916typedef union cvmx_gserx_phy_ctl cvmx_gserx_phy_ctl_t;
917
918/**
919 * cvmx_gser#_rx_pwr_ctrl_p1
920 *
921 * These registers are for diagnostic use only.
922 * These registers are reset by hardware only during chip cold reset.
923 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
924 */
925union cvmx_gserx_rx_pwr_ctrl_p1 {
926 u64 u64;
927 struct cvmx_gserx_rx_pwr_ctrl_p1_s {
928 u64 reserved_14_63 : 50;
929 u64 p1_rx_resetn : 1;
930 u64 pq_rx_allow_pll_pd : 1;
931 u64 pq_rx_pcs_reset : 1;
932 u64 p1_rx_agc_en : 1;
933 u64 p1_rx_dfe_en : 1;
934 u64 p1_rx_cdr_en : 1;
935 u64 p1_rx_cdr_coast : 1;
936 u64 p1_rx_cdr_clr : 1;
937 u64 p1_rx_subblk_pd : 5;
938 u64 p1_rx_chpd : 1;
939 } s;
940 struct cvmx_gserx_rx_pwr_ctrl_p1_s cn73xx;
941 struct cvmx_gserx_rx_pwr_ctrl_p1_s cn78xx;
942 struct cvmx_gserx_rx_pwr_ctrl_p1_s cn78xxp1;
943 struct cvmx_gserx_rx_pwr_ctrl_p1_s cnf75xx;
944};
945
946typedef union cvmx_gserx_rx_pwr_ctrl_p1 cvmx_gserx_rx_pwr_ctrl_p1_t;
947
948/**
949 * cvmx_gser#_rx_pwr_ctrl_p2
950 *
951 * These registers are for diagnostic use only.
952 * These registers are reset by hardware only during chip cold reset.
953 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
954 */
955union cvmx_gserx_rx_pwr_ctrl_p2 {
956 u64 u64;
957 struct cvmx_gserx_rx_pwr_ctrl_p2_s {
958 u64 reserved_14_63 : 50;
959 u64 p2_rx_resetn : 1;
960 u64 p2_rx_allow_pll_pd : 1;
961 u64 p2_rx_pcs_reset : 1;
962 u64 p2_rx_agc_en : 1;
963 u64 p2_rx_dfe_en : 1;
964 u64 p2_rx_cdr_en : 1;
965 u64 p2_rx_cdr_coast : 1;
966 u64 p2_rx_cdr_clr : 1;
967 u64 p2_rx_subblk_pd : 5;
968 u64 p2_rx_chpd : 1;
969 } s;
970 struct cvmx_gserx_rx_pwr_ctrl_p2_s cn73xx;
971 struct cvmx_gserx_rx_pwr_ctrl_p2_s cn78xx;
972 struct cvmx_gserx_rx_pwr_ctrl_p2_s cn78xxp1;
973 struct cvmx_gserx_rx_pwr_ctrl_p2_s cnf75xx;
974};
975
976typedef union cvmx_gserx_rx_pwr_ctrl_p2 cvmx_gserx_rx_pwr_ctrl_p2_t;
977
978/**
979 * cvmx_gser#_rx_txdir_ctrl_0
980 *
981 * These registers are for diagnostic use only.
982 * These registers are reset by hardware only during chip cold reset.
983 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
984 */
985union cvmx_gserx_rx_txdir_ctrl_0 {
986 u64 u64;
987 struct cvmx_gserx_rx_txdir_ctrl_0_s {
988 u64 reserved_13_63 : 51;
989 u64 rx_boost_hi_thrs : 4;
990 u64 rx_boost_lo_thrs : 4;
991 u64 rx_boost_hi_val : 5;
992 } s;
993 struct cvmx_gserx_rx_txdir_ctrl_0_s cn73xx;
994 struct cvmx_gserx_rx_txdir_ctrl_0_s cn78xx;
995 struct cvmx_gserx_rx_txdir_ctrl_0_s cn78xxp1;
996 struct cvmx_gserx_rx_txdir_ctrl_0_s cnf75xx;
997};
998
999typedef union cvmx_gserx_rx_txdir_ctrl_0 cvmx_gserx_rx_txdir_ctrl_0_t;
1000
1001/**
1002 * cvmx_gser#_rx_txdir_ctrl_1
1003 *
1004 * These registers are for diagnostic use only.
1005 * These registers are reset by hardware only during chip cold reset.
1006 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1007 */
1008union cvmx_gserx_rx_txdir_ctrl_1 {
1009 u64 u64;
1010 struct cvmx_gserx_rx_txdir_ctrl_1_s {
1011 u64 reserved_12_63 : 52;
1012 u64 rx_precorr_chg_dir : 1;
1013 u64 rx_tap1_chg_dir : 1;
1014 u64 rx_tap1_hi_thrs : 5;
1015 u64 rx_tap1_lo_thrs : 5;
1016 } s;
1017 struct cvmx_gserx_rx_txdir_ctrl_1_s cn73xx;
1018 struct cvmx_gserx_rx_txdir_ctrl_1_s cn78xx;
1019 struct cvmx_gserx_rx_txdir_ctrl_1_s cn78xxp1;
1020 struct cvmx_gserx_rx_txdir_ctrl_1_s cnf75xx;
1021};
1022
1023typedef union cvmx_gserx_rx_txdir_ctrl_1 cvmx_gserx_rx_txdir_ctrl_1_t;
1024
1025/**
1026 * cvmx_gser#_rx_txdir_ctrl_2
1027 *
1028 * These registers are for diagnostic use only.
1029 * These registers are reset by hardware only during chip cold reset.
1030 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1031 */
1032union cvmx_gserx_rx_txdir_ctrl_2 {
1033 u64 u64;
1034 struct cvmx_gserx_rx_txdir_ctrl_2_s {
1035 u64 reserved_16_63 : 48;
1036 u64 rx_precorr_hi_thrs : 8;
1037 u64 rx_precorr_lo_thrs : 8;
1038 } s;
1039 struct cvmx_gserx_rx_txdir_ctrl_2_s cn73xx;
1040 struct cvmx_gserx_rx_txdir_ctrl_2_s cn78xx;
1041 struct cvmx_gserx_rx_txdir_ctrl_2_s cn78xxp1;
1042 struct cvmx_gserx_rx_txdir_ctrl_2_s cnf75xx;
1043};
1044
1045typedef union cvmx_gserx_rx_txdir_ctrl_2 cvmx_gserx_rx_txdir_ctrl_2_t;
1046
1047/**
1048 * cvmx_gser#_rx_eie_detsts
1049 */
1050union cvmx_gserx_rx_eie_detsts {
1051 u64 u64;
1052 struct cvmx_gserx_rx_eie_detsts_s {
1053 u64 reserved_12_63 : 52;
1054 u64 cdrlock : 4;
1055 u64 eiests : 4;
1056 u64 eieltch : 4;
1057 } s;
1058 struct cvmx_gserx_rx_eie_detsts_s cn73xx;
1059 struct cvmx_gserx_rx_eie_detsts_s cn78xx;
1060 struct cvmx_gserx_rx_eie_detsts_s cn78xxp1;
1061 struct cvmx_gserx_rx_eie_detsts_s cnf75xx;
1062};
1063
1064typedef union cvmx_gserx_rx_eie_detsts cvmx_gserx_rx_eie_detsts_t;
1065
1066/**
1067 * cvmx_gser#_refclk_sel
1068 *
1069 * This register selects the reference clock.
1070 * These registers are reset by hardware only during chip cold reset. The values of the CSR
1071 * fields in these registers do not change during chip warm or soft resets.
1072 *
1073 * Not used with GSER6, GSER7, and GSER8.
1074 */
1075union cvmx_gserx_refclk_sel {
1076 u64 u64;
1077 struct cvmx_gserx_refclk_sel_s {
1078 u64 reserved_3_63 : 61;
1079 u64 pcie_refclk125 : 1;
1080 u64 com_clk_sel : 1;
1081 u64 use_com1 : 1;
1082 } s;
1083 struct cvmx_gserx_refclk_sel_s cn73xx;
1084 struct cvmx_gserx_refclk_sel_s cn78xx;
1085 struct cvmx_gserx_refclk_sel_s cn78xxp1;
1086 struct cvmx_gserx_refclk_sel_s cnf75xx;
1087};
1088
1089typedef union cvmx_gserx_refclk_sel cvmx_gserx_refclk_sel_t;
1090
1091/**
1092 * cvmx_gser#_lane#_lbert_cfg
1093 *
1094 * These registers are reset by hardware only during chip cold reset.
1095 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1096 */
1097union cvmx_gserx_lanex_lbert_cfg {
1098 u64 u64;
1099 struct cvmx_gserx_lanex_lbert_cfg_s {
1100 u64 reserved_16_63 : 48;
1101 u64 lbert_pg_err_insert : 1;
1102 u64 lbert_pm_sync_start : 1;
1103 u64 lbert_pg_en : 1;
1104 u64 lbert_pg_width : 2;
1105 u64 lbert_pg_mode : 4;
1106 u64 lbert_pm_en : 1;
1107 u64 lbert_pm_width : 2;
1108 u64 lbert_pm_mode : 4;
1109 } s;
1110 struct cvmx_gserx_lanex_lbert_cfg_s cn73xx;
1111 struct cvmx_gserx_lanex_lbert_cfg_s cn78xx;
1112 struct cvmx_gserx_lanex_lbert_cfg_s cn78xxp1;
1113 struct cvmx_gserx_lanex_lbert_cfg_s cnf75xx;
1114};
1115
1116typedef union cvmx_gserx_lanex_lbert_cfg cvmx_gserx_lanex_lbert_cfg_t;
1117
1118/**
1119 * cvmx_gser#_lane#_misc_cfg_0
1120 *
1121 * These registers are for diagnostic use only.
1122 * These registers are reset by hardware only during chip cold reset.
1123 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1124 */
1125union cvmx_gserx_lanex_misc_cfg_0 {
1126 u64 u64;
1127 struct cvmx_gserx_lanex_misc_cfg_0_s {
1128 u64 reserved_16_63 : 48;
1129 u64 use_pma_polarity : 1;
1130 u64 cfg_pcs_loopback : 1;
1131 u64 pcs_tx_mode_ovrrd_en : 1;
1132 u64 pcs_rx_mode_ovrrd_en : 1;
1133 u64 cfg_eie_det_cnt : 4;
1134 u64 eie_det_stl_on_time : 3;
1135 u64 eie_det_stl_off_time : 3;
1136 u64 tx_bit_order : 1;
1137 u64 rx_bit_order : 1;
1138 } s;
1139 struct cvmx_gserx_lanex_misc_cfg_0_s cn73xx;
1140 struct cvmx_gserx_lanex_misc_cfg_0_s cn78xx;
1141 struct cvmx_gserx_lanex_misc_cfg_0_s cn78xxp1;
1142 struct cvmx_gserx_lanex_misc_cfg_0_s cnf75xx;
1143};
1144
1145typedef union cvmx_gserx_lanex_misc_cfg_0 cvmx_gserx_lanex_misc_cfg_0_t;
1146
1147/**
1148 * cvmx_gser#_lane_p#_mode_0
1149 *
1150 * These are the RAW PCS lane settings mode 0 registers. There is one register per
1151 * 4 lanes per GSER per GSER_LMODE_E value (0..11). Only one entry is used at any given time in a
1152 * given GSER lane - the one selected by the corresponding GSER()_LANE_MODE[LMODE].
1153 * These registers are reset by hardware only during chip cold reset.
1154 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1155 */
1156union cvmx_gserx_lane_px_mode_0 {
1157 u64 u64;
1158 struct cvmx_gserx_lane_px_mode_0_s {
1159 u64 reserved_15_63 : 49;
1160 u64 ctle : 2;
1161 u64 pcie : 1;
1162 u64 tx_ldiv : 2;
1163 u64 rx_ldiv : 2;
1164 u64 srate : 3;
1165 u64 reserved_4_4 : 1;
1166 u64 tx_mode : 2;
1167 u64 rx_mode : 2;
1168 } s;
1169 struct cvmx_gserx_lane_px_mode_0_s cn73xx;
1170 struct cvmx_gserx_lane_px_mode_0_s cn78xx;
1171 struct cvmx_gserx_lane_px_mode_0_s cn78xxp1;
1172 struct cvmx_gserx_lane_px_mode_0_s cnf75xx;
1173};
1174
1175typedef union cvmx_gserx_lane_px_mode_0 cvmx_gserx_lane_px_mode_0_t;
1176
1177/**
1178 * cvmx_gser#_lane_p#_mode_1
1179 *
1180 * These are the RAW PCS lane settings mode 1 registers. There is one register per 4 lanes,
1181 * (0..3) per GSER per GSER_LMODE_E value (0..11). Only one entry is used at any given time in a
1182 * given
1183 * GSER lane - the one selected by the corresponding GSER()_LANE_MODE[LMODE].
1184 * These registers are reset by hardware only during chip cold reset.
1185 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1186 */
1187union cvmx_gserx_lane_px_mode_1 {
1188 u64 u64;
1189 struct cvmx_gserx_lane_px_mode_1_s {
1190 u64 reserved_16_63 : 48;
1191 u64 vma_fine_cfg_sel : 1;
1192 u64 vma_mm : 1;
1193 u64 cdr_fgain : 4;
1194 u64 ph_acc_adj : 10;
1195 } s;
1196 struct cvmx_gserx_lane_px_mode_1_s cn73xx;
1197 struct cvmx_gserx_lane_px_mode_1_s cn78xx;
1198 struct cvmx_gserx_lane_px_mode_1_s cn78xxp1;
1199 struct cvmx_gserx_lane_px_mode_1_s cnf75xx;
1200};
1201
1202typedef union cvmx_gserx_lane_px_mode_1 cvmx_gserx_lane_px_mode_1_t;
1203
1204/**
1205 * cvmx_gser#_lane#_rx_loop_ctrl
1206 *
1207 * These registers are for diagnostic use only.
1208 * These registers are reset by hardware only during chip cold reset.
1209 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1210 */
1211union cvmx_gserx_lanex_rx_loop_ctrl {
1212 u64 u64;
1213 struct cvmx_gserx_lanex_rx_loop_ctrl_s {
1214 u64 reserved_12_63 : 52;
1215 u64 fast_dll_lock : 1;
1216 u64 fast_ofst_cncl : 1;
1217 u64 cfg_rx_lctrl : 10;
1218 } s;
1219 struct cvmx_gserx_lanex_rx_loop_ctrl_s cn73xx;
1220 struct cvmx_gserx_lanex_rx_loop_ctrl_s cn78xx;
1221 struct cvmx_gserx_lanex_rx_loop_ctrl_s cn78xxp1;
1222 struct cvmx_gserx_lanex_rx_loop_ctrl_s cnf75xx;
1223};
1224
1225typedef union cvmx_gserx_lanex_rx_loop_ctrl cvmx_gserx_lanex_rx_loop_ctrl_t;
1226
1227/**
1228 * cvmx_gser#_lane#_rx_valbbd_ctrl_0
1229 *
1230 * These registers are reset by hardware only during chip cold reset. The values of the CSR
1231 * fields in these registers do not change during chip warm or soft resets.
1232 */
1233union cvmx_gserx_lanex_rx_valbbd_ctrl_0 {
1234 u64 u64;
1235 struct cvmx_gserx_lanex_rx_valbbd_ctrl_0_s {
1236 u64 reserved_14_63 : 50;
1237 u64 agc_gain : 2;
1238 u64 dfe_gain : 2;
1239 u64 dfe_c5_mval : 4;
1240 u64 dfe_c5_msgn : 1;
1241 u64 dfe_c4_mval : 4;
1242 u64 dfe_c4_msgn : 1;
1243 } s;
1244 struct cvmx_gserx_lanex_rx_valbbd_ctrl_0_s cn73xx;
1245 struct cvmx_gserx_lanex_rx_valbbd_ctrl_0_s cn78xx;
1246 struct cvmx_gserx_lanex_rx_valbbd_ctrl_0_s cn78xxp1;
1247 struct cvmx_gserx_lanex_rx_valbbd_ctrl_0_s cnf75xx;
1248};
1249
1250typedef union cvmx_gserx_lanex_rx_valbbd_ctrl_0 cvmx_gserx_lanex_rx_valbbd_ctrl_0_t;
1251
1252/**
1253 * cvmx_gser#_lane#_rx_valbbd_ctrl_1
1254 *
1255 * These registers are reset by hardware only during chip cold reset. The values of the CSR
1256 * fields in these registers do not change during chip warm or soft resets.
1257 */
1258union cvmx_gserx_lanex_rx_valbbd_ctrl_1 {
1259 u64 u64;
1260 struct cvmx_gserx_lanex_rx_valbbd_ctrl_1_s {
1261 u64 reserved_15_63 : 49;
1262 u64 dfe_c3_mval : 4;
1263 u64 dfe_c3_msgn : 1;
1264 u64 dfe_c2_mval : 4;
1265 u64 dfe_c2_msgn : 1;
1266 u64 dfe_c1_mval : 4;
1267 u64 dfe_c1_msgn : 1;
1268 } s;
1269 struct cvmx_gserx_lanex_rx_valbbd_ctrl_1_s cn73xx;
1270 struct cvmx_gserx_lanex_rx_valbbd_ctrl_1_s cn78xx;
1271 struct cvmx_gserx_lanex_rx_valbbd_ctrl_1_s cn78xxp1;
1272 struct cvmx_gserx_lanex_rx_valbbd_ctrl_1_s cnf75xx;
1273};
1274
1275typedef union cvmx_gserx_lanex_rx_valbbd_ctrl_1 cvmx_gserx_lanex_rx_valbbd_ctrl_1_t;
1276
1277/**
1278 * cvmx_gser#_lane#_rx_valbbd_ctrl_2
1279 *
1280 * These registers are reset by hardware only during chip cold reset. The values of the CSR
1281 * fields in these registers do not change during chip warm or soft resets.
1282 */
1283union cvmx_gserx_lanex_rx_valbbd_ctrl_2 {
1284 u64 u64;
1285 struct cvmx_gserx_lanex_rx_valbbd_ctrl_2_s {
1286 u64 reserved_6_63 : 58;
1287 u64 dfe_ovrd_en : 1;
1288 u64 dfe_c5_ovrd_val : 1;
1289 u64 dfe_c4_ovrd_val : 1;
1290 u64 dfe_c3_ovrd_val : 1;
1291 u64 dfe_c2_ovrd_val : 1;
1292 u64 dfe_c1_ovrd_val : 1;
1293 } s;
1294 struct cvmx_gserx_lanex_rx_valbbd_ctrl_2_s cn73xx;
1295 struct cvmx_gserx_lanex_rx_valbbd_ctrl_2_s cn78xx;
1296 struct cvmx_gserx_lanex_rx_valbbd_ctrl_2_s cn78xxp1;
1297 struct cvmx_gserx_lanex_rx_valbbd_ctrl_2_s cnf75xx;
1298};
1299
1300typedef union cvmx_gserx_lanex_rx_valbbd_ctrl_2 cvmx_gserx_lanex_rx_valbbd_ctrl_2_t;
1301
1302/**
1303 * cvmx_gser#_lane_vma_fine_ctrl_0
1304 *
1305 * These registers are for diagnostic use only.
1306 * These registers are reset by hardware only during chip cold reset.
1307 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1308 */
1309union cvmx_gserx_lane_vma_fine_ctrl_0 {
1310 u64 u64;
1311 struct cvmx_gserx_lane_vma_fine_ctrl_0_s {
1312 u64 reserved_16_63 : 48;
1313 u64 rx_sdll_iq_max_fine : 4;
1314 u64 rx_sdll_iq_min_fine : 4;
1315 u64 rx_sdll_iq_step_fine : 2;
1316 u64 vma_window_wait_fine : 3;
1317 u64 lms_wait_time_fine : 3;
1318 } s;
1319 struct cvmx_gserx_lane_vma_fine_ctrl_0_s cn73xx;
1320 struct cvmx_gserx_lane_vma_fine_ctrl_0_s cn78xx;
1321 struct cvmx_gserx_lane_vma_fine_ctrl_0_s cn78xxp1;
1322 struct cvmx_gserx_lane_vma_fine_ctrl_0_s cnf75xx;
1323};
1324
1325typedef union cvmx_gserx_lane_vma_fine_ctrl_0 cvmx_gserx_lane_vma_fine_ctrl_0_t;
1326
1327/**
1328 * cvmx_gser#_lane_vma_fine_ctrl_1
1329 *
1330 * These registers are for diagnostic use only.
1331 * These registers are reset by hardware only during chip cold reset.
1332 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1333 */
1334union cvmx_gserx_lane_vma_fine_ctrl_1 {
1335 u64 u64;
1336 struct cvmx_gserx_lane_vma_fine_ctrl_1_s {
1337 u64 reserved_10_63 : 54;
1338 u64 rx_ctle_peak_max_fine : 4;
1339 u64 rx_ctle_peak_min_fine : 4;
1340 u64 rx_ctle_peak_step_fine : 2;
1341 } s;
1342 struct cvmx_gserx_lane_vma_fine_ctrl_1_s cn73xx;
1343 struct cvmx_gserx_lane_vma_fine_ctrl_1_s cn78xx;
1344 struct cvmx_gserx_lane_vma_fine_ctrl_1_s cn78xxp1;
1345 struct cvmx_gserx_lane_vma_fine_ctrl_1_s cnf75xx;
1346};
1347
1348typedef union cvmx_gserx_lane_vma_fine_ctrl_1 cvmx_gserx_lane_vma_fine_ctrl_1_t;
1349
1350/**
1351 * cvmx_gser#_lane_vma_fine_ctrl_2
1352 *
1353 * These registers are for diagnostic use only.
1354 * These registers are reset by hardware only during chip cold reset.
1355 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1356 */
1357union cvmx_gserx_lane_vma_fine_ctrl_2 {
1358 u64 u64;
1359 struct cvmx_gserx_lane_vma_fine_ctrl_2_s {
1360 u64 reserved_10_63 : 54;
1361 u64 rx_prectle_gain_max_fine : 4;
1362 u64 rx_prectle_gain_min_fine : 4;
1363 u64 rx_prectle_gain_step_fine : 2;
1364 } s;
1365 struct cvmx_gserx_lane_vma_fine_ctrl_2_s cn73xx;
1366 struct cvmx_gserx_lane_vma_fine_ctrl_2_s cn78xx;
1367 struct cvmx_gserx_lane_vma_fine_ctrl_2_s cn78xxp1;
1368 struct cvmx_gserx_lane_vma_fine_ctrl_2_s cnf75xx;
1369};
1370
1371typedef union cvmx_gserx_lane_vma_fine_ctrl_2 cvmx_gserx_lane_vma_fine_ctrl_2_t;
1372
1373/**
1374 * cvmx_gser#_lane#_pwr_ctrl
1375 *
1376 * These registers are for diagnostic use only.
1377 * These registers are reset by hardware only during chip cold reset.
1378 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1379 */
1380union cvmx_gserx_lanex_pwr_ctrl {
1381 u64 u64;
1382 struct cvmx_gserx_lanex_pwr_ctrl_s {
1383 u64 reserved_15_63 : 49;
1384 u64 tx_sds_fifo_reset_ovrrd_en : 1;
1385 u64 tx_sds_fifo_reset_ovrrd_val : 1;
1386 u64 tx_pcs_reset_ovrrd_val : 1;
1387 u64 rx_pcs_reset_ovrrd_val : 1;
1388 u64 reserved_9_10 : 2;
1389 u64 rx_resetn_ovrrd_en : 1;
1390 u64 rx_resetn_ovrrd_val : 1;
1391 u64 rx_lctrl_ovrrd_en : 1;
1392 u64 rx_lctrl_ovrrd_val : 1;
1393 u64 tx_tristate_en_ovrrd_en : 1;
1394 u64 tx_pcs_reset_ovrrd_en : 1;
1395 u64 tx_elec_idle_ovrrd_en : 1;
1396 u64 tx_pd_ovrrd_en : 1;
1397 u64 tx_p2s_resetn_ovrrd_en : 1;
1398 } s;
1399 struct cvmx_gserx_lanex_pwr_ctrl_cn73xx {
1400 u64 reserved_15_63 : 49;
1401 u64 tx_sds_fifo_reset_ovrrd_en : 1;
1402 u64 tx_sds_fifo_reset_ovrrd_val : 1;
1403 u64 tx_pcs_reset_ovrrd_val : 1;
1404 u64 rx_pcs_reset_ovrrd_val : 1;
1405 u64 reserved_10_9 : 2;
1406 u64 rx_resetn_ovrrd_en : 1;
1407 u64 rx_resetn_ovrrd_val : 1;
1408 u64 rx_lctrl_ovrrd_en : 1;
1409 u64 rx_lctrl_ovrrd_val : 1;
1410 u64 tx_tristate_en_ovrrd_en : 1;
1411 u64 tx_pcs_reset_ovrrd_en : 1;
1412 u64 tx_elec_idle_ovrrd_en : 1;
1413 u64 tx_pd_ovrrd_en : 1;
1414 u64 tx_p2s_resetn_ovrrd_en : 1;
1415 } cn73xx;
1416 struct cvmx_gserx_lanex_pwr_ctrl_cn73xx cn78xx;
1417 struct cvmx_gserx_lanex_pwr_ctrl_s cn78xxp1;
1418 struct cvmx_gserx_lanex_pwr_ctrl_cn73xx cnf75xx;
1419};
1420
1421typedef union cvmx_gserx_lanex_pwr_ctrl cvmx_gserx_lanex_pwr_ctrl_t;
1422
1423/**
1424 * cvmx_gser#_lane#_rx_cfg_0
1425 *
1426 * These registers are for diagnostic use only.
1427 * These registers are reset by hardware only during chip cold reset.
1428 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1429 */
1430union cvmx_gserx_lanex_rx_cfg_0 {
1431 u64 u64;
1432 struct cvmx_gserx_lanex_rx_cfg_0_s {
1433 u64 reserved_16_63 : 48;
1434 u64 rx_datarate_ovrrd_en : 1;
1435 u64 reserved_14_14 : 1;
1436 u64 rx_resetn_ovrrd_val : 1;
1437 u64 pcs_sds_rx_eyemon_en : 1;
1438 u64 pcs_sds_rx_pcm_ctrl : 4;
1439 u64 rx_datarate_ovrrd_val : 2;
1440 u64 cfg_rx_pol_invert : 1;
1441 u64 rx_subblk_pd_ovrrd_val : 5;
1442 } s;
1443 struct cvmx_gserx_lanex_rx_cfg_0_cn73xx {
1444 u64 reserved_16_63 : 48;
1445 u64 rx_datarate_ovrrd_en : 1;
1446 u64 pcs_rx_tristate_enable : 1;
1447 u64 rx_resetn_ovrrd_val : 1;
1448 u64 pcs_sds_rx_eyemon_en : 1;
1449 u64 pcs_sds_rx_pcm_ctrl : 4;
1450 u64 rx_datarate_ovrrd_val : 2;
1451 u64 cfg_rx_pol_invert : 1;
1452 u64 rx_subblk_pd_ovrrd_val : 5;
1453 } cn73xx;
1454 struct cvmx_gserx_lanex_rx_cfg_0_cn78xx {
1455 u64 reserved_16_63 : 48;
1456 u64 rx_datarate_ovrrd_en : 1;
1457 u64 pcs_sds_rx_tristate_enable : 1;
1458 u64 rx_resetn_ovrrd_val : 1;
1459 u64 pcs_sds_rx_eyemon_en : 1;
1460 u64 pcs_sds_rx_pcm_ctrl : 4;
1461 u64 rx_datarate_ovrrd_val : 2;
1462 u64 cfg_rx_pol_invert : 1;
1463 u64 rx_subblk_pd_ovrrd_val : 5;
1464 } cn78xx;
1465 struct cvmx_gserx_lanex_rx_cfg_0_cn78xx cn78xxp1;
1466 struct cvmx_gserx_lanex_rx_cfg_0_cn73xx cnf75xx;
1467};
1468
1469typedef union cvmx_gserx_lanex_rx_cfg_0 cvmx_gserx_lanex_rx_cfg_0_t;
1470
1471/**
1472 * cvmx_gser#_lane#_rx_cfg_1
1473 *
1474 * These registers are for diagnostic use only.
1475 * These registers are reset by hardware only during chip cold reset.
1476 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1477 */
1478union cvmx_gserx_lanex_rx_cfg_1 {
1479 u64 u64;
1480 struct cvmx_gserx_lanex_rx_cfg_1_s {
1481 u64 reserved_16_63 : 48;
1482 u64 rx_chpd_ovrrd_val : 1;
1483 u64 pcs_sds_rx_os_men : 1;
1484 u64 eie_en_ovrrd_en : 1;
1485 u64 eie_en_ovrrd_val : 1;
1486 u64 reserved_11_11 : 1;
1487 u64 rx_pcie_mode_ovrrd_en : 1;
1488 u64 rx_pcie_mode_ovrrd_val : 1;
1489 u64 cfg_rx_dll_locken : 1;
1490 u64 pcs_sds_rx_cdr_ssc_mode : 8;
1491 } s;
1492 struct cvmx_gserx_lanex_rx_cfg_1_s cn73xx;
1493 struct cvmx_gserx_lanex_rx_cfg_1_s cn78xx;
1494 struct cvmx_gserx_lanex_rx_cfg_1_s cn78xxp1;
1495 struct cvmx_gserx_lanex_rx_cfg_1_s cnf75xx;
1496};
1497
1498typedef union cvmx_gserx_lanex_rx_cfg_1 cvmx_gserx_lanex_rx_cfg_1_t;
1499
1500/**
1501 * cvmx_gser#_lane#_rx_cfg_2
1502 *
1503 * These registers are for diagnostic use only.
1504 * These registers are reset by hardware only during chip cold reset.
1505 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1506 */
1507union cvmx_gserx_lanex_rx_cfg_2 {
1508 u64 u64;
1509 struct cvmx_gserx_lanex_rx_cfg_2_s {
1510 u64 reserved_15_63 : 49;
1511 u64 pcs_sds_rx_terminate_to_vdda : 1;
1512 u64 pcs_sds_rx_sampler_boost : 2;
1513 u64 pcs_sds_rx_sampler_boost_en : 1;
1514 u64 reserved_10_10 : 1;
1515 u64 rx_sds_rx_agc_mval : 10;
1516 } s;
1517 struct cvmx_gserx_lanex_rx_cfg_2_s cn73xx;
1518 struct cvmx_gserx_lanex_rx_cfg_2_s cn78xx;
1519 struct cvmx_gserx_lanex_rx_cfg_2_s cn78xxp1;
1520 struct cvmx_gserx_lanex_rx_cfg_2_s cnf75xx;
1521};
1522
1523typedef union cvmx_gserx_lanex_rx_cfg_2 cvmx_gserx_lanex_rx_cfg_2_t;
1524
1525/**
1526 * cvmx_gser#_lane#_rx_cfg_3
1527 *
1528 * These registers are for diagnostic use only.
1529 * These registers are reset by hardware only during chip cold reset.
1530 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1531 */
1532union cvmx_gserx_lanex_rx_cfg_3 {
1533 u64 u64;
1534 struct cvmx_gserx_lanex_rx_cfg_3_s {
1535 u64 reserved_16_63 : 48;
1536 u64 cfg_rx_errdet_ctrl : 16;
1537 } s;
1538 struct cvmx_gserx_lanex_rx_cfg_3_s cn73xx;
1539 struct cvmx_gserx_lanex_rx_cfg_3_s cn78xx;
1540 struct cvmx_gserx_lanex_rx_cfg_3_s cn78xxp1;
1541 struct cvmx_gserx_lanex_rx_cfg_3_s cnf75xx;
1542};
1543
1544typedef union cvmx_gserx_lanex_rx_cfg_3 cvmx_gserx_lanex_rx_cfg_3_t;
1545
1546/**
1547 * cvmx_gser#_lane#_rx_cfg_4
1548 *
1549 * These registers are for diagnostic use only.
1550 * These registers are reset by hardware only during chip cold reset.
1551 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1552 */
1553union cvmx_gserx_lanex_rx_cfg_4 {
1554 u64 u64;
1555 struct cvmx_gserx_lanex_rx_cfg_4_s {
1556 u64 reserved_16_63 : 48;
1557 u64 cfg_rx_errdet_ctrl : 16;
1558 } s;
1559 struct cvmx_gserx_lanex_rx_cfg_4_s cn73xx;
1560 struct cvmx_gserx_lanex_rx_cfg_4_s cn78xx;
1561 struct cvmx_gserx_lanex_rx_cfg_4_s cn78xxp1;
1562 struct cvmx_gserx_lanex_rx_cfg_4_s cnf75xx;
1563};
1564
1565typedef union cvmx_gserx_lanex_rx_cfg_4 cvmx_gserx_lanex_rx_cfg_4_t;
1566
1567/**
1568 * cvmx_gser#_lane#_rx_cfg_5
1569 *
1570 * These registers are for diagnostic use only.
1571 * These registers are reset by hardware only during chip cold reset.
1572 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1573 */
1574union cvmx_gserx_lanex_rx_cfg_5 {
1575 u64 u64;
1576 struct cvmx_gserx_lanex_rx_cfg_5_s {
1577 u64 reserved_5_63 : 59;
1578 u64 rx_agc_men_ovrrd_en : 1;
1579 u64 rx_agc_men_ovrrd_val : 1;
1580 u64 rx_widthsel_ovrrd_en : 1;
1581 u64 rx_widthsel_ovrrd_val : 2;
1582 } s;
1583 struct cvmx_gserx_lanex_rx_cfg_5_s cn73xx;
1584 struct cvmx_gserx_lanex_rx_cfg_5_s cn78xx;
1585 struct cvmx_gserx_lanex_rx_cfg_5_s cn78xxp1;
1586 struct cvmx_gserx_lanex_rx_cfg_5_s cnf75xx;
1587};
1588
1589typedef union cvmx_gserx_lanex_rx_cfg_5 cvmx_gserx_lanex_rx_cfg_5_t;
1590
1591/**
1592 * cvmx_gser#_lane#_rx_ctle_ctrl
1593 *
1594 * These are the RAW PCS per-lane RX CTLE control registers.
1595 * These registers are reset by hardware only during chip cold reset. The values of the CSR
1596 * fields in these registers do not change during chip warm or soft resets.
1597 */
1598union cvmx_gserx_lanex_rx_ctle_ctrl {
1599 u64 u64;
1600 struct cvmx_gserx_lanex_rx_ctle_ctrl_s {
1601 u64 reserved_16_63 : 48;
1602 u64 pcs_sds_rx_ctle_bias_ctrl : 2;
1603 u64 pcs_sds_rx_ctle_zero : 4;
1604 u64 rx_ctle_pole_ovrrd_en : 1;
1605 u64 rx_ctle_pole_ovrrd_val : 4;
1606 u64 pcs_sds_rx_ctle_pole_max : 2;
1607 u64 pcs_sds_rx_ctle_pole_min : 2;
1608 u64 pcs_sds_rx_ctle_pole_step : 1;
1609 } s;
1610 struct cvmx_gserx_lanex_rx_ctle_ctrl_s cn73xx;
1611 struct cvmx_gserx_lanex_rx_ctle_ctrl_s cn78xx;
1612 struct cvmx_gserx_lanex_rx_ctle_ctrl_s cn78xxp1;
1613 struct cvmx_gserx_lanex_rx_ctle_ctrl_s cnf75xx;
1614};
1615
1616typedef union cvmx_gserx_lanex_rx_ctle_ctrl cvmx_gserx_lanex_rx_ctle_ctrl_t;
1617
1618/**
1619 * cvmx_gser#_lane#_rx_misc_ovrrd
1620 *
1621 * These registers are for diagnostic use only.
1622 * These registers are reset by hardware only during chip cold reset.
1623 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1624 */
1625union cvmx_gserx_lanex_rx_misc_ovrrd {
1626 u64 u64;
1627 struct cvmx_gserx_lanex_rx_misc_ovrrd_s {
1628 u64 reserved_14_63 : 50;
1629 u64 cfg_rx_oob_clk_en_ovrrd_val : 1;
1630 u64 cfg_rx_oob_clk_en_ovrrd_en : 1;
1631 u64 cfg_rx_eie_det_ovrrd_val : 1;
1632 u64 cfg_rx_eie_det_ovrrd_en : 1;
1633 u64 cfg_rx_cdr_ctrl_ovrrd_en : 1;
1634 u64 cfg_rx_eq_eval_ovrrd_val : 1;
1635 u64 cfg_rx_eq_eval_ovrrd_en : 1;
1636 u64 reserved_6_6 : 1;
1637 u64 cfg_rx_dll_locken_ovrrd_en : 1;
1638 u64 cfg_rx_errdet_ctrl_ovrrd_en : 1;
1639 u64 reserved_1_3 : 3;
1640 u64 cfg_rxeq_eval_restore_en : 1;
1641 } s;
1642 struct cvmx_gserx_lanex_rx_misc_ovrrd_cn73xx {
1643 u64 reserved_14_63 : 50;
1644 u64 cfg_rx_oob_clk_en_ovrrd_val : 1;
1645 u64 cfg_rx_oob_clk_en_ovrrd_en : 1;
1646 u64 cfg_rx_eie_det_ovrrd_val : 1;
1647 u64 cfg_rx_eie_det_ovrrd_en : 1;
1648 u64 cfg_rx_cdr_ctrl_ovrrd_en : 1;
1649 u64 cfg_rx_eq_eval_ovrrd_val : 1;
1650 u64 cfg_rx_eq_eval_ovrrd_en : 1;
1651 u64 reserved_6_6 : 1;
1652 u64 cfg_rx_dll_locken_ovrrd_en : 1;
1653 u64 cfg_rx_errdet_ctrl_ovrrd_en : 1;
1654 u64 reserved_3_1 : 3;
1655 u64 cfg_rxeq_eval_restore_en : 1;
1656 } cn73xx;
1657 struct cvmx_gserx_lanex_rx_misc_ovrrd_cn73xx cn78xx;
1658 struct cvmx_gserx_lanex_rx_misc_ovrrd_cn78xxp1 {
1659 u64 reserved_14_63 : 50;
1660 u64 cfg_rx_oob_clk_en_ovrrd_val : 1;
1661 u64 cfg_rx_oob_clk_en_ovrrd_en : 1;
1662 u64 cfg_rx_eie_det_ovrrd_val : 1;
1663 u64 cfg_rx_eie_det_ovrrd_en : 1;
1664 u64 cfg_rx_cdr_ctrl_ovrrd_en : 1;
1665 u64 cfg_rx_eq_eval_ovrrd_val : 1;
1666 u64 cfg_rx_eq_eval_ovrrd_en : 1;
1667 u64 reserved_6_6 : 1;
1668 u64 cfg_rx_dll_locken_ovrrd_en : 1;
1669 u64 cfg_rx_errdet_ctrl_ovrrd_en : 1;
1670 u64 reserved_0_3 : 4;
1671 } cn78xxp1;
1672 struct cvmx_gserx_lanex_rx_misc_ovrrd_cn73xx cnf75xx;
1673};
1674
1675typedef union cvmx_gserx_lanex_rx_misc_ovrrd cvmx_gserx_lanex_rx_misc_ovrrd_t;
1676
1677/**
1678 * cvmx_gser#_lane#_tx_cfg_0
1679 *
1680 * These registers are reset by hardware only during chip cold reset. The
1681 * values of the CSR fields in these registers do not change during chip
1682 * warm or soft resets.
1683 */
1684union cvmx_gserx_lanex_tx_cfg_0 {
1685 u64 u64;
1686 struct cvmx_gserx_lanex_tx_cfg_0_s {
1687 u64 reserved_16_63 : 48;
1688 u64 tx_tristate_en_ovrrd_val : 1;
1689 u64 tx_chpd_ovrrd_val : 1;
1690 u64 reserved_10_13 : 4;
1691 u64 tx_resetn_ovrrd_val : 1;
1692 u64 tx_cm_mode : 1;
1693 u64 cfg_tx_swing : 5;
1694 u64 fast_rdet_mode : 1;
1695 u64 fast_tristate_mode : 1;
1696 u64 reserved_0_0 : 1;
1697 } s;
1698 struct cvmx_gserx_lanex_tx_cfg_0_cn73xx {
1699 u64 reserved_16_63 : 48;
1700 u64 tx_tristate_en_ovrrd_val : 1;
1701 u64 tx_chpd_ovrrd_val : 1;
1702 u64 reserved_13_10 : 4;
1703 u64 tx_resetn_ovrrd_val : 1;
1704 u64 tx_cm_mode : 1;
1705 u64 cfg_tx_swing : 5;
1706 u64 fast_rdet_mode : 1;
1707 u64 fast_tristate_mode : 1;
1708 u64 reserved_0_0 : 1;
1709 } cn73xx;
1710 struct cvmx_gserx_lanex_tx_cfg_0_cn73xx cn78xx;
1711 struct cvmx_gserx_lanex_tx_cfg_0_s cn78xxp1;
1712 struct cvmx_gserx_lanex_tx_cfg_0_cn73xx cnf75xx;
1713};
1714
1715typedef union cvmx_gserx_lanex_tx_cfg_0 cvmx_gserx_lanex_tx_cfg_0_t;
1716
1717/**
1718 * cvmx_gser#_lane#_tx_cfg_1
1719 *
1720 * These registers are reset by hardware only during chip cold reset. The
1721 * values of the CSR fields in these registers do not change during chip
1722 * warm or soft resets.
1723 */
1724union cvmx_gserx_lanex_tx_cfg_1 {
1725 u64 u64;
1726 struct cvmx_gserx_lanex_tx_cfg_1_s {
1727 u64 reserved_15_63 : 49;
1728 u64 tx_widthsel_ovrrd_en : 1;
1729 u64 tx_widthsel_ovrrd_val : 2;
1730 u64 tx_vboost_en_ovrrd_en : 1;
1731 u64 tx_turbo_en_ovrrd_en : 1;
1732 u64 tx_swing_ovrrd_en : 1;
1733 u64 tx_premptap_ovrrd_val : 1;
1734 u64 tx_elec_idle_ovrrd_en : 1;
1735 u64 smpl_rate_ovrrd_en : 1;
1736 u64 smpl_rate_ovrrd_val : 3;
1737 u64 tx_datarate_ovrrd_en : 1;
1738 u64 tx_datarate_ovrrd_val : 2;
1739 } s;
1740 struct cvmx_gserx_lanex_tx_cfg_1_s cn73xx;
1741 struct cvmx_gserx_lanex_tx_cfg_1_s cn78xx;
1742 struct cvmx_gserx_lanex_tx_cfg_1_s cn78xxp1;
1743 struct cvmx_gserx_lanex_tx_cfg_1_s cnf75xx;
1744};
1745
1746typedef union cvmx_gserx_lanex_tx_cfg_1 cvmx_gserx_lanex_tx_cfg_1_t;
1747
1748/**
1749 * cvmx_gser#_lane#_tx_cfg_2
1750 *
1751 * These registers are for diagnostic use only. These registers are reset by hardware only during
1752 * chip cold reset. The values of the CSR fields in these registers do not change during chip
1753 * warm or soft resets.
1754 */
1755union cvmx_gserx_lanex_tx_cfg_2 {
1756 u64 u64;
1757 struct cvmx_gserx_lanex_tx_cfg_2_s {
1758 u64 reserved_16_63 : 48;
1759 u64 pcs_sds_tx_dcc_en : 1;
1760 u64 reserved_3_14 : 12;
1761 u64 rcvr_test_ovrrd_en : 1;
1762 u64 rcvr_test_ovrrd_val : 1;
1763 u64 tx_rx_detect_dis_ovrrd_val : 1;
1764 } s;
1765 struct cvmx_gserx_lanex_tx_cfg_2_cn73xx {
1766 u64 reserved_16_63 : 48;
1767 u64 pcs_sds_tx_dcc_en : 1;
1768 u64 reserved_14_3 : 12;
1769 u64 rcvr_test_ovrrd_en : 1;
1770 u64 rcvr_test_ovrrd_val : 1;
1771 u64 tx_rx_detect_dis_ovrrd_val : 1;
1772 } cn73xx;
1773 struct cvmx_gserx_lanex_tx_cfg_2_cn73xx cn78xx;
1774 struct cvmx_gserx_lanex_tx_cfg_2_s cn78xxp1;
1775 struct cvmx_gserx_lanex_tx_cfg_2_cn73xx cnf75xx;
1776};
1777
1778typedef union cvmx_gserx_lanex_tx_cfg_2 cvmx_gserx_lanex_tx_cfg_2_t;
1779
1780/**
1781 * cvmx_gser#_lane#_tx_cfg_3
1782 *
1783 * These registers are for diagnostic use only. These registers are reset by hardware only during
1784 * chip cold reset. The values of the CSR fields in these registers do not change during chip
1785 * warm or soft resets.
1786 */
1787union cvmx_gserx_lanex_tx_cfg_3 {
1788 u64 u64;
1789 struct cvmx_gserx_lanex_tx_cfg_3_s {
1790 u64 reserved_15_63 : 49;
1791 u64 cfg_tx_vboost_en : 1;
1792 u64 reserved_7_13 : 7;
1793 u64 pcs_sds_tx_gain : 3;
1794 u64 pcs_sds_tx_srate_sel : 3;
1795 u64 cfg_tx_turbo_en : 1;
1796 } s;
1797 struct cvmx_gserx_lanex_tx_cfg_3_cn73xx {
1798 u64 reserved_15_63 : 49;
1799 u64 cfg_tx_vboost_en : 1;
1800 u64 reserved_13_7 : 7;
1801 u64 pcs_sds_tx_gain : 3;
1802 u64 pcs_sds_tx_srate_sel : 3;
1803 u64 cfg_tx_turbo_en : 1;
1804 } cn73xx;
1805 struct cvmx_gserx_lanex_tx_cfg_3_cn73xx cn78xx;
1806 struct cvmx_gserx_lanex_tx_cfg_3_s cn78xxp1;
1807 struct cvmx_gserx_lanex_tx_cfg_3_cn73xx cnf75xx;
1808};
1809
1810typedef union cvmx_gserx_lanex_tx_cfg_3 cvmx_gserx_lanex_tx_cfg_3_t;
1811
1812/**
1813 * cvmx_gser#_lane#_tx_pre_emphasis
1814 *
1815 * These registers are reset by hardware only during chip cold reset. The
1816 * values of the CSR fields in these registers do not change during chip
1817 * warm or soft resets.
1818 */
1819union cvmx_gserx_lanex_tx_pre_emphasis {
1820 u64 u64;
1821 struct cvmx_gserx_lanex_tx_pre_emphasis_s {
1822 u64 reserved_9_63 : 55;
1823 u64 cfg_tx_premptap : 9;
1824 } s;
1825 struct cvmx_gserx_lanex_tx_pre_emphasis_s cn73xx;
1826 struct cvmx_gserx_lanex_tx_pre_emphasis_s cn78xx;
1827 struct cvmx_gserx_lanex_tx_pre_emphasis_s cn78xxp1;
1828 struct cvmx_gserx_lanex_tx_pre_emphasis_s cnf75xx;
1829};
1830
1831typedef union cvmx_gserx_lanex_tx_pre_emphasis cvmx_gserx_lanex_tx_pre_emphasis_t;
1832
1833/**
1834 * cvmx_gser#_lane#_pcs_ctlifc_0
1835 *
1836 * These registers are for diagnostic use only.
1837 * These registers are reset by hardware only during chip cold reset.
1838 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1839 */
1840union cvmx_gserx_lanex_pcs_ctlifc_0 {
1841 u64 u64;
1842 struct cvmx_gserx_lanex_pcs_ctlifc_0_s {
1843 u64 reserved_14_63 : 50;
1844 u64 cfg_tx_vboost_en_ovrrd_val : 1;
1845 u64 cfg_tx_coeff_req_ovrrd_val : 1;
1846 u64 cfg_rx_cdr_coast_req_ovrrd_val : 1;
1847 u64 cfg_tx_detrx_en_req_ovrrd_val : 1;
1848 u64 cfg_soft_reset_req_ovrrd_val : 1;
1849 u64 cfg_lane_pwr_off_ovrrd_val : 1;
1850 u64 cfg_tx_mode_ovrrd_val : 2;
1851 u64 cfg_tx_pstate_req_ovrrd_val : 2;
1852 u64 cfg_lane_mode_req_ovrrd_val : 4;
1853 } s;
1854 struct cvmx_gserx_lanex_pcs_ctlifc_0_s cn73xx;
1855 struct cvmx_gserx_lanex_pcs_ctlifc_0_s cn78xx;
1856 struct cvmx_gserx_lanex_pcs_ctlifc_0_s cn78xxp1;
1857 struct cvmx_gserx_lanex_pcs_ctlifc_0_s cnf75xx;
1858};
1859
1860typedef union cvmx_gserx_lanex_pcs_ctlifc_0 cvmx_gserx_lanex_pcs_ctlifc_0_t;
1861
1862/**
1863 * cvmx_gser#_lane#_pcs_ctlifc_1
1864 *
1865 * These registers are for diagnostic use only.
1866 * These registers are reset by hardware only during chip cold reset.
1867 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1868 */
1869union cvmx_gserx_lanex_pcs_ctlifc_1 {
1870 u64 u64;
1871 struct cvmx_gserx_lanex_pcs_ctlifc_1_s {
1872 u64 reserved_9_63 : 55;
1873 u64 cfg_rx_pstate_req_ovrrd_val : 2;
1874 u64 reserved_2_6 : 5;
1875 u64 cfg_rx_mode_ovrrd_val : 2;
1876 } s;
1877 struct cvmx_gserx_lanex_pcs_ctlifc_1_cn73xx {
1878 u64 reserved_9_63 : 55;
1879 u64 cfg_rx_pstate_req_ovrrd_val : 2;
1880 u64 reserved_6_2 : 5;
1881 u64 cfg_rx_mode_ovrrd_val : 2;
1882 } cn73xx;
1883 struct cvmx_gserx_lanex_pcs_ctlifc_1_cn73xx cn78xx;
1884 struct cvmx_gserx_lanex_pcs_ctlifc_1_s cn78xxp1;
1885 struct cvmx_gserx_lanex_pcs_ctlifc_1_cn73xx cnf75xx;
1886};
1887
1888typedef union cvmx_gserx_lanex_pcs_ctlifc_1 cvmx_gserx_lanex_pcs_ctlifc_1_t;
1889
1890/**
1891 * cvmx_gser#_lane#_pcs_ctlifc_2
1892 *
1893 * These registers are for diagnostic use only.
1894 * These registers are reset by hardware only during chip cold reset.
1895 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
1896 */
1897union cvmx_gserx_lanex_pcs_ctlifc_2 {
1898 u64 u64;
1899 struct cvmx_gserx_lanex_pcs_ctlifc_2_s {
1900 u64 reserved_16_63 : 48;
1901 u64 ctlifc_ovrrd_req : 1;
1902 u64 reserved_9_14 : 6;
1903 u64 cfg_tx_vboost_en_ovrrd_en : 1;
1904 u64 cfg_tx_coeff_req_ovrrd_en : 1;
1905 u64 cfg_rx_cdr_coast_req_ovrrd_en : 1;
1906 u64 cfg_tx_detrx_en_req_ovrrd_en : 1;
1907 u64 cfg_soft_reset_req_ovrrd_en : 1;
1908 u64 cfg_lane_pwr_off_ovrrd_en : 1;
1909 u64 cfg_tx_pstate_req_ovrrd_en : 1;
1910 u64 cfg_rx_pstate_req_ovrrd_en : 1;
1911 u64 cfg_lane_mode_req_ovrrd_en : 1;
1912 } s;
1913 struct cvmx_gserx_lanex_pcs_ctlifc_2_cn73xx {
1914 u64 reserved_16_63 : 48;
1915 u64 ctlifc_ovrrd_req : 1;
1916 u64 reserved_14_9 : 6;
1917 u64 cfg_tx_vboost_en_ovrrd_en : 1;
1918 u64 cfg_tx_coeff_req_ovrrd_en : 1;
1919 u64 cfg_rx_cdr_coast_req_ovrrd_en : 1;
1920 u64 cfg_tx_detrx_en_req_ovrrd_en : 1;
1921 u64 cfg_soft_reset_req_ovrrd_en : 1;
1922 u64 cfg_lane_pwr_off_ovrrd_en : 1;
1923 u64 cfg_tx_pstate_req_ovrrd_en : 1;
1924 u64 cfg_rx_pstate_req_ovrrd_en : 1;
1925 u64 cfg_lane_mode_req_ovrrd_en : 1;
1926 } cn73xx;
1927 struct cvmx_gserx_lanex_pcs_ctlifc_2_cn73xx cn78xx;
1928 struct cvmx_gserx_lanex_pcs_ctlifc_2_s cn78xxp1;
1929 struct cvmx_gserx_lanex_pcs_ctlifc_2_cn73xx cnf75xx;
1930};
1931
1932typedef union cvmx_gserx_lanex_pcs_ctlifc_2 cvmx_gserx_lanex_pcs_ctlifc_2_t;
1933
1934/**
1935 * cvmx_gser#_lane_mode
1936 *
1937 * These registers are reset by hardware only during chip cold reset. The values of the CSR
1938 * fields in these registers do not change during chip warm or soft resets.
1939 */
1940union cvmx_gserx_lane_mode {
1941 u64 u64;
1942 struct cvmx_gserx_lane_mode_s {
1943 u64 reserved_4_63 : 60;
1944 u64 lmode : 4;
1945 } s;
1946 struct cvmx_gserx_lane_mode_s cn73xx;
1947 struct cvmx_gserx_lane_mode_s cn78xx;
1948 struct cvmx_gserx_lane_mode_s cn78xxp1;
1949 struct cvmx_gserx_lane_mode_s cnf75xx;
1950};
1951
1952typedef union cvmx_gserx_lane_mode cvmx_gserx_lane_mode_t;
1953
1954/**
1955 * cvmx_gser#_pll_p#_mode_0
1956 *
1957 * These are the RAW PCS PLL global settings mode 0 registers. There is one register per GSER per
1958 * GSER_LMODE_E value (0..11). Only one entry is used at any given time in a given GSER - the one
1959 * selected by the corresponding GSER()_LANE_MODE[LMODE].
1960 * These registers are reset by hardware only during chip cold reset.
1961 * The values of the CSR fields in these registers do not change during subsequent chip warm or
1962 * soft resets.
1963 */
1964union cvmx_gserx_pll_px_mode_0 {
1965 u64 u64;
1966 struct cvmx_gserx_pll_px_mode_0_s {
1967 u64 reserved_16_63 : 48;
1968 u64 pll_icp : 4;
1969 u64 pll_rloop : 3;
1970 u64 pll_pcs_div : 9;
1971 } s;
1972 struct cvmx_gserx_pll_px_mode_0_s cn73xx;
1973 struct cvmx_gserx_pll_px_mode_0_s cn78xx;
1974 struct cvmx_gserx_pll_px_mode_0_s cn78xxp1;
1975 struct cvmx_gserx_pll_px_mode_0_s cnf75xx;
1976};
1977
1978typedef union cvmx_gserx_pll_px_mode_0 cvmx_gserx_pll_px_mode_0_t;
1979
1980/**
1981 * cvmx_gser#_pll_p#_mode_1
1982 *
1983 * These are the RAW PCS PLL global settings mode 1 registers. There is one register per GSER per
1984 * GSER_LMODE_E value (0..11). Only one entry is used at any given time in a given GSER - the one
1985 * selected by the corresponding GSER()_LANE_MODE[LMODE].
1986 * These registers are reset by hardware only during chip cold reset.
1987 * The values of the CSR fields in this register do not change during subsequent chip warm or
1988 * soft resets.
1989 */
1990union cvmx_gserx_pll_px_mode_1 {
1991 u64 u64;
1992 struct cvmx_gserx_pll_px_mode_1_s {
1993 u64 reserved_14_63 : 50;
1994 u64 pll_16p5en : 1;
1995 u64 pll_cpadj : 2;
1996 u64 pll_pcie3en : 1;
1997 u64 pll_opr : 1;
1998 u64 pll_div : 9;
1999 } s;
2000 struct cvmx_gserx_pll_px_mode_1_s cn73xx;
2001 struct cvmx_gserx_pll_px_mode_1_s cn78xx;
2002 struct cvmx_gserx_pll_px_mode_1_s cn78xxp1;
2003 struct cvmx_gserx_pll_px_mode_1_s cnf75xx;
2004};
2005
2006typedef union cvmx_gserx_pll_px_mode_1 cvmx_gserx_pll_px_mode_1_t;
2007
2008/**
2009 * cvmx_gser#_pll_stat
2010 */
2011union cvmx_gserx_pll_stat {
2012 u64 u64;
2013 struct cvmx_gserx_pll_stat_s {
2014 u64 reserved_1_63 : 63;
2015 u64 pll_lock : 1;
2016 } s;
2017 struct cvmx_gserx_pll_stat_s cn73xx;
2018 struct cvmx_gserx_pll_stat_s cn78xx;
2019 struct cvmx_gserx_pll_stat_s cn78xxp1;
2020 struct cvmx_gserx_pll_stat_s cnf75xx;
2021};
2022
2023typedef union cvmx_gserx_pll_stat cvmx_gserx_pll_stat_t;
2024
2025/**
2026 * cvmx_gser#_qlm_stat
2027 */
2028union cvmx_gserx_qlm_stat {
2029 u64 u64;
2030 struct cvmx_gserx_qlm_stat_s {
2031 u64 reserved_2_63 : 62;
2032 u64 rst_rdy : 1;
2033 u64 dcok : 1;
2034 } s;
2035 struct cvmx_gserx_qlm_stat_s cn73xx;
2036 struct cvmx_gserx_qlm_stat_s cn78xx;
2037 struct cvmx_gserx_qlm_stat_s cn78xxp1;
2038 struct cvmx_gserx_qlm_stat_s cnf75xx;
2039};
2040
2041typedef union cvmx_gserx_qlm_stat cvmx_gserx_qlm_stat_t;
2042
2043/**
2044 * cvmx_gser#_slice_cfg
2045 *
2046 * These registers are for diagnostic use only.
2047 * These registers are reset by hardware only during chip cold reset.
2048 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
2049 */
2050union cvmx_gserx_slice_cfg {
2051 u64 u64;
2052 struct cvmx_gserx_slice_cfg_s {
2053 u64 reserved_12_63 : 52;
2054 u64 tx_rx_detect_lvl_enc : 4;
2055 u64 reserved_6_7 : 2;
2056 u64 pcs_sds_rx_pcie_pterm : 2;
2057 u64 pcs_sds_rx_pcie_nterm : 2;
2058 u64 pcs_sds_tx_stress_eye : 2;
2059 } s;
2060 struct cvmx_gserx_slice_cfg_cn73xx {
2061 u64 reserved_12_63 : 52;
2062 u64 tx_rx_detect_lvl_enc : 4;
2063 u64 reserved_7_6 : 2;
2064 u64 pcs_sds_rx_pcie_pterm : 2;
2065 u64 pcs_sds_rx_pcie_nterm : 2;
2066 u64 pcs_sds_tx_stress_eye : 2;
2067 } cn73xx;
2068 struct cvmx_gserx_slice_cfg_cn73xx cn78xx;
2069 struct cvmx_gserx_slice_cfg_s cn78xxp1;
2070 struct cvmx_gserx_slice_cfg_cn73xx cnf75xx;
2071};
2072
2073typedef union cvmx_gserx_slice_cfg cvmx_gserx_slice_cfg_t;
2074
2075/**
2076 * cvmx_gser#_slice#_pcie1_mode
2077 *
2078 * These registers are for diagnostic use only.
2079 * These registers are reset by hardware only during chip cold reset.
2080 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
2081 *
2082 * Slice 1 does not exist on GSER0, GSER1, GSER4, GSER5, GSER6, GSER7, and GSER8.
2083 */
2084union cvmx_gserx_slicex_pcie1_mode {
2085 u64 u64;
2086 struct cvmx_gserx_slicex_pcie1_mode_s {
2087 u64 reserved_15_63 : 49;
2088 u64 slice_spare_1_0 : 2;
2089 u64 rx_ldll_isel : 2;
2090 u64 rx_sdll_isel : 2;
2091 u64 rx_pi_bwsel : 3;
2092 u64 rx_ldll_bwsel : 3;
2093 u64 rx_sdll_bwsel : 3;
2094 } s;
2095 struct cvmx_gserx_slicex_pcie1_mode_s cn73xx;
2096 struct cvmx_gserx_slicex_pcie1_mode_s cn78xx;
2097 struct cvmx_gserx_slicex_pcie1_mode_s cn78xxp1;
2098 struct cvmx_gserx_slicex_pcie1_mode_s cnf75xx;
2099};
2100
2101typedef union cvmx_gserx_slicex_pcie1_mode cvmx_gserx_slicex_pcie1_mode_t;
2102
2103/**
2104 * cvmx_gser#_slice#_pcie2_mode
2105 *
2106 * These registers are for diagnostic use only.
2107 * These registers are reset by hardware only during chip cold reset.
2108 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
2109 *
2110 * Slice 1 does not exist on GSER0, GSER1, GSER4, GSER5, GSER6, GSER7, and GSER8.
2111 */
2112union cvmx_gserx_slicex_pcie2_mode {
2113 u64 u64;
2114 struct cvmx_gserx_slicex_pcie2_mode_s {
2115 u64 reserved_15_63 : 49;
2116 u64 slice_spare_1_0 : 2;
2117 u64 rx_ldll_isel : 2;
2118 u64 rx_sdll_isel : 2;
2119 u64 rx_pi_bwsel : 3;
2120 u64 rx_ldll_bwsel : 3;
2121 u64 rx_sdll_bwsel : 3;
2122 } s;
2123 struct cvmx_gserx_slicex_pcie2_mode_s cn73xx;
2124 struct cvmx_gserx_slicex_pcie2_mode_s cn78xx;
2125 struct cvmx_gserx_slicex_pcie2_mode_s cn78xxp1;
2126 struct cvmx_gserx_slicex_pcie2_mode_s cnf75xx;
2127};
2128
2129typedef union cvmx_gserx_slicex_pcie2_mode cvmx_gserx_slicex_pcie2_mode_t;
2130
2131/**
2132 * cvmx_gser#_slice#_pcie3_mode
2133 *
2134 * These registers are for diagnostic use only.
2135 * These registers are reset by hardware only during chip cold reset.
2136 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
2137 *
2138 * Slice 1 does not exist on GSER0, GSER1, GSER4, GSER5, GSER6, GSER7, and GSER8.
2139 */
2140union cvmx_gserx_slicex_pcie3_mode {
2141 u64 u64;
2142 struct cvmx_gserx_slicex_pcie3_mode_s {
2143 u64 reserved_15_63 : 49;
2144 u64 slice_spare_1_0 : 2;
2145 u64 rx_ldll_isel : 2;
2146 u64 rx_sdll_isel : 2;
2147 u64 rx_pi_bwsel : 3;
2148 u64 rx_ldll_bwsel : 3;
2149 u64 rx_sdll_bwsel : 3;
2150 } s;
2151 struct cvmx_gserx_slicex_pcie3_mode_s cn73xx;
2152 struct cvmx_gserx_slicex_pcie3_mode_s cn78xx;
2153 struct cvmx_gserx_slicex_pcie3_mode_s cn78xxp1;
2154 struct cvmx_gserx_slicex_pcie3_mode_s cnf75xx;
2155};
2156
2157typedef union cvmx_gserx_slicex_pcie3_mode cvmx_gserx_slicex_pcie3_mode_t;
2158
2159/**
2160 * cvmx_gser#_slice#_rx_sdll_ctrl
2161 *
2162 * These registers are for diagnostic use only.
2163 * These registers are reset by hardware only during chip cold reset.
2164 * The values of the CSR fields in these registers do not change during chip warm or soft resets.
2165 *
2166 * Slice 1 does not exist on GSER0, GSER1, GSER4, GSER5, GSER6, GSER7, and GSER8.
2167 */
2168union cvmx_gserx_slicex_rx_sdll_ctrl {
2169 u64 u64;
2170 struct cvmx_gserx_slicex_rx_sdll_ctrl_s {
2171 u64 reserved_16_63 : 48;
2172 u64 pcs_sds_oob_clk_ctrl : 2;
2173 u64 reserved_7_13 : 7;
2174 u64 pcs_sds_rx_sdll_tune : 3;
2175 u64 pcs_sds_rx_sdll_swsel : 4;
2176 } s;
2177 struct cvmx_gserx_slicex_rx_sdll_ctrl_cn73xx {
2178 u64 reserved_16_63 : 48;
2179 u64 pcs_sds_oob_clk_ctrl : 2;
2180 u64 reserved_13_7 : 7;
2181 u64 pcs_sds_rx_sdll_tune : 3;
2182 u64 pcs_sds_rx_sdll_swsel : 4;
2183 } cn73xx;
2184 struct cvmx_gserx_slicex_rx_sdll_ctrl_cn73xx cn78xx;
2185 struct cvmx_gserx_slicex_rx_sdll_ctrl_s cn78xxp1;
2186 struct cvmx_gserx_slicex_rx_sdll_ctrl_cn73xx cnf75xx;
2187};
2188
2189typedef union cvmx_gserx_slicex_rx_sdll_ctrl cvmx_gserx_slicex_rx_sdll_ctrl_t;
2190
2191#endif