1af866496SDavid Daney /***********************license start***************
2af866496SDavid Daney  * Author: Cavium Networks
3af866496SDavid Daney  *
4af866496SDavid Daney  * Contact: support@caviumnetworks.com
5af866496SDavid Daney  * This file is part of the OCTEON SDK
6af866496SDavid Daney  *
7af866496SDavid Daney  * Copyright (c) 2003-2008 Cavium Networks
8af866496SDavid Daney  *
9af866496SDavid Daney  * This file is free software; you can redistribute it and/or modify
10af866496SDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
11af866496SDavid Daney  * published by the Free Software Foundation.
12af866496SDavid Daney  *
13af866496SDavid Daney  * This file is distributed in the hope that it will be useful, but
14af866496SDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15af866496SDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16af866496SDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
17af866496SDavid Daney  * details.
18af866496SDavid Daney  *
19af866496SDavid Daney  * You should have received a copy of the GNU General Public License
20af866496SDavid Daney  * along with this file; if not, write to the Free Software
21af866496SDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22af866496SDavid Daney  * or visit http://www.gnu.org/licenses/.
23af866496SDavid Daney  *
24af866496SDavid Daney  * This file may also be available under a different license from Cavium.
25af866496SDavid Daney  * Contact Cavium Networks for more information
26af866496SDavid Daney  ***********************license end**************************************/
27af866496SDavid Daney 
28af866496SDavid Daney #ifndef __CVMX_PCSX_DEFS_H__
29af866496SDavid Daney #define __CVMX_PCSX_DEFS_H__
30af866496SDavid Daney 
31af866496SDavid Daney #define CVMX_PCSX_ANX_ADV_REG(offset, block_id) \
32af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001010ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
33af866496SDavid Daney #define CVMX_PCSX_ANX_EXT_ST_REG(offset, block_id) \
34af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001028ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
35af866496SDavid Daney #define CVMX_PCSX_ANX_LP_ABIL_REG(offset, block_id) \
36af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001018ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
37af866496SDavid Daney #define CVMX_PCSX_ANX_RESULTS_REG(offset, block_id) \
38af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001020ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
39af866496SDavid Daney #define CVMX_PCSX_INTX_EN_REG(offset, block_id) \
40af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001088ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
41af866496SDavid Daney #define CVMX_PCSX_INTX_REG(offset, block_id) \
42af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001080ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
43af866496SDavid Daney #define CVMX_PCSX_LINKX_TIMER_COUNT_REG(offset, block_id) \
44af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001040ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
45af866496SDavid Daney #define CVMX_PCSX_LOG_ANLX_REG(offset, block_id) \
46af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001090ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
47af866496SDavid Daney #define CVMX_PCSX_MISCX_CTL_REG(offset, block_id) \
48af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001078ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
49af866496SDavid Daney #define CVMX_PCSX_MRX_CONTROL_REG(offset, block_id) \
50af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001000ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
51af866496SDavid Daney #define CVMX_PCSX_MRX_STATUS_REG(offset, block_id) \
52af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001008ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
53af866496SDavid Daney #define CVMX_PCSX_RXX_STATES_REG(offset, block_id) \
54af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001058ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
55af866496SDavid Daney #define CVMX_PCSX_RXX_SYNC_REG(offset, block_id) \
56af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001050ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
57af866496SDavid Daney #define CVMX_PCSX_SGMX_AN_ADV_REG(offset, block_id) \
58af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001068ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
59af866496SDavid Daney #define CVMX_PCSX_SGMX_LP_ADV_REG(offset, block_id) \
60af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001070ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
61af866496SDavid Daney #define CVMX_PCSX_TXX_STATES_REG(offset, block_id) \
62af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001060ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
63af866496SDavid Daney #define CVMX_PCSX_TX_RXX_POLARITY_REG(offset, block_id) \
64af866496SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800B0001048ull + (((offset) & 3) * 1024) + (((block_id) & 1) * 0x8000000ull))
65af866496SDavid Daney 
66af866496SDavid Daney union cvmx_pcsx_anx_adv_reg {
67af866496SDavid Daney 	uint64_t u64;
68af866496SDavid Daney 	struct cvmx_pcsx_anx_adv_reg_s {
69af866496SDavid Daney 		uint64_t reserved_16_63:48;
70af866496SDavid Daney 		uint64_t np:1;
71af866496SDavid Daney 		uint64_t reserved_14_14:1;
72af866496SDavid Daney 		uint64_t rem_flt:2;
73af866496SDavid Daney 		uint64_t reserved_9_11:3;
74af866496SDavid Daney 		uint64_t pause:2;
75af866496SDavid Daney 		uint64_t hfd:1;
76af866496SDavid Daney 		uint64_t fd:1;
77af866496SDavid Daney 		uint64_t reserved_0_4:5;
78af866496SDavid Daney 	} s;
79af866496SDavid Daney 	struct cvmx_pcsx_anx_adv_reg_s cn52xx;
80af866496SDavid Daney 	struct cvmx_pcsx_anx_adv_reg_s cn52xxp1;
81af866496SDavid Daney 	struct cvmx_pcsx_anx_adv_reg_s cn56xx;
82af866496SDavid Daney 	struct cvmx_pcsx_anx_adv_reg_s cn56xxp1;
83af866496SDavid Daney };
84af866496SDavid Daney 
85af866496SDavid Daney union cvmx_pcsx_anx_ext_st_reg {
86af866496SDavid Daney 	uint64_t u64;
87af866496SDavid Daney 	struct cvmx_pcsx_anx_ext_st_reg_s {
88af866496SDavid Daney 		uint64_t reserved_16_63:48;
89af866496SDavid Daney 		uint64_t thou_xfd:1;
90af866496SDavid Daney 		uint64_t thou_xhd:1;
91af866496SDavid Daney 		uint64_t thou_tfd:1;
92af866496SDavid Daney 		uint64_t thou_thd:1;
93af866496SDavid Daney 		uint64_t reserved_0_11:12;
94af866496SDavid Daney 	} s;
95af866496SDavid Daney 	struct cvmx_pcsx_anx_ext_st_reg_s cn52xx;
96af866496SDavid Daney 	struct cvmx_pcsx_anx_ext_st_reg_s cn52xxp1;
97af866496SDavid Daney 	struct cvmx_pcsx_anx_ext_st_reg_s cn56xx;
98af866496SDavid Daney 	struct cvmx_pcsx_anx_ext_st_reg_s cn56xxp1;
99af866496SDavid Daney };
100af866496SDavid Daney 
101af866496SDavid Daney union cvmx_pcsx_anx_lp_abil_reg {
102af866496SDavid Daney 	uint64_t u64;
103af866496SDavid Daney 	struct cvmx_pcsx_anx_lp_abil_reg_s {
104af866496SDavid Daney 		uint64_t reserved_16_63:48;
105af866496SDavid Daney 		uint64_t np:1;
106af866496SDavid Daney 		uint64_t ack:1;
107af866496SDavid Daney 		uint64_t rem_flt:2;
108af866496SDavid Daney 		uint64_t reserved_9_11:3;
109af866496SDavid Daney 		uint64_t pause:2;
110af866496SDavid Daney 		uint64_t hfd:1;
111af866496SDavid Daney 		uint64_t fd:1;
112af866496SDavid Daney 		uint64_t reserved_0_4:5;
113af866496SDavid Daney 	} s;
114af866496SDavid Daney 	struct cvmx_pcsx_anx_lp_abil_reg_s cn52xx;
115af866496SDavid Daney 	struct cvmx_pcsx_anx_lp_abil_reg_s cn52xxp1;
116af866496SDavid Daney 	struct cvmx_pcsx_anx_lp_abil_reg_s cn56xx;
117af866496SDavid Daney 	struct cvmx_pcsx_anx_lp_abil_reg_s cn56xxp1;
118af866496SDavid Daney };
119af866496SDavid Daney 
120af866496SDavid Daney union cvmx_pcsx_anx_results_reg {
121af866496SDavid Daney 	uint64_t u64;
122af866496SDavid Daney 	struct cvmx_pcsx_anx_results_reg_s {
123af866496SDavid Daney 		uint64_t reserved_7_63:57;
124af866496SDavid Daney 		uint64_t pause:2;
125af866496SDavid Daney 		uint64_t spd:2;
126af866496SDavid Daney 		uint64_t an_cpt:1;
127af866496SDavid Daney 		uint64_t dup:1;
128af866496SDavid Daney 		uint64_t link_ok:1;
129af866496SDavid Daney 	} s;
130af866496SDavid Daney 	struct cvmx_pcsx_anx_results_reg_s cn52xx;
131af866496SDavid Daney 	struct cvmx_pcsx_anx_results_reg_s cn52xxp1;
132af866496SDavid Daney 	struct cvmx_pcsx_anx_results_reg_s cn56xx;
133af866496SDavid Daney 	struct cvmx_pcsx_anx_results_reg_s cn56xxp1;
134af866496SDavid Daney };
135af866496SDavid Daney 
136af866496SDavid Daney union cvmx_pcsx_intx_en_reg {
137af866496SDavid Daney 	uint64_t u64;
138af866496SDavid Daney 	struct cvmx_pcsx_intx_en_reg_s {
139af866496SDavid Daney 		uint64_t reserved_12_63:52;
140af866496SDavid Daney 		uint64_t dup:1;
141af866496SDavid Daney 		uint64_t sync_bad_en:1;
142af866496SDavid Daney 		uint64_t an_bad_en:1;
143af866496SDavid Daney 		uint64_t rxlock_en:1;
144af866496SDavid Daney 		uint64_t rxbad_en:1;
145af866496SDavid Daney 		uint64_t rxerr_en:1;
146af866496SDavid Daney 		uint64_t txbad_en:1;
147af866496SDavid Daney 		uint64_t txfifo_en:1;
148af866496SDavid Daney 		uint64_t txfifu_en:1;
149af866496SDavid Daney 		uint64_t an_err_en:1;
150af866496SDavid Daney 		uint64_t xmit_en:1;
151af866496SDavid Daney 		uint64_t lnkspd_en:1;
152af866496SDavid Daney 	} s;
153af866496SDavid Daney 	struct cvmx_pcsx_intx_en_reg_s cn52xx;
154af866496SDavid Daney 	struct cvmx_pcsx_intx_en_reg_s cn52xxp1;
155af866496SDavid Daney 	struct cvmx_pcsx_intx_en_reg_s cn56xx;
156af866496SDavid Daney 	struct cvmx_pcsx_intx_en_reg_s cn56xxp1;
157af866496SDavid Daney };
158af866496SDavid Daney 
159af866496SDavid Daney union cvmx_pcsx_intx_reg {
160af866496SDavid Daney 	uint64_t u64;
161af866496SDavid Daney 	struct cvmx_pcsx_intx_reg_s {
162af866496SDavid Daney 		uint64_t reserved_12_63:52;
163af866496SDavid Daney 		uint64_t dup:1;
164af866496SDavid Daney 		uint64_t sync_bad:1;
165af866496SDavid Daney 		uint64_t an_bad:1;
166af866496SDavid Daney 		uint64_t rxlock:1;
167af866496SDavid Daney 		uint64_t rxbad:1;
168af866496SDavid Daney 		uint64_t rxerr:1;
169af866496SDavid Daney 		uint64_t txbad:1;
170af866496SDavid Daney 		uint64_t txfifo:1;
171af866496SDavid Daney 		uint64_t txfifu:1;
172af866496SDavid Daney 		uint64_t an_err:1;
173af866496SDavid Daney 		uint64_t xmit:1;
174af866496SDavid Daney 		uint64_t lnkspd:1;
175af866496SDavid Daney 	} s;
176af866496SDavid Daney 	struct cvmx_pcsx_intx_reg_s cn52xx;
177af866496SDavid Daney 	struct cvmx_pcsx_intx_reg_s cn52xxp1;
178af866496SDavid Daney 	struct cvmx_pcsx_intx_reg_s cn56xx;
179af866496SDavid Daney 	struct cvmx_pcsx_intx_reg_s cn56xxp1;
180af866496SDavid Daney };
181af866496SDavid Daney 
182af866496SDavid Daney union cvmx_pcsx_linkx_timer_count_reg {
183af866496SDavid Daney 	uint64_t u64;
184af866496SDavid Daney 	struct cvmx_pcsx_linkx_timer_count_reg_s {
185af866496SDavid Daney 		uint64_t reserved_16_63:48;
186af866496SDavid Daney 		uint64_t count:16;
187af866496SDavid Daney 	} s;
188af866496SDavid Daney 	struct cvmx_pcsx_linkx_timer_count_reg_s cn52xx;
189af866496SDavid Daney 	struct cvmx_pcsx_linkx_timer_count_reg_s cn52xxp1;
190af866496SDavid Daney 	struct cvmx_pcsx_linkx_timer_count_reg_s cn56xx;
191af866496SDavid Daney 	struct cvmx_pcsx_linkx_timer_count_reg_s cn56xxp1;
192af866496SDavid Daney };
193af866496SDavid Daney 
194af866496SDavid Daney union cvmx_pcsx_log_anlx_reg {
195af866496SDavid Daney 	uint64_t u64;
196af866496SDavid Daney 	struct cvmx_pcsx_log_anlx_reg_s {
197af866496SDavid Daney 		uint64_t reserved_4_63:60;
198af866496SDavid Daney 		uint64_t lafifovfl:1;
199af866496SDavid Daney 		uint64_t la_en:1;
200af866496SDavid Daney 		uint64_t pkt_sz:2;
201af866496SDavid Daney 	} s;
202af866496SDavid Daney 	struct cvmx_pcsx_log_anlx_reg_s cn52xx;
203af866496SDavid Daney 	struct cvmx_pcsx_log_anlx_reg_s cn52xxp1;
204af866496SDavid Daney 	struct cvmx_pcsx_log_anlx_reg_s cn56xx;
205af866496SDavid Daney 	struct cvmx_pcsx_log_anlx_reg_s cn56xxp1;
206af866496SDavid Daney };
207af866496SDavid Daney 
208af866496SDavid Daney union cvmx_pcsx_miscx_ctl_reg {
209af866496SDavid Daney 	uint64_t u64;
210af866496SDavid Daney 	struct cvmx_pcsx_miscx_ctl_reg_s {
211af866496SDavid Daney 		uint64_t reserved_13_63:51;
212af866496SDavid Daney 		uint64_t sgmii:1;
213af866496SDavid Daney 		uint64_t gmxeno:1;
214af866496SDavid Daney 		uint64_t loopbck2:1;
215af866496SDavid Daney 		uint64_t mac_phy:1;
216af866496SDavid Daney 		uint64_t mode:1;
217af866496SDavid Daney 		uint64_t an_ovrd:1;
218af866496SDavid Daney 		uint64_t samp_pt:7;
219af866496SDavid Daney 	} s;
220af866496SDavid Daney 	struct cvmx_pcsx_miscx_ctl_reg_s cn52xx;
221af866496SDavid Daney 	struct cvmx_pcsx_miscx_ctl_reg_s cn52xxp1;
222af866496SDavid Daney 	struct cvmx_pcsx_miscx_ctl_reg_s cn56xx;
223af866496SDavid Daney 	struct cvmx_pcsx_miscx_ctl_reg_s cn56xxp1;
224af866496SDavid Daney };
225af866496SDavid Daney 
226af866496SDavid Daney union cvmx_pcsx_mrx_control_reg {
227af866496SDavid Daney 	uint64_t u64;
228af866496SDavid Daney 	struct cvmx_pcsx_mrx_control_reg_s {
229af866496SDavid Daney 		uint64_t reserved_16_63:48;
230af866496SDavid Daney 		uint64_t reset:1;
231af866496SDavid Daney 		uint64_t loopbck1:1;
232af866496SDavid Daney 		uint64_t spdlsb:1;
233af866496SDavid Daney 		uint64_t an_en:1;
234af866496SDavid Daney 		uint64_t pwr_dn:1;
235af866496SDavid Daney 		uint64_t reserved_10_10:1;
236af866496SDavid Daney 		uint64_t rst_an:1;
237af866496SDavid Daney 		uint64_t dup:1;
238af866496SDavid Daney 		uint64_t coltst:1;
239af866496SDavid Daney 		uint64_t spdmsb:1;
240af866496SDavid Daney 		uint64_t uni:1;
241af866496SDavid Daney 		uint64_t reserved_0_4:5;
242af866496SDavid Daney 	} s;
243af866496SDavid Daney 	struct cvmx_pcsx_mrx_control_reg_s cn52xx;
244af866496SDavid Daney 	struct cvmx_pcsx_mrx_control_reg_s cn52xxp1;
245af866496SDavid Daney 	struct cvmx_pcsx_mrx_control_reg_s cn56xx;
246af866496SDavid Daney 	struct cvmx_pcsx_mrx_control_reg_s cn56xxp1;
247af866496SDavid Daney };
248af866496SDavid Daney 
249af866496SDavid Daney union cvmx_pcsx_mrx_status_reg {
250af866496SDavid Daney 	uint64_t u64;
251af866496SDavid Daney 	struct cvmx_pcsx_mrx_status_reg_s {
252af866496SDavid Daney 		uint64_t reserved_16_63:48;
253af866496SDavid Daney 		uint64_t hun_t4:1;
254af866496SDavid Daney 		uint64_t hun_xfd:1;
255af866496SDavid Daney 		uint64_t hun_xhd:1;
256af866496SDavid Daney 		uint64_t ten_fd:1;
257af866496SDavid Daney 		uint64_t ten_hd:1;
258af866496SDavid Daney 		uint64_t hun_t2fd:1;
259af866496SDavid Daney 		uint64_t hun_t2hd:1;
260af866496SDavid Daney 		uint64_t ext_st:1;
261af866496SDavid Daney 		uint64_t reserved_7_7:1;
262af866496SDavid Daney 		uint64_t prb_sup:1;
263af866496SDavid Daney 		uint64_t an_cpt:1;
264af866496SDavid Daney 		uint64_t rm_flt:1;
265af866496SDavid Daney 		uint64_t an_abil:1;
266af866496SDavid Daney 		uint64_t lnk_st:1;
267af866496SDavid Daney 		uint64_t reserved_1_1:1;
268af866496SDavid Daney 		uint64_t extnd:1;
269af866496SDavid Daney 	} s;
270af866496SDavid Daney 	struct cvmx_pcsx_mrx_status_reg_s cn52xx;
271af866496SDavid Daney 	struct cvmx_pcsx_mrx_status_reg_s cn52xxp1;
272af866496SDavid Daney 	struct cvmx_pcsx_mrx_status_reg_s cn56xx;
273af866496SDavid Daney 	struct cvmx_pcsx_mrx_status_reg_s cn56xxp1;
274af866496SDavid Daney };
275af866496SDavid Daney 
276af866496SDavid Daney union cvmx_pcsx_rxx_states_reg {
277af866496SDavid Daney 	uint64_t u64;
278af866496SDavid Daney 	struct cvmx_pcsx_rxx_states_reg_s {
279af866496SDavid Daney 		uint64_t reserved_16_63:48;
280af866496SDavid Daney 		uint64_t rx_bad:1;
281af866496SDavid Daney 		uint64_t rx_st:5;
282af866496SDavid Daney 		uint64_t sync_bad:1;
283af866496SDavid Daney 		uint64_t sync:4;
284af866496SDavid Daney 		uint64_t an_bad:1;
285af866496SDavid Daney 		uint64_t an_st:4;
286af866496SDavid Daney 	} s;
287af866496SDavid Daney 	struct cvmx_pcsx_rxx_states_reg_s cn52xx;
288af866496SDavid Daney 	struct cvmx_pcsx_rxx_states_reg_s cn52xxp1;
289af866496SDavid Daney 	struct cvmx_pcsx_rxx_states_reg_s cn56xx;
290af866496SDavid Daney 	struct cvmx_pcsx_rxx_states_reg_s cn56xxp1;
291af866496SDavid Daney };
292af866496SDavid Daney 
293af866496SDavid Daney union cvmx_pcsx_rxx_sync_reg {
294af866496SDavid Daney 	uint64_t u64;
295af866496SDavid Daney 	struct cvmx_pcsx_rxx_sync_reg_s {
296af866496SDavid Daney 		uint64_t reserved_2_63:62;
297af866496SDavid Daney 		uint64_t sync:1;
298af866496SDavid Daney 		uint64_t bit_lock:1;
299af866496SDavid Daney 	} s;
300af866496SDavid Daney 	struct cvmx_pcsx_rxx_sync_reg_s cn52xx;
301af866496SDavid Daney 	struct cvmx_pcsx_rxx_sync_reg_s cn52xxp1;
302af866496SDavid Daney 	struct cvmx_pcsx_rxx_sync_reg_s cn56xx;
303af866496SDavid Daney 	struct cvmx_pcsx_rxx_sync_reg_s cn56xxp1;
304af866496SDavid Daney };
305af866496SDavid Daney 
306af866496SDavid Daney union cvmx_pcsx_sgmx_an_adv_reg {
307af866496SDavid Daney 	uint64_t u64;
308af866496SDavid Daney 	struct cvmx_pcsx_sgmx_an_adv_reg_s {
309af866496SDavid Daney 		uint64_t reserved_16_63:48;
310af866496SDavid Daney 		uint64_t link:1;
311af866496SDavid Daney 		uint64_t ack:1;
312af866496SDavid Daney 		uint64_t reserved_13_13:1;
313af866496SDavid Daney 		uint64_t dup:1;
314af866496SDavid Daney 		uint64_t speed:2;
315af866496SDavid Daney 		uint64_t reserved_1_9:9;
316af866496SDavid Daney 		uint64_t one:1;
317af866496SDavid Daney 	} s;
318af866496SDavid Daney 	struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xx;
319af866496SDavid Daney 	struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xxp1;
320af866496SDavid Daney 	struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xx;
321af866496SDavid Daney 	struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xxp1;
322af866496SDavid Daney };
323af866496SDavid Daney 
324af866496SDavid Daney union cvmx_pcsx_sgmx_lp_adv_reg {
325af866496SDavid Daney 	uint64_t u64;
326af866496SDavid Daney 	struct cvmx_pcsx_sgmx_lp_adv_reg_s {
327af866496SDavid Daney 		uint64_t reserved_16_63:48;
328af866496SDavid Daney 		uint64_t link:1;
329af866496SDavid Daney 		uint64_t reserved_13_14:2;
330af866496SDavid Daney 		uint64_t dup:1;
331af866496SDavid Daney 		uint64_t speed:2;
332af866496SDavid Daney 		uint64_t reserved_1_9:9;
333af866496SDavid Daney 		uint64_t one:1;
334af866496SDavid Daney 	} s;
335af866496SDavid Daney 	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xx;
336af866496SDavid Daney 	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xxp1;
337af866496SDavid Daney 	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xx;
338af866496SDavid Daney 	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xxp1;
339af866496SDavid Daney };
340af866496SDavid Daney 
341af866496SDavid Daney union cvmx_pcsx_txx_states_reg {
342af866496SDavid Daney 	uint64_t u64;
343af866496SDavid Daney 	struct cvmx_pcsx_txx_states_reg_s {
344af866496SDavid Daney 		uint64_t reserved_7_63:57;
345af866496SDavid Daney 		uint64_t xmit:2;
346af866496SDavid Daney 		uint64_t tx_bad:1;
347af866496SDavid Daney 		uint64_t ord_st:4;
348af866496SDavid Daney 	} s;
349af866496SDavid Daney 	struct cvmx_pcsx_txx_states_reg_s cn52xx;
350af866496SDavid Daney 	struct cvmx_pcsx_txx_states_reg_s cn52xxp1;
351af866496SDavid Daney 	struct cvmx_pcsx_txx_states_reg_s cn56xx;
352af866496SDavid Daney 	struct cvmx_pcsx_txx_states_reg_s cn56xxp1;
353af866496SDavid Daney };
354af866496SDavid Daney 
355af866496SDavid Daney union cvmx_pcsx_tx_rxx_polarity_reg {
356af866496SDavid Daney 	uint64_t u64;
357af866496SDavid Daney 	struct cvmx_pcsx_tx_rxx_polarity_reg_s {
358af866496SDavid Daney 		uint64_t reserved_4_63:60;
359af866496SDavid Daney 		uint64_t rxovrd:1;
360af866496SDavid Daney 		uint64_t autorxpl:1;
361af866496SDavid Daney 		uint64_t rxplrt:1;
362af866496SDavid Daney 		uint64_t txplrt:1;
363af866496SDavid Daney 	} s;
364af866496SDavid Daney 	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xx;
365af866496SDavid Daney 	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xxp1;
366af866496SDavid Daney 	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xx;
367af866496SDavid Daney 	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xxp1;
368af866496SDavid Daney };
369af866496SDavid Daney 
370af866496SDavid Daney #endif
371