octeon_gmxreg.h revision 1.7 1 1.7 andvar /* $NetBSD: octeon_gmxreg.h,v 1.7 2022/05/23 21:46:12 andvar Exp $ */
2 1.1 hikaru
3 1.1 hikaru /*
4 1.1 hikaru * Copyright (c) 2007 Internet Initiative Japan, Inc.
5 1.1 hikaru * All rights reserved.
6 1.1 hikaru *
7 1.1 hikaru * Redistribution and use in source and binary forms, with or without
8 1.1 hikaru * modification, are permitted provided that the following conditions
9 1.1 hikaru * are met:
10 1.1 hikaru * 1. Redistributions of source code must retain the above copyright
11 1.1 hikaru * notice, this list of conditions and the following disclaimer.
12 1.1 hikaru * 2. Redistributions in binary form must reproduce the above copyright
13 1.1 hikaru * notice, this list of conditions and the following disclaimer in the
14 1.1 hikaru * documentation and/or other materials provided with the distribution.
15 1.1 hikaru *
16 1.1 hikaru * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 1.1 hikaru * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 1.1 hikaru * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 1.1 hikaru * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 1.1 hikaru * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 1.1 hikaru * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 1.1 hikaru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 1.1 hikaru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 1.1 hikaru * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 1.1 hikaru * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 1.1 hikaru * SUCH DAMAGE.
27 1.1 hikaru */
28 1.1 hikaru
29 1.1 hikaru /*
30 1.1 hikaru * GMX Registers
31 1.1 hikaru */
32 1.1 hikaru
33 1.1 hikaru #ifndef _OCTEON_GMXREG_H_
34 1.1 hikaru #define _OCTEON_GMXREG_H_
35 1.1 hikaru
36 1.1 hikaru #define GMX0_RX0_INT_REG 0x000
37 1.1 hikaru #define GMX0_RX0_INT_EN 0x008
38 1.1 hikaru #define GMX0_PRT0_CFG 0x010
39 1.1 hikaru #define GMX0_RX0_FRM_CTL 0x018
40 1.1 hikaru #define GMX0_RX0_FRM_CHK 0x020
41 1.1 hikaru #define GMX0_RX0_FRM_MIN 0x028
42 1.1 hikaru #define GMX0_RX0_FRM_MAX 0x030
43 1.1 hikaru #define GMX0_RX0_JABBER 0x038
44 1.1 hikaru #define GMX0_RX0_DECISION 0x040
45 1.1 hikaru #define GMX0_RX0_UDD_SKP 0x048
46 1.1 hikaru #define GMX0_RX0_STATS_CTL 0x050
47 1.1 hikaru #define GMX0_RX0_IFG 0x058
48 1.1 hikaru #define GMX0_RX0_RX_INBND 0x060
49 1.1 hikaru #define GMX0_RX0_STATS_PKTS 0x080
50 1.1 hikaru #define GMX0_RX0_STATS_OCTS 0x088
51 1.1 hikaru #define GMX0_RX0_STATS_PKTS_CTL 0x090
52 1.1 hikaru #define GMX0_RX0_STATS_OCTS_CTL 0x098
53 1.1 hikaru #define GMX0_RX0_STATS_PKTS_DMAC 0x0a0
54 1.1 hikaru #define GMX0_RX0_STATS_OCTS_DMAC 0x0a8
55 1.1 hikaru #define GMX0_RX0_STATS_PKTS_DRP 0x0b0
56 1.1 hikaru #define GMX0_RX0_STATS_OCTS_DRP 0x0b8
57 1.1 hikaru #define GMX0_RX0_STATS_PKTS_BAD 0x0c0
58 1.1 hikaru #define GMX0_RX0_ADR_CTL 0x100
59 1.1 hikaru #define GMX0_RX0_ADR_CAM_EN 0x108
60 1.1 hikaru #define GMX0_RX0_ADR_CAM0 0x180
61 1.1 hikaru #define GMX0_RX0_ADR_CAM1 0x188
62 1.1 hikaru #define GMX0_RX0_ADR_CAM2 0x190
63 1.1 hikaru #define GMX0_RX0_ADR_CAM3 0x198
64 1.1 hikaru #define GMX0_RX0_ADR_CAM4 0x1a0
65 1.1 hikaru #define GMX0_RX0_ADR_CAM5 0x1a8
66 1.1 hikaru #define GMX0_TX0_CLK 0x208
67 1.1 hikaru #define GMX0_TX0_THRESH 0x210
68 1.1 hikaru #define GMX0_TX0_APPEND 0x218
69 1.1 hikaru #define GMX0_TX0_SLOT 0x220
70 1.1 hikaru #define GMX0_TX0_BURST 0x228
71 1.1 hikaru #define GMX0_SMAC0 0x230
72 1.1 hikaru #define GMX0_TX0_PAUSE_PKT_TIME 0x238
73 1.1 hikaru #define GMX0_TX0_MIN_PKT 0x240
74 1.1 hikaru #define GMX0_TX0_PAUSE_PKT_INTERVAL 0x248
75 1.1 hikaru #define GMX0_TX0_SOFT_PAUSE 0x250
76 1.1 hikaru #define GMX0_TX0_PAUSE_TOGO 0x258
77 1.1 hikaru #define GMX0_TX0_PAUSE_ZERO 0x260
78 1.1 hikaru #define GMX0_TX0_STATS_CTL 0x268
79 1.1 hikaru #define GMX0_TX0_CTL 0x270
80 1.1 hikaru #define GMX0_TX0_STAT0 0x280
81 1.1 hikaru #define GMX0_TX0_STAT1 0x288
82 1.1 hikaru #define GMX0_TX0_STAT2 0x290
83 1.1 hikaru #define GMX0_TX0_STAT3 0x298
84 1.1 hikaru #define GMX0_TX0_STAT4 0x2a0
85 1.1 hikaru #define GMX0_TX0_STAT5 0x2a8
86 1.1 hikaru #define GMX0_TX0_STAT6 0x2b0
87 1.1 hikaru #define GMX0_TX0_STAT7 0x2b8
88 1.1 hikaru #define GMX0_TX0_STAT8 0x2c0
89 1.1 hikaru #define GMX0_TX0_STAT9 0x2c8
90 1.1 hikaru #define GMX0_BIST0 0x400
91 1.1 hikaru #define GMX0_RX_PRTS 0x410
92 1.1 hikaru #define GMX0_RX_BP_DROP0 0x420
93 1.1 hikaru #define GMX0_RX_BP_DROP1 0x428
94 1.1 hikaru #define GMX0_RX_BP_DROP2 0x430
95 1.1 hikaru #define GMX0_RX_BP_ON0 0x440
96 1.1 hikaru #define GMX0_RX_BP_ON1 0x448
97 1.1 hikaru #define GMX0_RX_BP_ON2 0x450
98 1.1 hikaru #define GMX0_RX_BP_OFF0 0x460
99 1.1 hikaru #define GMX0_RX_BP_OFF1 0x468
100 1.1 hikaru #define GMX0_RX_BP_OFF2 0x470
101 1.1 hikaru #define GMX0_TX_PRTS 0x480
102 1.1 hikaru #define GMX0_TX_IFG 0x488
103 1.1 hikaru #define GMX0_TX_JAM 0x490
104 1.1 hikaru #define GMX0_TX_COL_ATTEMPT 0x498
105 1.1 hikaru #define GMX0_TX_PAUSE_PKT_DMAC 0x4a0
106 1.1 hikaru #define GMX0_TX_PAUSE_PKT_TYPE 0x4a8
107 1.1 hikaru #define GMX0_TX_OVR_BP 0x4c8
108 1.1 hikaru #define GMX0_TX_BP 0x4d0
109 1.1 hikaru #define GMX0_TX_CORRUPT 0x4d8
110 1.1 hikaru #define GMX0_RX_PRT_INFO 0x4e8
111 1.1 hikaru #define GMX0_TX_LFSR 0x4f8
112 1.1 hikaru #define GMX0_TX_INT_REG 0x500
113 1.1 hikaru #define GMX0_TX_INT_EN 0x508
114 1.1 hikaru #define GMX0_NXA_ADR 0x510
115 1.1 hikaru #define GMX0_BAD_REG 0x518
116 1.1 hikaru #define GMX0_STAT_BP 0x520
117 1.1 hikaru #define GMX0_TX_CLK_MSK0 0x780
118 1.1 hikaru #define GMX0_TX_CLK_MSK1 0x788
119 1.1 hikaru #define GMX0_RX_TX_STATUS 0x7e8
120 1.1 hikaru #define GMX0_INF_MODE 0x7f8
121 1.1 hikaru
122 1.1 hikaru /* -------------------------------------------------------------------------- */
123 1.1 hikaru
124 1.1 hikaru /* GMX Interrupt Registers */
125 1.1 hikaru
126 1.1 hikaru #define RXN_INT_REG_XXX_63_19 UINT64_C(0xfffffffffff80000)
127 1.1 hikaru #define RXN_INT_REG_PHY_DUPX UINT64_C(0x0000000000040000)
128 1.1 hikaru #define RXN_INT_REG_PHY_SPD UINT64_C(0x0000000000020000)
129 1.1 hikaru #define RXN_INT_REG_PHY_LINK UINT64_C(0x0000000000010000)
130 1.1 hikaru #define RXN_INT_REG_IFGERR UINT64_C(0x0000000000008000)
131 1.1 hikaru #define RXN_INT_REG_COLDET UINT64_C(0x0000000000004000)
132 1.1 hikaru #define RXN_INT_REG_FALERR UINT64_C(0x0000000000002000)
133 1.1 hikaru #define RXN_INT_REG_RSVERR UINT64_C(0x0000000000001000)
134 1.1 hikaru #define RXN_INT_REG_PCTERR UINT64_C(0x0000000000000800)
135 1.1 hikaru #define RXN_INT_REG_OVRERR UINT64_C(0x0000000000000400)
136 1.1 hikaru #define RXN_INT_REG_NIBERR UINT64_C(0x0000000000000200)
137 1.1 hikaru #define RXN_INT_REG_SKPERR UINT64_C(0x0000000000000100)
138 1.1 hikaru #define RXN_INT_REG_RCVERR UINT64_C(0x0000000000000080)
139 1.1 hikaru #define RXN_INT_REG_LENERR UINT64_C(0x0000000000000040)
140 1.1 hikaru #define RXN_INT_REG_ALNERR UINT64_C(0x0000000000000020)
141 1.1 hikaru #define RXN_INT_REG_FCSERR UINT64_C(0x0000000000000010)
142 1.1 hikaru #define RXN_INT_REG_JABBER UINT64_C(0x0000000000000008)
143 1.1 hikaru #define RXN_INT_REG_MAXERR UINT64_C(0x0000000000000004)
144 1.1 hikaru #define RXN_INT_REG_CAREXT UINT64_C(0x0000000000000002)
145 1.1 hikaru #define RXN_INT_REG_MINERR UINT64_C(0x0000000000000001)
146 1.1 hikaru
147 1.1 hikaru /* GMX Interrupt-Enable Registers */
148 1.1 hikaru
149 1.1 hikaru #define RXN_INT_EN_XXX_63_19 UINT64_C(0xfffffffffff80000)
150 1.1 hikaru #define RXN_INT_EN_PHY_DUPX UINT64_C(0x0000000000040000)
151 1.1 hikaru #define RXN_INT_EN_PHY_SPD UINT64_C(0x0000000000020000)
152 1.1 hikaru #define RXN_INT_EN_PHY_LINK UINT64_C(0x0000000000010000)
153 1.1 hikaru #define RXN_INT_EN_IFGERR UINT64_C(0x0000000000008000)
154 1.1 hikaru #define RXN_INT_EN_COLDET UINT64_C(0x0000000000004000)
155 1.1 hikaru #define RXN_INT_EN_FALERR UINT64_C(0x0000000000002000)
156 1.1 hikaru #define RXN_INT_EN_RSVERR UINT64_C(0x0000000000001000)
157 1.1 hikaru #define RXN_INT_EN_PCTERR UINT64_C(0x0000000000000800)
158 1.1 hikaru #define RXN_INT_EN_OVRERR UINT64_C(0x0000000000000400)
159 1.1 hikaru #define RXN_INT_EN_NIBERR UINT64_C(0x0000000000000200)
160 1.1 hikaru #define RXN_INT_EN_SKPERR UINT64_C(0x0000000000000100)
161 1.1 hikaru #define RXN_INT_EN_RCVERR UINT64_C(0x0000000000000080)
162 1.1 hikaru #define RXN_INT_EN_LENERR UINT64_C(0x0000000000000040)
163 1.1 hikaru #define RXN_INT_EN_ALNERR UINT64_C(0x0000000000000020)
164 1.1 hikaru #define RXN_INT_EN_FCSERR UINT64_C(0x0000000000000010)
165 1.1 hikaru #define RXN_INT_EN_JABBER UINT64_C(0x0000000000000008)
166 1.1 hikaru #define RXN_INT_EN_MAXERR UINT64_C(0x0000000000000004)
167 1.1 hikaru #define RXN_INT_EN_CAREXT UINT64_C(0x0000000000000002)
168 1.1 hikaru #define RXN_INT_EN_MINERR UINT64_C(0x0000000000000001)
169 1.1 hikaru
170 1.1 hikaru /* GMX Port Configuration Registers */
171 1.1 hikaru
172 1.5 simonb #define PRTN_CFG_XXX_63_9 UINT64_C(0xfffffffffffffe00)
173 1.5 simonb #define PRTN_CFG_SPEED_MSB UINT64_C(0x0000000000000100)
174 1.5 simonb #define PRTN_CFG_XXX_7_4 UINT64_C(0x00000000000000f0)
175 1.1 hikaru #define PRTN_CFG_SLOTTIME UINT64_C(0x0000000000000008)
176 1.1 hikaru #define PRTN_CFG_DUPLEX UINT64_C(0x0000000000000004)
177 1.1 hikaru #define PRTN_CFG_SPEED UINT64_C(0x0000000000000002)
178 1.1 hikaru #define PRTN_CFG_EN UINT64_C(0x0000000000000001)
179 1.1 hikaru
180 1.1 hikaru /* Frame Control Registers */
181 1.1 hikaru
182 1.1 hikaru #define RXN_FRM_CTL_XXX_63_11 UINT64_C(0xfffffffffffff800)
183 1.1 hikaru #define RXN_FRM_CTL_NULL_DIS UINT64_C(0x0000000000000400)
184 1.1 hikaru #define RXN_FRM_CTL_PRE_ALIGN UINT64_C(0x0000000000000200)
185 1.1 hikaru #define RXN_FRM_CTL_PAD_LEN UINT64_C(0x0000000000000100)
186 1.1 hikaru #define RXN_FRM_CTL_VLAN_LEN UINT64_C(0x0000000000000080)
187 1.1 hikaru #define RXN_FRM_CTL_PRE_FREE UINT64_C(0x0000000000000040)
188 1.1 hikaru #define RXN_FRM_CTL_CTL_SMAC UINT64_C(0x0000000000000020)
189 1.1 hikaru #define RXN_FRM_CTL_CTL_MCST UINT64_C(0x0000000000000010)
190 1.1 hikaru #define RXN_FRM_CTL_CTL_BCK UINT64_C(0x0000000000000008)
191 1.1 hikaru #define RXN_FRM_CTL_CTL_DRP UINT64_C(0x0000000000000004)
192 1.1 hikaru #define RXN_FRM_CTL_PRE_STRP UINT64_C(0x0000000000000002)
193 1.1 hikaru #define RXN_FRM_CTL_PRE_CHK UINT64_C(0x0000000000000001)
194 1.1 hikaru
195 1.1 hikaru /* Frame Check Registers */
196 1.1 hikaru
197 1.1 hikaru #define RXN_FRM_CKK_XXX_63_10 UINT64_C(0xfffffffffffffc00)
198 1.1 hikaru #define RXN_FRM_CHK_NIBERR UINT64_C(0x0000000000000200)
199 1.1 hikaru #define RXN_FRM_CHK_SKPERR UINT64_C(0x0000000000000100)
200 1.1 hikaru #define RXN_FRM_CHK_RCVERR UINT64_C(0x0000000000000080)
201 1.1 hikaru #define RXN_FRM_CHK_LENERR UINT64_C(0x0000000000000040)
202 1.1 hikaru #define RXN_FRM_CHK_ALNERR UINT64_C(0x0000000000000020)
203 1.1 hikaru #define RXN_FRM_CHK_FCSERR UINT64_C(0x0000000000000010)
204 1.1 hikaru #define RXN_FRM_CHK_JABBER UINT64_C(0x0000000000000008)
205 1.1 hikaru #define RXN_FRM_CHK_MAXERR UINT64_C(0x0000000000000004)
206 1.1 hikaru #define RXN_FRM_CHK_CAREXT UINT64_C(0x0000000000000002)
207 1.1 hikaru #define RXN_FRM_CHK_MINERR UINT64_C(0x0000000000000001)
208 1.1 hikaru
209 1.1 hikaru /* Frame Minimum-Length Registers */
210 1.1 hikaru
211 1.1 hikaru #define RXN_RRM_MIN_XXX_63_16 UINT64_C(0xffffffffffff0000)
212 1.1 hikaru #define RXN_RRM_MIN_LEN UINT64_C(0x000000000000ffff)
213 1.1 hikaru
214 1.1 hikaru /* Frame Maximun-Length Registers */
215 1.1 hikaru
216 1.1 hikaru #define RXN_RRM_MAX_XXX_63_16 UINT64_C(0xffffffffffff0000)
217 1.1 hikaru #define RXN_RRM_MAX_LEN UINT64_C(0x000000000000ffff)
218 1.1 hikaru
219 1.1 hikaru /* GMX Maximun Packet-Size Registers */
220 1.1 hikaru
221 1.1 hikaru #define RXN_JABBER_XXX_63_16 UINT64_C(0xffffffffffff0000)
222 1.1 hikaru #define RXN_JABBER_CNT UINT64_C(0x000000000000ffff)
223 1.1 hikaru
224 1.1 hikaru /* GMX Packet Decision Registers */
225 1.1 hikaru
226 1.1 hikaru #define RXN_DECISION_XXX_63_5 UINT64_C(0xffffffffffffffe0)
227 1.1 hikaru #define RXN_DECISION_CNT UINT64_C(0x000000000000001f)
228 1.1 hikaru
229 1.1 hikaru /* GMX User-Defined Data Skip Registers */
230 1.1 hikaru
231 1.1 hikaru #define RXN_UDD_SKP_XXX_63_9 UINT64_C(0xfffffffffffffe00)
232 1.1 hikaru #define RXN_UDD_SKP_FCSSEL UINT64_C(0x0000000000000100)
233 1.1 hikaru #define RXN_UDD_SKP_XXX_7 UINT64_C(0x0000000000000080)
234 1.1 hikaru #define RXN_UDD_SKP_LEN UINT64_C(0x000000000000007f)
235 1.1 hikaru
236 1.1 hikaru /* GMX RX Statistics Control Registers */
237 1.1 hikaru
238 1.1 hikaru #define RXN_STATS_CTL_XXX_63_1 UINT64_C(0xfffffffffffffffe)
239 1.1 hikaru #define RXN_STATS_CTL_RD_CLR UINT64_C(0x0000000000000001)
240 1.1 hikaru
241 1.6 andvar /* GMX Minimum Interface-Gap Cycles Registers */
242 1.1 hikaru
243 1.1 hikaru #define RXN_IFG_XXX_63_4 UINT64_C(0xfffffffffffffff0)
244 1.1 hikaru #define RXN_IFG_IFG UINT64_C(0x000000000000000f)
245 1.1 hikaru
246 1.1 hikaru /* InBand Link Status Registers */
247 1.1 hikaru
248 1.1 hikaru #define RXN_RX_INBND_XXX_63_4 UINT64_C(0xfffffffffffffff0)
249 1.1 hikaru #define RXN_RX_INBND_DUPLEX UINT64_C(0x0000000000000008)
250 1.2 simonb #define RXN_RX_INBND_DUPLEX_HALF 0
251 1.2 simonb #define RXN_RX_INBND_DUPLEX_FULL 1
252 1.1 hikaru #define RXN_RX_INBND_SPEED UINT64_C(0x0000000000000006)
253 1.2 simonb #define RXN_RX_INBND_SPEED_2_5 0
254 1.2 simonb #define RXN_RX_INBND_SPEED_25 1
255 1.2 simonb #define RXN_RX_INBND_SPEED_125 2
256 1.2 simonb #define RXN_RX_INBND_SPEED_XXX_3 3
257 1.1 hikaru #define RXN_RX_INBND_STATUS UINT64_C(0x0000000000000001)
258 1.1 hikaru
259 1.1 hikaru /* GMX RX Good Packets Registers */
260 1.1 hikaru
261 1.1 hikaru #define RXN_STATS_PKTS_XXX_63_32 UINT64_C(0xffffffff00000000)
262 1.1 hikaru #define RXN_STATS_PKTS_CNT UINT64_C(0x00000000ffffffff)
263 1.1 hikaru
264 1.1 hikaru /* GMX RX Good Packets Octet Registers */
265 1.1 hikaru
266 1.1 hikaru #define RXN_STATS_OCTS_XXX_63_48 UINT64_C(0xffff000000000000)
267 1.1 hikaru #define RXN_STATS_OCTS_CNT UINT64_C(0x0000ffffffffffff)
268 1.1 hikaru
269 1.1 hikaru /* GMX RX Pause Packets Registers */
270 1.1 hikaru
271 1.1 hikaru #define RXN_STATS_PKTS_CTL_XXX_63_32 UINT64_C(0xffffffff00000000)
272 1.1 hikaru #define RXN_STATS_PKTS_CTL_CNT UINT64_C(0x00000000ffffffff)
273 1.1 hikaru
274 1.1 hikaru /* GMX RX Pause Packets Octet Registers */
275 1.1 hikaru
276 1.1 hikaru #define RXN_STATS_OCTS_CTL_XXX_63_48 UINT64_C(0xffff000000000000)
277 1.1 hikaru #define RXN_STATS_OCTS_CTL_CNT UINT64_C(0x0000ffffffffffff)
278 1.1 hikaru
279 1.1 hikaru /* GMX RX DMAC Packets Registers */
280 1.1 hikaru
281 1.1 hikaru #define RXN_STATS_PKTS_DMAC_XXX_63_32 UINT64_C(0xffffffff00000000)
282 1.1 hikaru #define RXN_STATS_PKTS_DMAC_CNT UINT64_C(0x00000000ffffffff)
283 1.1 hikaru
284 1.1 hikaru /* GMX RX DMAC Packets Octet Registers */
285 1.1 hikaru
286 1.1 hikaru #define RXN_STATS_OCTS_DMAC_XXX_63_48 UINT64_C(0xffff000000000000)
287 1.1 hikaru #define RXN_STATS_OCTS_DMAC_CNT UINT64_C(0x0000ffffffffffff)
288 1.1 hikaru
289 1.1 hikaru /* GMX RX Overflow Packets Registers */
290 1.1 hikaru
291 1.1 hikaru #define RXN_STATS_PKTS_DRP_XXX_63_48 UINT64_C(0xffffffff00000000)
292 1.1 hikaru #define RXN_STATS_PKTS_DRP_CNT UINT64_C(0x00000000ffffffff)
293 1.1 hikaru
294 1.1 hikaru /* GMX RX Overflow Packets Octet Registers */
295 1.1 hikaru
296 1.1 hikaru #define RXN_STATS_OCTS_DRP_XXX_63_48 UINT64_C(0xffff000000000000)
297 1.1 hikaru #define RXN_STATS_OCTS_DRP_CNT UINT64_C(0x0000ffffffffffff)
298 1.1 hikaru
299 1.1 hikaru /* GMX RX Bad Packets Registers */
300 1.1 hikaru
301 1.1 hikaru #define RXN_STATS_PKTS_BAD_XXX_63_48 UINT64_C(0xffffffff00000000)
302 1.1 hikaru #define RXN_STATS_PKTS_BAD_CNT UINT64_C(0x00000000ffffffff)
303 1.1 hikaru
304 1.1 hikaru /* Address-Filtering Control Registers */
305 1.1 hikaru
306 1.1 hikaru #define RXN_ADR_CTL_XXX_63_4 UINT64_C(0xfffffffffffffff0)
307 1.1 hikaru #define RXN_ADR_CTL_CAM_MODE UINT64_C(0x0000000000000008)
308 1.2 simonb #define RXN_ADR_CTL_CAM_MODE_REJECT 0
309 1.2 simonb #define RXN_ADR_CTL_CAM_MODE_ACCEPT 1
310 1.1 hikaru #define RXN_ADR_CTL_MCST UINT64_C(0x0000000000000006)
311 1.2 simonb #define RXN_ADR_CTL_MCST_AFCAM 0
312 1.2 simonb #define RXN_ADR_CTL_MCST_REJECT 1
313 1.2 simonb #define RXN_ADR_CTL_MCST_ACCEPT 2
314 1.2 simonb #define RXN_ADR_CTL_MCST_XXX_3 3
315 1.1 hikaru #define RXN_ADR_CTL_BCST UINT64_C(0x0000000000000001)
316 1.1 hikaru
317 1.1 hikaru /* Address-Filtering Control Enable Registers */
318 1.1 hikaru
319 1.1 hikaru #define RXN_ADR_CAM_EN_XXX_63_8 UINT64_C(0xffffffffffffff00)
320 1.1 hikaru #define RXN_ADR_CAM_EN_EN UINT64_C(0x00000000000000ff)
321 1.1 hikaru
322 1.1 hikaru /* Address-Filtering CAM Control Registers */
323 1.1 hikaru #define RXN_ADR_CAMN_ADR UINT64_C(0xffffffffffffffff)
324 1.1 hikaru
325 1.1 hikaru /* GMX TX Clock Generation Registers */
326 1.1 hikaru
327 1.1 hikaru #define TXN_CLK_XXX_63_6 UINT64_C(0xffffffffffffffc0)
328 1.1 hikaru #define TXN_CLK_CLK_CNT UINT64_C(0x000000000000003f)
329 1.1 hikaru
330 1.1 hikaru /* TX Threshold Registers */
331 1.1 hikaru
332 1.1 hikaru #define TXN_THRESH_XXX_63_6 UINT64_C(0xffffffffffffffc0)
333 1.1 hikaru #define TXN_THRESH_CNT UINT64_C(0x000000000000003f)
334 1.1 hikaru
335 1.1 hikaru /* TX Append Control Registers */
336 1.1 hikaru
337 1.1 hikaru #define TXN_APPEND_XXX_63_4 UINT64_C(0xfffffffffffffff0)
338 1.1 hikaru #define TXN_APPEND_FORCE_FCS UINT64_C(0x0000000000000008)
339 1.1 hikaru #define TXN_APPEND_FCS UINT64_C(0x0000000000000004)
340 1.1 hikaru #define TXN_APPEND_PAD UINT64_C(0x0000000000000002)
341 1.1 hikaru #define TXN_APPEND_PREAMBLE UINT64_C(0x0000000000000001)
342 1.1 hikaru
343 1.1 hikaru /* TX Slottime Counter Registers */
344 1.1 hikaru
345 1.1 hikaru #define TXN_SLOT_XXX_63_10 UINT64_C(0xfffffffffffffc00)
346 1.1 hikaru #define TXN_SLOT_SLOT UINT64_C(0x00000000000003ff)
347 1.1 hikaru
348 1.1 hikaru /* TX Burst-Counter Registers */
349 1.1 hikaru
350 1.1 hikaru #define TXN_BURST_XXX_63_16 UINT64_C(0xffffffffffff0000)
351 1.1 hikaru #define TXN_BURST_BURST UINT64_C(0x000000000000ffff)
352 1.1 hikaru
353 1.1 hikaru /* RGMII SMAC Registers */
354 1.1 hikaru
355 1.1 hikaru #define SMACN_XXX_63_48 UINT64_C(0xffff000000000000)
356 1.1 hikaru #define SMACN_SMAC UINT64_C(0x0000ffffffffffff)
357 1.1 hikaru
358 1.1 hikaru /* TX Pause Packet Pause-Time Registers */
359 1.1 hikaru
360 1.1 hikaru #define TXN_PAUSE_PKT_TIME_XXX_63_16 UINT64_C(0xffffffffffff0000)
361 1.1 hikaru #define TXN_PAUSE_PKT_TIME_TIME UINT64_C(0x000000000000ffff)
362 1.1 hikaru
363 1.1 hikaru /* RGMII TX Minimum-Size-Packet Registers */
364 1.1 hikaru
365 1.1 hikaru #define TXN_MIN_PKT_XXX_63_8 UINT64_C(0xffffffffffffff00)
366 1.1 hikaru #define TXN_MIN_PKT_MIN_SIZE UINT64_C(0x00000000000000ff)
367 1.1 hikaru
368 1.1 hikaru /* TX Pause-Packet Transmission-Interval Registers */
369 1.1 hikaru
370 1.1 hikaru #define TXN_PAUSE_PKT_INTERVAL_XXX_63_16 UINT64_C(0xffffffffffff0000)
371 1.1 hikaru #define TXN_PAUSE_PKT_INTERVAL_INTERVAL UINT64_C(0x000000000000ffff)
372 1.1 hikaru
373 1.1 hikaru /* TX Software-Pause Registers */
374 1.1 hikaru
375 1.1 hikaru #define TXN_SOFT_PAUSE_XXX_63_16 UINT64_C(0xffffffffffff0000)
376 1.1 hikaru #define TXN_SOFT_PAUSE_TIME UINT64_C(0x000000000000ffff)
377 1.1 hikaru
378 1.1 hikaru /* TX Time-to-Backpressure Registers */
379 1.1 hikaru
380 1.1 hikaru #define TXN_PAUSE_TOGO_XXX_63_16 UINT64_C(0xffffffffffff0000)
381 1.1 hikaru #define TXN_PAUSE_TOGO_TIME UINT64_C(0x000000000000ffff)
382 1.1 hikaru
383 1.1 hikaru /* TX Pause-Zero-Enable Registers */
384 1.1 hikaru
385 1.1 hikaru #define TXN_PAUSE_ZERO_XXX_63_1 UINT64_C(0xfffffffffffffffe)
386 1.1 hikaru #define TXN_PAUSE_ZERO_SEND UINT64_C(0x0000000000000001)
387 1.1 hikaru
388 1.1 hikaru /* GMX TX Statistics Control Registers */
389 1.1 hikaru
390 1.1 hikaru #define TXN_STATS_CTL_XXX_63_1 UINT64_C(0xfffffffffffffffe)
391 1.1 hikaru #define TXN_STATS_CTL_RD_CLR UINT64_C(0x0000000000000001)
392 1.1 hikaru
393 1.1 hikaru /* GMX TX Transmit Control Registers */
394 1.1 hikaru
395 1.1 hikaru #define TXN_CTL_XXX_63_2 UINT64_C(0xfffffffffffffffc)
396 1.1 hikaru #define TXN_CTL_XSDEF_EN UINT64_C(0x0000000000000002)
397 1.1 hikaru #define TXN_CTL_XSCOL_EN UINT64_C(0x0000000000000001)
398 1.1 hikaru
399 1.1 hikaru /* Transmit Statistics Registers 0 */
400 1.1 hikaru
401 1.1 hikaru #define TXN_STAT0_XSDEF UINT64_C(0xffffffff00000000)
402 1.1 hikaru #define TXN_STAT0_XSCOL UINT64_C(0x00000000ffffffff)
403 1.1 hikaru
404 1.1 hikaru /* Transmit Statistics Registers 1 */
405 1.1 hikaru
406 1.1 hikaru #define TXN_STAT1_SCOL UINT64_C(0xffffffff00000000)
407 1.1 hikaru #define TXN_STAT1_MSCOL UINT64_C(0x00000000ffffffff)
408 1.1 hikaru
409 1.1 hikaru /* Transmit Statistics Registers 2 */
410 1.1 hikaru
411 1.1 hikaru #define TXN_STAT2_XXX_63_48 UINT64_C(0xffff000000000000)
412 1.1 hikaru #define TXN_STAT2_OCTS UINT64_C(0x0000ffffffffffff)
413 1.1 hikaru
414 1.1 hikaru /* Transmit Statistics Registers 3 */
415 1.1 hikaru
416 1.1 hikaru #define TXN_STAT3_XXX_63_48 UINT64_C(0xffffffff00000000)
417 1.1 hikaru #define TXN_STAT3_PKTS UINT64_C(0x00000000ffffffff)
418 1.1 hikaru
419 1.1 hikaru /* Transmit Statistics Registers 4 */
420 1.1 hikaru
421 1.1 hikaru #define TXN_STAT4_HIST1 UINT64_C(0xffffffff00000000)
422 1.1 hikaru #define TXN_STAT4_HIST0 UINT64_C(0x00000000ffffffff)
423 1.1 hikaru
424 1.1 hikaru /* Transmit Statistics Registers 5 */
425 1.1 hikaru
426 1.1 hikaru #define TXN_STAT5_HIST3 UINT64_C(0xffffffff00000000)
427 1.1 hikaru #define TXN_STAT5_HIST2 UINT64_C(0x00000000ffffffff)
428 1.1 hikaru
429 1.1 hikaru /* Transmit Statistics Registers 6 */
430 1.1 hikaru
431 1.1 hikaru #define TXN_STAT6_HIST5 UINT64_C(0xffffffff00000000)
432 1.1 hikaru #define TXN_STAT6_HIST4 UINT64_C(0x00000000ffffffff)
433 1.1 hikaru
434 1.1 hikaru /* Transmit Statistics Registers 7 */
435 1.1 hikaru
436 1.1 hikaru #define TXN_STAT7_HIST7 UINT64_C(0xffffffff00000000)
437 1.1 hikaru #define TXN_STAT7_HIST6 UINT64_C(0x00000000ffffffff)
438 1.1 hikaru
439 1.1 hikaru /* Transmit Statistics Registers 8 */
440 1.1 hikaru
441 1.1 hikaru #define TXN_STAT8_MCST UINT64_C(0xffffffff00000000)
442 1.1 hikaru #define TXN_STAT8_BCST UINT64_C(0x00000000ffffffff)
443 1.1 hikaru
444 1.1 hikaru /* Transmit Statistics Register 9 */
445 1.1 hikaru
446 1.1 hikaru #define TXN_STAT9_UNDFLW UINT64_C(0xffffffff00000000)
447 1.1 hikaru #define TXN_STAT9_CTL UINT64_C(0x00000000ffffffff)
448 1.1 hikaru
449 1.1 hikaru /* BMX BIST Results Register */
450 1.1 hikaru
451 1.1 hikaru #define BIST_XXX_63_10 UINT64_C(0xfffffffffffffc00)
452 1.1 hikaru #define BIST_STATUS UINT64_C(0x00000000000003ff)
453 1.1 hikaru
454 1.1 hikaru /* RX Ports Register */
455 1.1 hikaru
456 1.1 hikaru #define RX_PRTS_XXX_63_3 UINT64_C(0xfffffffffffffff8)
457 1.1 hikaru #define RX_PRTS_PRTS UINT64_C(0x0000000000000007)
458 1.1 hikaru
459 1.1 hikaru /* RX FIFO Packet-Drop Registers */
460 1.1 hikaru
461 1.1 hikaru #define RX_BP_DROPN_XXX_63_6 UINT64_C(0xffffffffffffffc0)
462 1.1 hikaru #define RX_BP_DROPN_MARK UINT64_C(0x000000000000003f)
463 1.1 hikaru
464 1.1 hikaru /* RX Backpressure On Registers */
465 1.1 hikaru
466 1.1 hikaru #define RX_BP_ONN_XXX_63_9 UINT64_C(0xfffffffffffffe00)
467 1.1 hikaru #define RX_BP_ONN_MARK UINT64_C(0x00000000000001ff)
468 1.1 hikaru
469 1.1 hikaru /* RX Backpressure Off Registers */
470 1.1 hikaru
471 1.1 hikaru #define RX_BP_OFFN_XXX_63_6 UINT64_C(0xffffffffffffffc0)
472 1.1 hikaru #define RX_BP_OFFN_MARK UINT64_C(0x000000000000003f)
473 1.1 hikaru
474 1.1 hikaru /* TX Ports Register */
475 1.1 hikaru
476 1.1 hikaru #define TX_PRTS_XXX_63_5 UINT64_C(0xffffffffffffffe0)
477 1.1 hikaru #define TX_PRTS_PRTS UINT64_C(0x000000000000001f)
478 1.1 hikaru
479 1.1 hikaru /* TX Interframe Gap Register */
480 1.1 hikaru
481 1.1 hikaru #define TX_IFG_XXX_63_8 UINT64_C(0xffffffffffffff00)
482 1.1 hikaru #define TX_IFG_IFG2 UINT64_C(0x00000000000000f0)
483 1.1 hikaru #define TX_IFG_IFG1 UINT64_C(0x000000000000000f)
484 1.1 hikaru
485 1.1 hikaru /* TX Jam Pattern Register */
486 1.1 hikaru
487 1.1 hikaru #define TX_JAM_XXX_63_8 UINT64_C(0xffffffffffffff00)
488 1.1 hikaru #define TX_JAM_JAM UINT64_C(0x00000000000000ff)
489 1.1 hikaru
490 1.1 hikaru /* TX Collision Attempts Before Dropping Frame Register */
491 1.1 hikaru
492 1.1 hikaru #define TX_COL_ATTEMPT_XXX_63_5 UINT64_C(0xffffffffffffffe0)
493 1.1 hikaru #define TX_COL_ATTEMPT_LIMIT UINT64_C(0x000000000000001f)
494 1.1 hikaru
495 1.1 hikaru /* TX Pause-Packet DMAC-Field Register */
496 1.1 hikaru
497 1.1 hikaru #define TX_PAUSE_PKT_DMAC_XXX_63_48 UINT64_C(0xffff000000000000)
498 1.1 hikaru #define TX_PAUSE_PKT_DMAC_DMAC UINT64_C(0x0000ffffffffffff)
499 1.1 hikaru
500 1.1 hikaru /* TX Pause Packet Type Field Register */
501 1.1 hikaru
502 1.1 hikaru #define TX_PAUSE_PKT_TYPE_XXX_63_16 UINT64_C(0xffffffffffff0000)
503 1.1 hikaru #define TX_PAUSE_PKT_TYPE_TYPE UINT64_C(0x000000000000ffff)
504 1.1 hikaru
505 1.1 hikaru /* TX Override Backpressure Register */
506 1.1 hikaru
507 1.1 hikaru #define TX_OVR_BP_XXX_63_12 UINT64_C(0xfffffffffffff000)
508 1.1 hikaru #define TX_OVR_BP_XXX_11 UINT64_C(0x0000000000000800)
509 1.1 hikaru #define TX_OVR_BP_EN UINT64_C(0x0000000000000700)
510 1.1 hikaru #define TX_OVR_BP_XXX_7 UINT64_C(0x0000000000000080)
511 1.1 hikaru #define TX_OVR_BP_BP UINT64_C(0x0000000000000070)
512 1.1 hikaru #define TX_OVR_BP_XXX_3 UINT64_C(0x0000000000000008)
513 1.1 hikaru #define TX_OVR_BP_IGN_FULL UINT64_C(0x0000000000000007)
514 1.1 hikaru
515 1.1 hikaru /* TX Override Backpressure Register */
516 1.1 hikaru
517 1.1 hikaru #define TX_OVR_BP_XXX_63_12 UINT64_C(0xfffffffffffff000)
518 1.1 hikaru #define TX_OVR_BP_XXX_11 UINT64_C(0x0000000000000800)
519 1.1 hikaru #define TX_OVR_BP_EN UINT64_C(0x0000000000000700)
520 1.1 hikaru #define TX_OVR_BP_XXX_7 UINT64_C(0x0000000000000080)
521 1.1 hikaru #define TX_OVR_BP_BP UINT64_C(0x0000000000000070)
522 1.1 hikaru #define TX_OVR_BP_XXX_3 UINT64_C(0x0000000000000008)
523 1.1 hikaru #define TX_OVR_BP_IGN_FULL UINT64_C(0x0000000000000007)
524 1.1 hikaru
525 1.1 hikaru /* TX Backpressure Status Register */
526 1.1 hikaru
527 1.1 hikaru #define TX_BP_SR_XXX_63_3 UINT64_C(0xfffffffffffffff8)
528 1.1 hikaru #define TX_BP_SR_BP UINT64_C(0x0000000000000007)
529 1.1 hikaru
530 1.1 hikaru /* TX Corrupt Packets Register */
531 1.1 hikaru
532 1.1 hikaru #define TX_CORRUPT_XXX_63_3 UINT64_C(0xfffffffffffffff8)
533 1.1 hikaru #define TX_CORRUPT_CORRUPT UINT64_C(0x0000000000000007)
534 1.1 hikaru
535 1.1 hikaru /* RX Port State Information Register */
536 1.1 hikaru
537 1.1 hikaru #define RX_PRT_INFO_XXX_63_19 UINT64_C(0xfffffffffff80000)
538 1.1 hikaru #define RX_PRT_INFO_DROP UINT64_C(0x0000000000070000)
539 1.1 hikaru #define RX_PRT_INFO_XXX_15_3 UINT64_C(0x000000000000fff8)
540 1.1 hikaru #define RX_PRT_INFO_COMMIT UINT64_C(0x0000000000000007)
541 1.1 hikaru
542 1.1 hikaru /* TX LFSR Register */
543 1.1 hikaru
544 1.1 hikaru #define TX_LFSR_XXX_63_16 UINT64_C(0xffffffffffff0000)
545 1.1 hikaru #define TX_LFSR_LFSR UINT64_C(0x000000000000ffff)
546 1.1 hikaru
547 1.1 hikaru /* TX Interrupt Register */
548 1.1 hikaru
549 1.1 hikaru #define TX_INT_REG_XXX_63_20 UINT64_C(0xfffffffffff00000)
550 1.1 hikaru #define TX_INT_REG_XXX_19 UINT64_C(0x0000000000080000)
551 1.1 hikaru #define TX_INT_REG_LATE_COL UINT64_C(0x0000000000070000)
552 1.1 hikaru #define TX_INT_REG_XXX_15 UINT64_C(0x0000000000008000)
553 1.1 hikaru #define TX_INT_REG_XSDEF UINT64_C(0x0000000000007000)
554 1.1 hikaru #define TX_INT_REG_XXX_11 UINT64_C(0x0000000000000800)
555 1.1 hikaru #define TX_INT_REG_XSCOL UINT64_C(0x0000000000000700)
556 1.1 hikaru #define TX_INT_REG_XXX_7_5 UINT64_C(0x00000000000000e0)
557 1.1 hikaru #define TX_INT_REG_UNDFLW UINT64_C(0x000000000000001c)
558 1.1 hikaru #define TX_INT_REG_XXX_1 UINT64_C(0x0000000000000002)
559 1.1 hikaru #define TX_INT_REG_PKO_NXA UINT64_C(0x0000000000000001)
560 1.1 hikaru
561 1.1 hikaru /* TX Interrupt Register */
562 1.1 hikaru
563 1.1 hikaru #define TX_INT_EN_XXX_63_20 UINT64_C(0xfffffffffff00000)
564 1.1 hikaru #define TX_INT_EN_XXX_19 UINT64_C(0x0000000000080000)
565 1.1 hikaru #define TX_INT_EN_LATE_COL UINT64_C(0x0000000000070000)
566 1.1 hikaru #define TX_INT_EN_XXX_15 UINT64_C(0x0000000000008000)
567 1.1 hikaru #define TX_INT_EN_XSDEF UINT64_C(0x0000000000007000)
568 1.1 hikaru #define TX_INT_EN_XXX_11 UINT64_C(0x0000000000000800)
569 1.1 hikaru #define TX_INT_EN_XSCOL UINT64_C(0x0000000000000700)
570 1.1 hikaru #define TX_INT_EN_XXX_7_5 UINT64_C(0x00000000000000e0)
571 1.1 hikaru #define TX_INT_EN_UNDFLW UINT64_C(0x000000000000001c)
572 1.1 hikaru #define TX_INT_EN_XXX_1 UINT64_C(0x0000000000000002)
573 1.1 hikaru #define TX_INT_EN_PKO_NXA UINT64_C(0x0000000000000001)
574 1.1 hikaru
575 1.1 hikaru /* Address-out-of-Range Error Register */
576 1.1 hikaru
577 1.1 hikaru #define NXA_ADR_XXX_63_6 UINT64_C(0xffffffffffffffc0)
578 1.1 hikaru #define NXA_ADR_PRT UINT64_C(0x000000000000003f)
579 1.1 hikaru
580 1.1 hikaru /* GMX Miscellaneous Error Register */
581 1.1 hikaru
582 1.1 hikaru #define BAD_REG_XXX_63_31 UINT64_C(0xffffffff80000000)
583 1.1 hikaru #define BAD_REG_INB_NXA UINT64_C(0x0000000078000000)
584 1.1 hikaru #define BAD_REG_STATOVR UINT64_C(0x0000000004000000)
585 1.1 hikaru #define BAD_REG_XXX_25 UINT64_C(0x0000000002000000)
586 1.1 hikaru #define BAD_REG_LOSTSTAT UINT64_C(0x0000000001c00000)
587 1.1 hikaru #define BAD_REG_XXX_21_18 UINT64_C(0x00000000003c0000)
588 1.1 hikaru #define BAD_REG_XXX_17_5 UINT64_C(0x000000000003ffe0)
589 1.1 hikaru #define BAD_REG_OUT_OVR UINT64_C(0x000000000000001c)
590 1.1 hikaru #define BAD_REG_XXX_1_0 UINT64_C(0x0000000000000003)
591 1.1 hikaru
592 1.1 hikaru /* GMX Backpressure Statistics Register */
593 1.1 hikaru
594 1.1 hikaru #define STAT_BP_XXX_63_17 UINT64_C(0xfffffffffffe0000)
595 1.1 hikaru #define STAT_BP_BP UINT64_C(0x0000000000010000)
596 1.1 hikaru #define STAT_BP_CNT UINT64_C(0x000000000000ffff)
597 1.1 hikaru
598 1.1 hikaru /* Mode Change Mask Registers */
599 1.1 hikaru
600 1.1 hikaru #define TX_CLK_MSKN_XXX_63_1 UINT64_C(0xfffffffffffffffe)
601 1.1 hikaru #define TX_CLK_MSKN_MSK UINT64_C(0x0000000000000001)
602 1.1 hikaru
603 1.1 hikaru /* GMX RX/TX Status Register */
604 1.1 hikaru
605 1.1 hikaru #define RX_TX_STATUS_XXX_63_7 UINT64_C(0xffffffffffffff80)
606 1.1 hikaru #define RX_TX_STATUS_TX UINT64_C(0x0000000000000070)
607 1.1 hikaru #define RX_TX_STATUS_XXX_3 UINT64_C(0x0000000000000008)
608 1.1 hikaru #define RX_TX_STATUS_RX UINT64_C(0x0000000000000007)
609 1.1 hikaru
610 1.1 hikaru /* Interface Mode Register */
611 1.1 hikaru
612 1.1 hikaru #define INF_MODE_XXX_63_3 UINT64_C(0xfffffffffffffff8)
613 1.1 hikaru #define INF_MODE_P0MII UINT64_C(0x0000000000000004)
614 1.1 hikaru #define INF_MODE_EN UINT64_C(0x0000000000000002)
615 1.1 hikaru #define INF_MODE_TYPE UINT64_C(0x0000000000000001)
616 1.5 simonb /* Interface mode, applicable on CN68xx and CN7xxx (?) */
617 1.5 simonb #define INF_MODE_MODE UINT64_C(0x0000000000000070)
618 1.5 simonb #define INF_MODE_MODE_SGMII UINT64_C(0x0000000000000020)
619 1.5 simonb #define INF_MODE_MODE_XAUI UINT64_C(0x0000000000000030)
620 1.5 simonb
621 1.5 simonb #define MIO_QLM_CFG(x) (UINT64_C(0x0001180000001590) + (x)*8)
622 1.5 simonb
623 1.5 simonb #define MIO_QLM_CFG_CFG UINT64_C(0x000000000000000f)
624 1.1 hikaru
625 1.1 hikaru /* -------------------------------------------------------------------------- */
626 1.1 hikaru
627 1.1 hikaru /* for bus_space(9) */
628 1.1 hikaru
629 1.5 simonb #define GMX_PORT_NUNITS (5 * 16)
630 1.5 simonb #define GMX_PORT_NUM(g, i) ((g) * 16 + (i))
631 1.5 simonb #define GMX_PORT_IFACE(port) ((port) / 16)
632 1.5 simonb #define GMX_PORT_INDEX(port) ((port) % 16)
633 1.5 simonb
634 1.5 simonb #define GMX_BLOCK_SIZE 0x8000000
635 1.5 simonb #define GMX_CN68XX_BLOCK_SIZE 0x100000 /* different on CN68XX only */
636 1.5 simonb
637 1.5 simonb #define GMX0_BASE_PORT0 UINT64_C(0x0001180008000000)
638 1.5 simonb #define GMX_PORT_SIZE 0x800
639 1.5 simonb #define GMX_IF_SIZE(n) (GMX_PORT_SIZE * (n))
640 1.5 simonb #define GMX_BASE_PORT(n, m) /* address of GMX(n) * PORT(m) */ \
641 1.5 simonb (GMX0_BASE_PORT0 + (n) * GMX_BLOCK_SIZE + GMX_IF_SIZE(m))
642 1.5 simonb #define GMX_CN68XX_BASE_PORT(n, m) /* address of GMX(n) * PORT(m) */ \
643 1.5 simonb (GMX0_BASE_PORT0 + (n) * GMX_CN68XX_BLOCK_SIZE + GMX_IF_SIZE(m))
644 1.5 simonb
645 1.5 simonb /* -------------------------------------------------------------------------- */
646 1.5 simonb
647 1.7 andvar /* Low-level SGMII link control */
648 1.5 simonb
649 1.5 simonb #define PCS_BASE(g, i) (UINT64_C(0x00011800b0001000) + 0x8000000 * (g) + 0x400 * (i))
650 1.5 simonb #define PCS_SIZE 0x98
651 1.1 hikaru
652 1.5 simonb #define PCS_MR_CONTROL 0x00
653 1.5 simonb #define PCS_MR_STATUS 0x08
654 1.5 simonb #define PCS_LINK_TIMER_COUNT 0x40
655 1.5 simonb #define PCS_MISC_CTL 0x78
656 1.5 simonb
657 1.5 simonb #define PCS_MR_CONTROL_RES_16_63 UINT64_C(0xffffffffffff0000)
658 1.5 simonb #define PCS_MR_CONTROL_RESET UINT64_C(0x0000000000008000)
659 1.5 simonb #define PCS_MR_CONTROL_LOOPBCK1 UINT64_C(0x0000000000004000)
660 1.5 simonb #define PCS_MR_CONTROL_SPDLSB UINT64_C(0x0000000000002000)
661 1.5 simonb #define PCS_MR_CONTROL_AN_EN UINT64_C(0x0000000000001000)
662 1.5 simonb #define PCS_MR_CONTROL_PWR_DN UINT64_C(0x0000000000000800)
663 1.5 simonb #define PCS_MR_CONTROL_RES_10_10 UINT64_C(0x0000000000000400)
664 1.5 simonb #define PCS_MR_CONTROL_RST_AN UINT64_C(0x0000000000000200)
665 1.5 simonb #define PCS_MR_CONTROL_DUPLEX UINT64_C(0x0000000000000100)
666 1.5 simonb #define PCS_MR_CONTROL_COLTST UINT64_C(0x0000000000000080)
667 1.5 simonb #define PCS_MR_CONTROL_SPDMSB UINT64_C(0x0000000000000040)
668 1.5 simonb #define PCS_MR_CONTROL_UNI UINT64_C(0x0000000000000020)
669 1.5 simonb #define PCS_MR_CONTROL_RES_0_4 UINT64_C(0x000000000000001f)
670 1.5 simonb
671 1.5 simonb #define PCS_MR_STATUS_RES_16_63 UINT64_C(0xffffffffffff0000)
672 1.5 simonb #define PCS_MR_STATUS_HUN_T4 UINT64_C(0x0000000000008000)
673 1.5 simonb #define PCS_MR_STATUS_HUN_XFD UINT64_C(0x0000000000004000)
674 1.5 simonb #define PCS_MR_STATUS_HUN_XHD UINT64_C(0x0000000000002000)
675 1.5 simonb #define PCS_MR_STATUS_TEN_FD UINT64_C(0x0000000000001000)
676 1.5 simonb #define PCS_MR_STATUS_TEN_HD UINT64_C(0x0000000000000800)
677 1.5 simonb #define PCS_MR_STATUS_HUN_T2FD UINT64_C(0x0000000000000400)
678 1.5 simonb #define PCS_MR_STATUS_HUN_T2HD UINT64_C(0x0000000000000200)
679 1.5 simonb #define PCS_MR_STATUS_EXT_ST UINT64_C(0x0000000000000100)
680 1.5 simonb #define PCS_MR_STATUS_RES_7_7 UINT64_C(0x0000000000000080)
681 1.5 simonb #define PCS_MR_STATUS_PRB_SUP UINT64_C(0x0000000000000040)
682 1.5 simonb #define PCS_MR_STATUS_AN_CPT UINT64_C(0x0000000000000020)
683 1.5 simonb #define PCS_MR_STATUS_RM_FLT UINT64_C(0x0000000000000010)
684 1.5 simonb #define PCS_MR_STATUS_AN_ABIL UINT64_C(0x0000000000000008)
685 1.5 simonb #define PCS_MR_STATUS_LNK_ST UINT64_C(0x0000000000000004)
686 1.5 simonb #define PCS_MR_STATUS_RES_1_1 UINT64_C(0x0000000000000002)
687 1.5 simonb #define PCS_MR_STATUS_EXTND UINT64_C(0x0000000000000001)
688 1.5 simonb
689 1.5 simonb #define PCS_LINK_TIMER_COUNT_MASK UINT64_C(0x000000000000ffff)
690 1.5 simonb
691 1.5 simonb #define PCS_MISC_CTL_SGMII UINT64_C(0x0000000000001000)
692 1.5 simonb #define PCS_MISC_CTL_GMXENO UINT64_C(0x0000000000000800)
693 1.5 simonb #define PCS_MISC_CTL_LOOPBCK2 UINT64_C(0x0000000000000400)
694 1.5 simonb #define PCS_MISC_CTL_MAC_PHY UINT64_C(0x0000000000000200)
695 1.5 simonb #define PCS_MISC_CTL_MODE UINT64_C(0x0000000000000100)
696 1.5 simonb #define PCS_MISC_CTL_AN_OVRD UINT64_C(0x0000000000000080)
697 1.5 simonb #define PCS_MISC_CTL_SAMP_PT UINT64_C(0x000000000000007f)
698 1.1 hikaru
699 1.1 hikaru #endif /* _OCTEON_GMXREG_H_ */
700