diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /drivers/net/sk98lin/h/skgepnm2.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'drivers/net/sk98lin/h/skgepnm2.h')
-rw-r--r-- | drivers/net/sk98lin/h/skgepnm2.h | 334 |
1 files changed, 334 insertions, 0 deletions
diff --git a/drivers/net/sk98lin/h/skgepnm2.h b/drivers/net/sk98lin/h/skgepnm2.h new file mode 100644 index 000000000000..ddd304f1a48b --- /dev/null +++ b/drivers/net/sk98lin/h/skgepnm2.h | |||
@@ -0,0 +1,334 @@ | |||
1 | /***************************************************************************** | ||
2 | * | ||
3 | * Name: skgepnm2.h | ||
4 | * Project: GEnesis, PCI Gigabit Ethernet Adapter | ||
5 | * Version: $Revision: 1.36 $ | ||
6 | * Date: $Date: 2003/05/23 12:45:13 $ | ||
7 | * Purpose: Defines for Private Network Management Interface | ||
8 | * | ||
9 | ****************************************************************************/ | ||
10 | |||
11 | /****************************************************************************** | ||
12 | * | ||
13 | * (C)Copyright 1998-2002 SysKonnect GmbH. | ||
14 | * (C)Copyright 2002-2003 Marvell. | ||
15 | * | ||
16 | * This program is free software; you can redistribute it and/or modify | ||
17 | * it under the terms of the GNU General Public License as published by | ||
18 | * the Free Software Foundation; either version 2 of the License, or | ||
19 | * (at your option) any later version. | ||
20 | * | ||
21 | * The information in this file is provided "AS IS" without warranty. | ||
22 | * | ||
23 | ******************************************************************************/ | ||
24 | |||
25 | #ifndef _SKGEPNM2_H_ | ||
26 | #define _SKGEPNM2_H_ | ||
27 | |||
28 | /* | ||
29 | * General definitions | ||
30 | */ | ||
31 | #define SK_PNMI_CHIPSET_XMAC 1 /* XMAC11800FP */ | ||
32 | #define SK_PNMI_CHIPSET_YUKON 2 /* YUKON */ | ||
33 | |||
34 | #define SK_PNMI_BUS_PCI 1 /* PCI bus*/ | ||
35 | |||
36 | /* | ||
37 | * Actions | ||
38 | */ | ||
39 | #define SK_PNMI_ACT_IDLE 1 | ||
40 | #define SK_PNMI_ACT_RESET 2 | ||
41 | #define SK_PNMI_ACT_SELFTEST 3 | ||
42 | #define SK_PNMI_ACT_RESETCNT 4 | ||
43 | |||
44 | /* | ||
45 | * VPD releated defines | ||
46 | */ | ||
47 | |||
48 | #define SK_PNMI_VPD_RW 1 | ||
49 | #define SK_PNMI_VPD_RO 2 | ||
50 | |||
51 | #define SK_PNMI_VPD_OK 0 | ||
52 | #define SK_PNMI_VPD_NOTFOUND 1 | ||
53 | #define SK_PNMI_VPD_CUT 2 | ||
54 | #define SK_PNMI_VPD_TIMEOUT 3 | ||
55 | #define SK_PNMI_VPD_FULL 4 | ||
56 | #define SK_PNMI_VPD_NOWRITE 5 | ||
57 | #define SK_PNMI_VPD_FATAL 6 | ||
58 | |||
59 | #define SK_PNMI_VPD_IGNORE 0 | ||
60 | #define SK_PNMI_VPD_CREATE 1 | ||
61 | #define SK_PNMI_VPD_DELETE 2 | ||
62 | |||
63 | |||
64 | /* | ||
65 | * RLMT related defines | ||
66 | */ | ||
67 | #define SK_PNMI_DEF_RLMT_CHG_THRES 240 /* 4 changes per minute */ | ||
68 | |||
69 | |||
70 | /* | ||
71 | * VCT internal status values | ||
72 | */ | ||
73 | #define SK_PNMI_VCT_PENDING 32 | ||
74 | #define SK_PNMI_VCT_TEST_DONE 64 | ||
75 | #define SK_PNMI_VCT_LINK 128 | ||
76 | |||
77 | /* | ||
78 | * Internal table definitions | ||
79 | */ | ||
80 | #define SK_PNMI_GET 0 | ||
81 | #define SK_PNMI_PRESET 1 | ||
82 | #define SK_PNMI_SET 2 | ||
83 | |||
84 | #define SK_PNMI_RO 0 | ||
85 | #define SK_PNMI_RW 1 | ||
86 | #define SK_PNMI_WO 2 | ||
87 | |||
88 | typedef struct s_OidTabEntry { | ||
89 | SK_U32 Id; | ||
90 | SK_U32 InstanceNo; | ||
91 | unsigned int StructSize; | ||
92 | unsigned int Offset; | ||
93 | int Access; | ||
94 | int (* Func)(SK_AC *pAc, SK_IOC pIo, int action, | ||
95 | SK_U32 Id, char* pBuf, unsigned int* pLen, | ||
96 | SK_U32 Instance, unsigned int TableIndex, | ||
97 | SK_U32 NetNumber); | ||
98 | SK_U16 Param; | ||
99 | } SK_PNMI_TAB_ENTRY; | ||
100 | |||
101 | |||
102 | /* | ||
103 | * Trap lengths | ||
104 | */ | ||
105 | #define SK_PNMI_TRAP_SIMPLE_LEN 17 | ||
106 | #define SK_PNMI_TRAP_SENSOR_LEN_BASE 46 | ||
107 | #define SK_PNMI_TRAP_RLMT_CHANGE_LEN 23 | ||
108 | #define SK_PNMI_TRAP_RLMT_PORT_LEN 23 | ||
109 | |||
110 | /* | ||
111 | * Number of MAC types supported | ||
112 | */ | ||
113 | #define SK_PNMI_MAC_TYPES (SK_MAC_GMAC + 1) | ||
114 | |||
115 | /* | ||
116 | * MAC statistic data list (overall set for MAC types used) | ||
117 | */ | ||
118 | enum SK_MACSTATS { | ||
119 | SK_PNMI_HTX = 0, | ||
120 | SK_PNMI_HTX_OCTET, | ||
121 | SK_PNMI_HTX_OCTETHIGH = SK_PNMI_HTX_OCTET, | ||
122 | SK_PNMI_HTX_OCTETLOW, | ||
123 | SK_PNMI_HTX_BROADCAST, | ||
124 | SK_PNMI_HTX_MULTICAST, | ||
125 | SK_PNMI_HTX_UNICAST, | ||
126 | SK_PNMI_HTX_BURST, | ||
127 | SK_PNMI_HTX_PMACC, | ||
128 | SK_PNMI_HTX_MACC, | ||
129 | SK_PNMI_HTX_COL, | ||
130 | SK_PNMI_HTX_SINGLE_COL, | ||
131 | SK_PNMI_HTX_MULTI_COL, | ||
132 | SK_PNMI_HTX_EXCESS_COL, | ||
133 | SK_PNMI_HTX_LATE_COL, | ||
134 | SK_PNMI_HTX_DEFFERAL, | ||
135 | SK_PNMI_HTX_EXCESS_DEF, | ||
136 | SK_PNMI_HTX_UNDERRUN, | ||
137 | SK_PNMI_HTX_CARRIER, | ||
138 | SK_PNMI_HTX_UTILUNDER, | ||
139 | SK_PNMI_HTX_UTILOVER, | ||
140 | SK_PNMI_HTX_64, | ||
141 | SK_PNMI_HTX_127, | ||
142 | SK_PNMI_HTX_255, | ||
143 | SK_PNMI_HTX_511, | ||
144 | SK_PNMI_HTX_1023, | ||
145 | SK_PNMI_HTX_MAX, | ||
146 | SK_PNMI_HTX_LONGFRAMES, | ||
147 | SK_PNMI_HTX_SYNC, | ||
148 | SK_PNMI_HTX_SYNC_OCTET, | ||
149 | SK_PNMI_HTX_RESERVED, | ||
150 | |||
151 | SK_PNMI_HRX, | ||
152 | SK_PNMI_HRX_OCTET, | ||
153 | SK_PNMI_HRX_OCTETHIGH = SK_PNMI_HRX_OCTET, | ||
154 | SK_PNMI_HRX_OCTETLOW, | ||
155 | SK_PNMI_HRX_BADOCTET, | ||
156 | SK_PNMI_HRX_BADOCTETHIGH = SK_PNMI_HRX_BADOCTET, | ||
157 | SK_PNMI_HRX_BADOCTETLOW, | ||
158 | SK_PNMI_HRX_BROADCAST, | ||
159 | SK_PNMI_HRX_MULTICAST, | ||
160 | SK_PNMI_HRX_UNICAST, | ||
161 | SK_PNMI_HRX_PMACC, | ||
162 | SK_PNMI_HRX_MACC, | ||
163 | SK_PNMI_HRX_PMACC_ERR, | ||
164 | SK_PNMI_HRX_MACC_UNKWN, | ||
165 | SK_PNMI_HRX_BURST, | ||
166 | SK_PNMI_HRX_MISSED, | ||
167 | SK_PNMI_HRX_FRAMING, | ||
168 | SK_PNMI_HRX_UNDERSIZE, | ||
169 | SK_PNMI_HRX_OVERFLOW, | ||
170 | SK_PNMI_HRX_JABBER, | ||
171 | SK_PNMI_HRX_CARRIER, | ||
172 | SK_PNMI_HRX_IRLENGTH, | ||
173 | SK_PNMI_HRX_SYMBOL, | ||
174 | SK_PNMI_HRX_SHORTS, | ||
175 | SK_PNMI_HRX_RUNT, | ||
176 | SK_PNMI_HRX_TOO_LONG, | ||
177 | SK_PNMI_HRX_FCS, | ||
178 | SK_PNMI_HRX_CEXT, | ||
179 | SK_PNMI_HRX_UTILUNDER, | ||
180 | SK_PNMI_HRX_UTILOVER, | ||
181 | SK_PNMI_HRX_64, | ||
182 | SK_PNMI_HRX_127, | ||
183 | SK_PNMI_HRX_255, | ||
184 | SK_PNMI_HRX_511, | ||
185 | SK_PNMI_HRX_1023, | ||
186 | SK_PNMI_HRX_MAX, | ||
187 | SK_PNMI_HRX_LONGFRAMES, | ||
188 | |||
189 | SK_PNMI_HRX_RESERVED, | ||
190 | |||
191 | SK_PNMI_MAX_IDX /* NOTE: Ensure SK_PNMI_CNT_NO is set to this value */ | ||
192 | }; | ||
193 | |||
194 | /* | ||
195 | * MAC specific data | ||
196 | */ | ||
197 | typedef struct s_PnmiStatAddr { | ||
198 | SK_U16 Reg; /* MAC register containing the value */ | ||
199 | SK_BOOL GetOffset; /* TRUE: Offset managed by PNMI (call GetStatVal())*/ | ||
200 | } SK_PNMI_STATADDR; | ||
201 | |||
202 | |||
203 | /* | ||
204 | * SK_PNMI_STRUCT_DATA copy offset evaluation macros | ||
205 | */ | ||
206 | #define SK_PNMI_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_STRUCT_DATA *)0)->e)) | ||
207 | #define SK_PNMI_MAI_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_STRUCT_DATA *)0)->e)) | ||
208 | #define SK_PNMI_VPD_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_VPD *)0)->e)) | ||
209 | #define SK_PNMI_SEN_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_SENSOR *)0)->e)) | ||
210 | #define SK_PNMI_CHK_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_CHECKSUM *)0)->e)) | ||
211 | #define SK_PNMI_STA_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_STAT *)0)->e)) | ||
212 | #define SK_PNMI_CNF_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_CONF *)0)->e)) | ||
213 | #define SK_PNMI_RLM_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_RLMT *)0)->e)) | ||
214 | #define SK_PNMI_MON_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_RLMT_MONITOR *)0)->e)) | ||
215 | #define SK_PNMI_TRP_OFF(e) ((SK_U32)(SK_UPTR)&(((SK_PNMI_TRAP *)0)->e)) | ||
216 | |||
217 | #define SK_PNMI_SET_STAT(b,s,o) {SK_U32 Val32; char *pVal; \ | ||
218 | Val32 = (s); \ | ||
219 | pVal = (char *)(b) + ((SK_U32)(SK_UPTR) \ | ||
220 | &(((SK_PNMI_STRUCT_DATA *)0)-> \ | ||
221 | ReturnStatus.ErrorStatus)); \ | ||
222 | SK_PNMI_STORE_U32(pVal, Val32); \ | ||
223 | Val32 = (o); \ | ||
224 | pVal = (char *)(b) + ((SK_U32)(SK_UPTR) \ | ||
225 | &(((SK_PNMI_STRUCT_DATA *)0)-> \ | ||
226 | ReturnStatus.ErrorOffset)); \ | ||
227 | SK_PNMI_STORE_U32(pVal, Val32);} | ||
228 | |||
229 | /* | ||
230 | * Time macros | ||
231 | */ | ||
232 | #ifndef SK_PNMI_HUNDREDS_SEC | ||
233 | #if SK_TICKS_PER_SEC == 100 | ||
234 | #define SK_PNMI_HUNDREDS_SEC(t) (t) | ||
235 | #else | ||
236 | #define SK_PNMI_HUNDREDS_SEC(t) (((t) * 100) / (SK_TICKS_PER_SEC)) | ||
237 | #endif /* !SK_TICKS_PER_SEC */ | ||
238 | #endif /* !SK_PNMI_HUNDREDS_SEC */ | ||
239 | |||
240 | /* | ||
241 | * Macros to work around alignment problems | ||
242 | */ | ||
243 | #ifndef SK_PNMI_STORE_U16 | ||
244 | #define SK_PNMI_STORE_U16(p,v) {*(char *)(p) = *((char *)&(v)); \ | ||
245 | *((char *)(p) + 1) = \ | ||
246 | *(((char *)&(v)) + 1);} | ||
247 | #endif | ||
248 | |||
249 | #ifndef SK_PNMI_STORE_U32 | ||
250 | #define SK_PNMI_STORE_U32(p,v) {*(char *)(p) = *((char *)&(v)); \ | ||
251 | *((char *)(p) + 1) = \ | ||
252 | *(((char *)&(v)) + 1); \ | ||
253 | *((char *)(p) + 2) = \ | ||
254 | *(((char *)&(v)) + 2); \ | ||
255 | *((char *)(p) + 3) = \ | ||
256 | *(((char *)&(v)) + 3);} | ||
257 | #endif | ||
258 | |||
259 | #ifndef SK_PNMI_STORE_U64 | ||
260 | #define SK_PNMI_STORE_U64(p,v) {*(char *)(p) = *((char *)&(v)); \ | ||
261 | *((char *)(p) + 1) = \ | ||
262 | *(((char *)&(v)) + 1); \ | ||
263 | *((char *)(p) + 2) = \ | ||
264 | *(((char *)&(v)) + 2); \ | ||
265 | *((char *)(p) + 3) = \ | ||
266 | *(((char *)&(v)) + 3); \ | ||
267 | *((char *)(p) + 4) = \ | ||
268 | *(((char *)&(v)) + 4); \ | ||
269 | *((char *)(p) + 5) = \ | ||
270 | *(((char *)&(v)) + 5); \ | ||
271 | *((char *)(p) + 6) = \ | ||
272 | *(((char *)&(v)) + 6); \ | ||
273 | *((char *)(p) + 7) = \ | ||
274 | *(((char *)&(v)) + 7);} | ||
275 | #endif | ||
276 | |||
277 | #ifndef SK_PNMI_READ_U16 | ||
278 | #define SK_PNMI_READ_U16(p,v) {*((char *)&(v)) = *(char *)(p); \ | ||
279 | *(((char *)&(v)) + 1) = \ | ||
280 | *((char *)(p) + 1);} | ||
281 | #endif | ||
282 | |||
283 | #ifndef SK_PNMI_READ_U32 | ||
284 | #define SK_PNMI_READ_U32(p,v) {*((char *)&(v)) = *(char *)(p); \ | ||
285 | *(((char *)&(v)) + 1) = \ | ||
286 | *((char *)(p) + 1); \ | ||
287 | *(((char *)&(v)) + 2) = \ | ||
288 | *((char *)(p) + 2); \ | ||
289 | *(((char *)&(v)) + 3) = \ | ||
290 | *((char *)(p) + 3);} | ||
291 | #endif | ||
292 | |||
293 | #ifndef SK_PNMI_READ_U64 | ||
294 | #define SK_PNMI_READ_U64(p,v) {*((char *)&(v)) = *(char *)(p); \ | ||
295 | *(((char *)&(v)) + 1) = \ | ||
296 | *((char *)(p) + 1); \ | ||
297 | *(((char *)&(v)) + 2) = \ | ||
298 | *((char *)(p) + 2); \ | ||
299 | *(((char *)&(v)) + 3) = \ | ||
300 | *((char *)(p) + 3); \ | ||
301 | *(((char *)&(v)) + 4) = \ | ||
302 | *((char *)(p) + 4); \ | ||
303 | *(((char *)&(v)) + 5) = \ | ||
304 | *((char *)(p) + 5); \ | ||
305 | *(((char *)&(v)) + 6) = \ | ||
306 | *((char *)(p) + 6); \ | ||
307 | *(((char *)&(v)) + 7) = \ | ||
308 | *((char *)(p) + 7);} | ||
309 | #endif | ||
310 | |||
311 | /* | ||
312 | * Macros for Debug | ||
313 | */ | ||
314 | #ifdef DEBUG | ||
315 | |||
316 | #define SK_PNMI_CHECKFLAGS(vSt) {if (pAC->Pnmi.MacUpdatedFlag > 0 || \ | ||
317 | pAC->Pnmi.RlmtUpdatedFlag > 0 || \ | ||
318 | pAC->Pnmi.SirqUpdatedFlag > 0) { \ | ||
319 | SK_DBG_MSG(pAC, \ | ||
320 | SK_DBGMOD_PNMI, \ | ||
321 | SK_DBGCAT_CTRL, \ | ||
322 | ("PNMI: ERR: %s MacUFlag=%d, RlmtUFlag=%d, SirqUFlag=%d\n", \ | ||
323 | vSt, \ | ||
324 | pAC->Pnmi.MacUpdatedFlag, \ | ||
325 | pAC->Pnmi.RlmtUpdatedFlag, \ | ||
326 | pAC->Pnmi.SirqUpdatedFlag))}} | ||
327 | |||
328 | #else /* !DEBUG */ | ||
329 | |||
330 | #define SK_PNMI_CHECKFLAGS(vSt) /* Nothing */ | ||
331 | |||
332 | #endif /* !DEBUG */ | ||
333 | |||
334 | #endif /* _SKGEPNM2_H_ */ | ||