1 /*****************************************************************************
3 * File: suni1x10gexp_regs.h *
5 * $Date: 2005/03/23 07:15:59 $ *
7 * PMC/SIERRA (pm3393) MAC-PHY functionality. *
8 * part of the Chelsio 10Gb Ethernet Driver. *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License, version 2, as *
12 * published by the Free Software Foundation. *
14 * You should have received a copy of the GNU General Public License along *
15 * with this program; if not, write to the Free Software Foundation, Inc., *
16 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED *
19 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF *
20 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *
22 * http://www.chelsio.com *
24 * Copyright (c) 2003 - 2005 Chelsio Communications, Inc. *
25 * All rights reserved. *
27 * Maintainers: maintainers@chelsio.com *
29 * Authors: Dimitrios Michailidis <dm@chelsio.com> *
30 * Tina Yang <tainay@chelsio.com> *
31 * Felix Marti <felix@chelsio.com> *
32 * Scott Bardone <sbardone@chelsio.com> *
33 * Kurt Ottaway <kottaway@chelsio.com> *
34 * Frank DiMambro <frank@chelsio.com> *
38 ****************************************************************************/
40 #ifndef _SUNI1x10GEXP_REGS_H
41 #define _SUNI1x10GEXP_REGS_H
43 /******************************************************************************/
44 /** S/UNI-1x10GE-XP REGISTER ADDRESS MAP **/
45 /******************************************************************************/
46 /* Refer to the Register Bit Masks bellow for the naming of each register and */
47 /* to the S/UNI-1x10GE-XP Data Sheet for the signification of each bit */
48 /******************************************************************************/
50 #define SUNI1x10GEXP_REG_DEVICE_STATUS 0x0004
51 #define SUNI1x10GEXP_REG_MASTER_INTERRUPT_STATUS 0x000D
52 #define SUNI1x10GEXP_REG_GLOBAL_INTERRUPT_ENABLE 0x000E
53 #define SUNI1x10GEXP_REG_SERDES_3125_INTERRUPT_ENABLE 0x0102
54 #define SUNI1x10GEXP_REG_SERDES_3125_INTERRUPT_STATUS 0x0104
55 #define SUNI1x10GEXP_REG_RXXG_CONFIG_1 0x2040
56 #define SUNI1x10GEXP_REG_RXXG_CONFIG_3 0x2042
57 #define SUNI1x10GEXP_REG_RXXG_INTERRUPT 0x2043
58 #define SUNI1x10GEXP_REG_RXXG_MAX_FRAME_LENGTH 0x2045
59 #define SUNI1x10GEXP_REG_RXXG_SA_15_0 0x2046
60 #define SUNI1x10GEXP_REG_RXXG_SA_31_16 0x2047
61 #define SUNI1x10GEXP_REG_RXXG_SA_47_32 0x2048
62 #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_1_LOW 0x204D
63 #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_1_MID 0x204E
64 #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_1_HIGH 0x204F
65 #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_LOW 0x206A
66 #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_MIDLOW 0x206B
67 #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_MIDHIGH 0x206C
68 #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_HIGH 0x206D
69 #define SUNI1x10GEXP_REG_RXXG_ADDRESS_FILTER_CONTROL_0 0x206E
70 #define SUNI1x10GEXP_REG_RXXG_ADDRESS_FILTER_CONTROL_2 0x2070
71 #define SUNI1x10GEXP_REG_XRF_INTERRUPT_ENABLE 0x2088
72 #define SUNI1x10GEXP_REG_XRF_INTERRUPT_STATUS 0x2089
73 #define SUNI1x10GEXP_REG_XRF_DIAG_INTERRUPT_ENABLE 0x208B
74 #define SUNI1x10GEXP_REG_XRF_DIAG_INTERRUPT_STATUS 0x208C
75 #define SUNI1x10GEXP_REG_RXOAM_INTERRUPT_ENABLE 0x20C7
76 #define SUNI1x10GEXP_REG_RXOAM_INTERRUPT_STATUS 0x20C8
77 #define SUNI1x10GEXP_REG_MSTAT_CONTROL 0x2100
78 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_0 0x2101
79 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_1 0x2102
80 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_2 0x2103
81 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_3 0x2104
82 #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_0 0x2105
83 #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_1 0x2106
84 #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_2 0x2107
85 #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_3 0x2108
86 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_0_LOW 0x2110
87 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_1_LOW 0x2114
88 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_4_LOW 0x2120
89 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_5_LOW 0x2124
90 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_6_LOW 0x2128
91 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_8_LOW 0x2130
92 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_10_LOW 0x2138
93 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_11_LOW 0x213C
94 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_12_LOW 0x2140
95 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_13_LOW 0x2144
96 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_15_LOW 0x214C
97 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_16_LOW 0x2150
98 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_17_LOW 0x2154
99 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_18_LOW 0x2158
100 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_33_LOW 0x2194
101 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_35_LOW 0x219C
102 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_36_LOW 0x21A0
103 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_38_LOW 0x21A8
104 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_40_LOW 0x21B0
105 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_42_LOW 0x21B8
106 #define SUNI1x10GEXP_REG_MSTAT_COUNTER_43_LOW 0x21BC
107 #define SUNI1x10GEXP_REG_IFLX_FIFO_OVERFLOW_ENABLE 0x2209
108 #define SUNI1x10GEXP_REG_IFLX_FIFO_OVERFLOW_INTERRUPT 0x220A
109 #define SUNI1x10GEXP_REG_PL4ODP_INTERRUPT_MASK 0x2282
110 #define SUNI1x10GEXP_REG_PL4ODP_INTERRUPT 0x2283
111 #define SUNI1x10GEXP_REG_PL4IO_LOCK_DETECT_STATUS 0x2300
112 #define SUNI1x10GEXP_REG_PL4IO_LOCK_DETECT_CHANGE 0x2301
113 #define SUNI1x10GEXP_REG_PL4IO_LOCK_DETECT_MASK 0x2302
114 #define SUNI1x10GEXP_REG_TXXG_CONFIG_1 0x3040
115 #define SUNI1x10GEXP_REG_TXXG_CONFIG_3 0x3042
116 #define SUNI1x10GEXP_REG_TXXG_INTERRUPT 0x3043
117 #define SUNI1x10GEXP_REG_TXXG_MAX_FRAME_SIZE 0x3045
118 #define SUNI1x10GEXP_REG_TXXG_SA_15_0 0x3047
119 #define SUNI1x10GEXP_REG_TXXG_SA_31_16 0x3048
120 #define SUNI1x10GEXP_REG_TXXG_SA_47_32 0x3049
121 #define SUNI1x10GEXP_REG_XTEF_INTERRUPT_STATUS 0x3084
122 #define SUNI1x10GEXP_REG_XTEF_INTERRUPT_ENABLE 0x3085
123 #define SUNI1x10GEXP_REG_TXOAM_INTERRUPT_ENABLE 0x30C6
124 #define SUNI1x10GEXP_REG_TXOAM_INTERRUPT_STATUS 0x30C7
125 #define SUNI1x10GEXP_REG_EFLX_FIFO_OVERFLOW_ERROR_ENABLE 0x320C
126 #define SUNI1x10GEXP_REG_EFLX_FIFO_OVERFLOW_ERROR_INDICATION 0x320D
127 #define SUNI1x10GEXP_REG_PL4IDU_INTERRUPT_MASK 0x3282
128 #define SUNI1x10GEXP_REG_PL4IDU_INTERRUPT 0x3283
130 /******************************************************************************/
131 /* -- End register offset definitions -- */
132 /******************************************************************************/
134 /******************************************************************************/
135 /** SUNI-1x10GE-XP REGISTER BIT MASKS **/
136 /******************************************************************************/
138 /*----------------------------------------------------------------------------
139 * Register 0x0004: S/UNI-1x10GE-XP Device Status
140 * Bit 9 TOP_SXRA_EXPIRED
141 * Bit 8 TOP_MDIO_BUSY
145 * Bit 4 TOP_PL4_ID_DOOL
146 * Bit 3 TOP_PL4_IS_DOOL
147 * Bit 2 TOP_PL4_ID_ROOL
148 * Bit 1 TOP_PL4_IS_ROOL
149 * Bit 0 TOP_PL4_OUT_ROOL
150 *----------------------------------------------------------------------------*/
151 #define SUNI1x10GEXP_BITMSK_TOP_SXRA_EXPIRED 0x0200
152 #define SUNI1x10GEXP_BITMSK_TOP_EXPIRED 0x0040
153 #define SUNI1x10GEXP_BITMSK_TOP_PL4_ID_DOOL 0x0010
154 #define SUNI1x10GEXP_BITMSK_TOP_PL4_IS_DOOL 0x0008
155 #define SUNI1x10GEXP_BITMSK_TOP_PL4_ID_ROOL 0x0004
156 #define SUNI1x10GEXP_BITMSK_TOP_PL4_IS_ROOL 0x0002
157 #define SUNI1x10GEXP_BITMSK_TOP_PL4_OUT_ROOL 0x0001
159 /*----------------------------------------------------------------------------
160 * Register 0x000E:PM3393 Global interrupt enable
162 *----------------------------------------------------------------------------*/
163 #define SUNI1x10GEXP_BITMSK_TOP_INTE 0x8000
165 /*----------------------------------------------------------------------------
166 * Register 0x2040: RXXG Configuration 1
169 * Bit 13 RXXG_PAD_STRIP
174 * Bit 5 RXXG_PASS_CTRL
175 * Bit 3 RXXG_CRC_STRIP
177 *----------------------------------------------------------------------------*/
178 #define SUNI1x10GEXP_BITMSK_RXXG_RXEN 0x8000
179 #define SUNI1x10GEXP_BITMSK_RXXG_PUREP 0x0400
180 #define SUNI1x10GEXP_BITMSK_RXXG_FLCHK 0x0080
181 #define SUNI1x10GEXP_BITMSK_RXXG_CRC_STRIP 0x0008
183 /*----------------------------------------------------------------------------
184 * Register 0x2070: RXXG Address Filter Control 2
186 * Bit 0 RXXG_MHASH_EN
187 *----------------------------------------------------------------------------*/
188 #define SUNI1x10GEXP_BITMSK_RXXG_PMODE 0x0002
189 #define SUNI1x10GEXP_BITMSK_RXXG_MHASH_EN 0x0001
191 /*----------------------------------------------------------------------------
192 * Register 0x2100: MSTAT Control
196 *----------------------------------------------------------------------------*/
197 #define SUNI1x10GEXP_BITMSK_MSTAT_CLEAR 0x0002
198 #define SUNI1x10GEXP_BITMSK_MSTAT_SNAP 0x0001
200 /*----------------------------------------------------------------------------
201 * Register 0x3040: TXXG Configuration Register 1
203 * Bit 13 TXXG_HOSTPAUSE
205 * Bit 5 TXXG_32BIT_ALIGN
211 *----------------------------------------------------------------------------*/
212 #define SUNI1x10GEXP_BITMSK_TXXG_TXEN0 0x8000
213 #define SUNI1x10GEXP_BITOFF_TXXG_IPGT 7
214 #define SUNI1x10GEXP_BITMSK_TXXG_32BIT_ALIGN 0x0020
215 #define SUNI1x10GEXP_BITMSK_TXXG_CRCEN 0x0010
216 #define SUNI1x10GEXP_BITMSK_TXXG_FCTX 0x0008
217 #define SUNI1x10GEXP_BITMSK_TXXG_FCRX 0x0004
218 #define SUNI1x10GEXP_BITMSK_TXXG_PADEN 0x0002
220 #endif /* _SUNI1x10GEXP_REGS_H */