Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cvmx-interrupt-decodes.c
Go to the documentation of this file.
1 /***********************license start***************
2  * Author: Cavium Networks
3  *
4  * Contact: [email protected]
5  * This file is part of the OCTEON SDK
6  *
7  * Copyright (c) 2003-2009 Cavium Networks
8  *
9  * This file is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License, Version 2, as
11  * published by the Free Software Foundation.
12  *
13  * This file is distributed in the hope that it will be useful, but
14  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16  * NONINFRINGEMENT. See the GNU General Public License for more
17  * details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this file; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22  * or visit http://www.gnu.org/licenses/.
23  *
24  * This file may also be available under a different license from Cavium.
25  * Contact Cavium Networks for more information
26  ***********************license end**************************************/
27 
28 /*
29  *
30  * Automatically generated functions useful for enabling
31  * and decoding RSL_INT_BLOCKS interrupts.
32  *
33  */
34 
35 #include <asm/octeon/octeon.h>
36 
42 
43 #ifndef PRINT_ERROR
44 #define PRINT_ERROR(format, ...)
45 #endif
46 
47 
52 {
53  union cvmx_gmxx_rxx_int_en gmx_rx_int_en;
54  cvmx_write_csr(CVMX_GMXX_RXX_INT_REG(index, block),
55  cvmx_read_csr(CVMX_GMXX_RXX_INT_REG(index, block)));
56  gmx_rx_int_en.u64 = 0;
58  /* Skipping gmx_rx_int_en.s.reserved_29_63 */
59  gmx_rx_int_en.s.hg2cc = 1;
60  gmx_rx_int_en.s.hg2fld = 1;
61  gmx_rx_int_en.s.undat = 1;
62  gmx_rx_int_en.s.uneop = 1;
63  gmx_rx_int_en.s.unsop = 1;
64  gmx_rx_int_en.s.bad_term = 1;
65  gmx_rx_int_en.s.bad_seq = 1;
66  gmx_rx_int_en.s.rem_fault = 1;
67  gmx_rx_int_en.s.loc_fault = 1;
68  gmx_rx_int_en.s.pause_drp = 1;
69  /* Skipping gmx_rx_int_en.s.reserved_16_18 */
70  /*gmx_rx_int_en.s.ifgerr = 1; */
71  /*gmx_rx_int_en.s.coldet = 1; // Collsion detect */
72  /*gmx_rx_int_en.s.falerr = 1; // False carrier error or extend error after slottime */
73  /*gmx_rx_int_en.s.rsverr = 1; // RGMII reserved opcodes */
74  /*gmx_rx_int_en.s.pcterr = 1; // Bad Preamble / Protocol */
75  gmx_rx_int_en.s.ovrerr = 1;
76  /* Skipping gmx_rx_int_en.s.reserved_9_9 */
77  gmx_rx_int_en.s.skperr = 1;
78  gmx_rx_int_en.s.rcverr = 1;
79  /* Skipping gmx_rx_int_en.s.reserved_5_6 */
80  /*gmx_rx_int_en.s.fcserr = 1; // FCS errors are handled when we get work */
81  gmx_rx_int_en.s.jabber = 1;
82  /* Skipping gmx_rx_int_en.s.reserved_2_2 */
83  gmx_rx_int_en.s.carext = 1;
84  /* Skipping gmx_rx_int_en.s.reserved_0_0 */
85  }
87  /* Skipping gmx_rx_int_en.s.reserved_19_63 */
88  /*gmx_rx_int_en.s.phy_dupx = 1; */
89  /*gmx_rx_int_en.s.phy_spd = 1; */
90  /*gmx_rx_int_en.s.phy_link = 1; */
91  /*gmx_rx_int_en.s.ifgerr = 1; */
92  /*gmx_rx_int_en.s.coldet = 1; // Collsion detect */
93  /*gmx_rx_int_en.s.falerr = 1; // False carrier error or extend error after slottime */
94  /*gmx_rx_int_en.s.rsverr = 1; // RGMII reserved opcodes */
95  /*gmx_rx_int_en.s.pcterr = 1; // Bad Preamble / Protocol */
96  gmx_rx_int_en.s.ovrerr = 1;
97  gmx_rx_int_en.s.niberr = 1;
98  gmx_rx_int_en.s.skperr = 1;
99  gmx_rx_int_en.s.rcverr = 1;
100  /*gmx_rx_int_en.s.lenerr = 1; // Length errors are handled when we get work */
101  gmx_rx_int_en.s.alnerr = 1;
102  /*gmx_rx_int_en.s.fcserr = 1; // FCS errors are handled when we get work */
103  gmx_rx_int_en.s.jabber = 1;
104  gmx_rx_int_en.s.maxerr = 1;
105  gmx_rx_int_en.s.carext = 1;
106  gmx_rx_int_en.s.minerr = 1;
107  }
109  /* Skipping gmx_rx_int_en.s.reserved_20_63 */
110  gmx_rx_int_en.s.pause_drp = 1;
111  /*gmx_rx_int_en.s.phy_dupx = 1; */
112  /*gmx_rx_int_en.s.phy_spd = 1; */
113  /*gmx_rx_int_en.s.phy_link = 1; */
114  /*gmx_rx_int_en.s.ifgerr = 1; */
115  /*gmx_rx_int_en.s.coldet = 1; // Collsion detect */
116  /*gmx_rx_int_en.s.falerr = 1; // False carrier error or extend error after slottime */
117  /*gmx_rx_int_en.s.rsverr = 1; // RGMII reserved opcodes */
118  /*gmx_rx_int_en.s.pcterr = 1; // Bad Preamble / Protocol */
119  gmx_rx_int_en.s.ovrerr = 1;
120  gmx_rx_int_en.s.niberr = 1;
121  gmx_rx_int_en.s.skperr = 1;
122  gmx_rx_int_en.s.rcverr = 1;
123  /* Skipping gmx_rx_int_en.s.reserved_6_6 */
124  gmx_rx_int_en.s.alnerr = 1;
125  /*gmx_rx_int_en.s.fcserr = 1; // FCS errors are handled when we get work */
126  gmx_rx_int_en.s.jabber = 1;
127  /* Skipping gmx_rx_int_en.s.reserved_2_2 */
128  gmx_rx_int_en.s.carext = 1;
129  /* Skipping gmx_rx_int_en.s.reserved_0_0 */
130  }
132  /* Skipping gmx_rx_int_en.s.reserved_19_63 */
133  /*gmx_rx_int_en.s.phy_dupx = 1; */
134  /*gmx_rx_int_en.s.phy_spd = 1; */
135  /*gmx_rx_int_en.s.phy_link = 1; */
136  /*gmx_rx_int_en.s.ifgerr = 1; */
137  /*gmx_rx_int_en.s.coldet = 1; // Collsion detect */
138  /*gmx_rx_int_en.s.falerr = 1; // False carrier error or extend error after slottime */
139  /*gmx_rx_int_en.s.rsverr = 1; // RGMII reserved opcodes */
140  /*gmx_rx_int_en.s.pcterr = 1; // Bad Preamble / Protocol */
141  gmx_rx_int_en.s.ovrerr = 1;
142  gmx_rx_int_en.s.niberr = 1;
143  gmx_rx_int_en.s.skperr = 1;
144  gmx_rx_int_en.s.rcverr = 1;
145  /*gmx_rx_int_en.s.lenerr = 1; // Length errors are handled when we get work */
146  gmx_rx_int_en.s.alnerr = 1;
147  /*gmx_rx_int_en.s.fcserr = 1; // FCS errors are handled when we get work */
148  gmx_rx_int_en.s.jabber = 1;
149  gmx_rx_int_en.s.maxerr = 1;
150  gmx_rx_int_en.s.carext = 1;
151  gmx_rx_int_en.s.minerr = 1;
152  }
154  /* Skipping gmx_rx_int_en.s.reserved_19_63 */
155  /*gmx_rx_int_en.s.phy_dupx = 1; */
156  /*gmx_rx_int_en.s.phy_spd = 1; */
157  /*gmx_rx_int_en.s.phy_link = 1; */
158  /*gmx_rx_int_en.s.ifgerr = 1; */
159  /*gmx_rx_int_en.s.coldet = 1; // Collsion detect */
160  /*gmx_rx_int_en.s.falerr = 1; // False carrier error or extend error after slottime */
161  /*gmx_rx_int_en.s.rsverr = 1; // RGMII reserved opcodes */
162  /*gmx_rx_int_en.s.pcterr = 1; // Bad Preamble / Protocol */
163  gmx_rx_int_en.s.ovrerr = 1;
164  gmx_rx_int_en.s.niberr = 1;
165  gmx_rx_int_en.s.skperr = 1;
166  gmx_rx_int_en.s.rcverr = 1;
167  /*gmx_rx_int_en.s.lenerr = 1; // Length errors are handled when we get work */
168  gmx_rx_int_en.s.alnerr = 1;
169  /*gmx_rx_int_en.s.fcserr = 1; // FCS errors are handled when we get work */
170  gmx_rx_int_en.s.jabber = 1;
171  gmx_rx_int_en.s.maxerr = 1;
172  gmx_rx_int_en.s.carext = 1;
173  gmx_rx_int_en.s.minerr = 1;
174  }
176  /* Skipping gmx_rx_int_en.s.reserved_20_63 */
177  gmx_rx_int_en.s.pause_drp = 1;
178  /*gmx_rx_int_en.s.phy_dupx = 1; */
179  /*gmx_rx_int_en.s.phy_spd = 1; */
180  /*gmx_rx_int_en.s.phy_link = 1; */
181  /*gmx_rx_int_en.s.ifgerr = 1; */
182  /*gmx_rx_int_en.s.coldet = 1; // Collsion detect */
183  /*gmx_rx_int_en.s.falerr = 1; // False carrier error or extend error after slottime */
184  /*gmx_rx_int_en.s.rsverr = 1; // RGMII reserved opcodes */
185  /*gmx_rx_int_en.s.pcterr = 1; // Bad Preamble / Protocol */
186  gmx_rx_int_en.s.ovrerr = 1;
187  gmx_rx_int_en.s.niberr = 1;
188  gmx_rx_int_en.s.skperr = 1;
189  gmx_rx_int_en.s.rcverr = 1;
190  /*gmx_rx_int_en.s.lenerr = 1; // Length errors are handled when we get work */
191  gmx_rx_int_en.s.alnerr = 1;
192  /*gmx_rx_int_en.s.fcserr = 1; // FCS errors are handled when we get work */
193  gmx_rx_int_en.s.jabber = 1;
194  gmx_rx_int_en.s.maxerr = 1;
195  gmx_rx_int_en.s.carext = 1;
196  gmx_rx_int_en.s.minerr = 1;
197  }
199  /* Skipping gmx_rx_int_en.s.reserved_29_63 */
200  gmx_rx_int_en.s.hg2cc = 1;
201  gmx_rx_int_en.s.hg2fld = 1;
202  gmx_rx_int_en.s.undat = 1;
203  gmx_rx_int_en.s.uneop = 1;
204  gmx_rx_int_en.s.unsop = 1;
205  gmx_rx_int_en.s.bad_term = 1;
206  gmx_rx_int_en.s.bad_seq = 0;
207  gmx_rx_int_en.s.rem_fault = 1;
208  gmx_rx_int_en.s.loc_fault = 0;
209  gmx_rx_int_en.s.pause_drp = 1;
210  /* Skipping gmx_rx_int_en.s.reserved_16_18 */
211  /*gmx_rx_int_en.s.ifgerr = 1; */
212  /*gmx_rx_int_en.s.coldet = 1; // Collsion detect */
213  /*gmx_rx_int_en.s.falerr = 1; // False carrier error or extend error after slottime */
214  /*gmx_rx_int_en.s.rsverr = 1; // RGMII reserved opcodes */
215  /*gmx_rx_int_en.s.pcterr = 1; // Bad Preamble / Protocol */
216  gmx_rx_int_en.s.ovrerr = 1;
217  /* Skipping gmx_rx_int_en.s.reserved_9_9 */
218  gmx_rx_int_en.s.skperr = 1;
219  gmx_rx_int_en.s.rcverr = 1;
220  /* Skipping gmx_rx_int_en.s.reserved_5_6 */
221  /*gmx_rx_int_en.s.fcserr = 1; // FCS errors are handled when we get work */
222  gmx_rx_int_en.s.jabber = 1;
223  /* Skipping gmx_rx_int_en.s.reserved_2_2 */
224  gmx_rx_int_en.s.carext = 1;
225  /* Skipping gmx_rx_int_en.s.reserved_0_0 */
226  }
227  cvmx_write_csr(CVMX_GMXX_RXX_INT_EN(index, block), gmx_rx_int_en.u64);
228 }
233 {
234  union cvmx_pcsx_intx_en_reg pcs_int_en_reg;
235  cvmx_write_csr(CVMX_PCSX_INTX_REG(index, block),
236  cvmx_read_csr(CVMX_PCSX_INTX_REG(index, block)));
237  pcs_int_en_reg.u64 = 0;
239  /* Skipping pcs_int_en_reg.s.reserved_12_63 */
240  /*pcs_int_en_reg.s.dup = 1; // This happens during normal operation */
241  pcs_int_en_reg.s.sync_bad_en = 1;
242  pcs_int_en_reg.s.an_bad_en = 1;
243  pcs_int_en_reg.s.rxlock_en = 1;
244  pcs_int_en_reg.s.rxbad_en = 1;
245  /*pcs_int_en_reg.s.rxerr_en = 1; // This happens during normal operation */
246  pcs_int_en_reg.s.txbad_en = 1;
247  pcs_int_en_reg.s.txfifo_en = 1;
248  pcs_int_en_reg.s.txfifu_en = 1;
249  pcs_int_en_reg.s.an_err_en = 1;
250  /*pcs_int_en_reg.s.xmit_en = 1; // This happens during normal operation */
251  /*pcs_int_en_reg.s.lnkspd_en = 1; // This happens during normal operation */
252  }
254  /* Skipping pcs_int_en_reg.s.reserved_12_63 */
255  /*pcs_int_en_reg.s.dup = 1; // This happens during normal operation */
256  pcs_int_en_reg.s.sync_bad_en = 1;
257  pcs_int_en_reg.s.an_bad_en = 1;
258  pcs_int_en_reg.s.rxlock_en = 1;
259  pcs_int_en_reg.s.rxbad_en = 1;
260  /*pcs_int_en_reg.s.rxerr_en = 1; // This happens during normal operation */
261  pcs_int_en_reg.s.txbad_en = 1;
262  pcs_int_en_reg.s.txfifo_en = 1;
263  pcs_int_en_reg.s.txfifu_en = 1;
264  pcs_int_en_reg.s.an_err_en = 1;
265  /*pcs_int_en_reg.s.xmit_en = 1; // This happens during normal operation */
266  /*pcs_int_en_reg.s.lnkspd_en = 1; // This happens during normal operation */
267  }
268  cvmx_write_csr(CVMX_PCSX_INTX_EN_REG(index, block), pcs_int_en_reg.u64);
269 }
274 {
275  union cvmx_pcsxx_int_en_reg pcsx_int_en_reg;
276  cvmx_write_csr(CVMX_PCSXX_INT_REG(index),
277  cvmx_read_csr(CVMX_PCSXX_INT_REG(index)));
278  pcsx_int_en_reg.u64 = 0;
280  /* Skipping pcsx_int_en_reg.s.reserved_6_63 */
281  pcsx_int_en_reg.s.algnlos_en = 1;
282  pcsx_int_en_reg.s.synlos_en = 1;
283  pcsx_int_en_reg.s.bitlckls_en = 1;
284  pcsx_int_en_reg.s.rxsynbad_en = 1;
285  pcsx_int_en_reg.s.rxbad_en = 1;
286  pcsx_int_en_reg.s.txflt_en = 1;
287  }
289  /* Skipping pcsx_int_en_reg.s.reserved_6_63 */
290  pcsx_int_en_reg.s.algnlos_en = 1;
291  pcsx_int_en_reg.s.synlos_en = 1;
292  pcsx_int_en_reg.s.bitlckls_en = 0; /* Happens if XAUI module is not installed */
293  pcsx_int_en_reg.s.rxsynbad_en = 1;
294  pcsx_int_en_reg.s.rxbad_en = 1;
295  pcsx_int_en_reg.s.txflt_en = 1;
296  }
297  cvmx_write_csr(CVMX_PCSXX_INT_EN_REG(index), pcsx_int_en_reg.u64);
298 }
299 
304 {
305  union cvmx_spxx_int_msk spx_int_msk;
306  cvmx_write_csr(CVMX_SPXX_INT_REG(index),
307  cvmx_read_csr(CVMX_SPXX_INT_REG(index)));
308  spx_int_msk.u64 = 0;
310  /* Skipping spx_int_msk.s.reserved_12_63 */
311  spx_int_msk.s.calerr = 1;
312  spx_int_msk.s.syncerr = 1;
313  spx_int_msk.s.diperr = 1;
314  spx_int_msk.s.tpaovr = 1;
315  spx_int_msk.s.rsverr = 1;
316  spx_int_msk.s.drwnng = 1;
317  spx_int_msk.s.clserr = 1;
318  spx_int_msk.s.spiovr = 1;
319  /* Skipping spx_int_msk.s.reserved_2_3 */
320  spx_int_msk.s.abnorm = 1;
321  spx_int_msk.s.prtnxa = 1;
322  }
324  /* Skipping spx_int_msk.s.reserved_12_63 */
325  spx_int_msk.s.calerr = 1;
326  spx_int_msk.s.syncerr = 1;
327  spx_int_msk.s.diperr = 1;
328  spx_int_msk.s.tpaovr = 1;
329  spx_int_msk.s.rsverr = 1;
330  spx_int_msk.s.drwnng = 1;
331  spx_int_msk.s.clserr = 1;
332  spx_int_msk.s.spiovr = 1;
333  /* Skipping spx_int_msk.s.reserved_2_3 */
334  spx_int_msk.s.abnorm = 1;
335  spx_int_msk.s.prtnxa = 1;
336  }
337  cvmx_write_csr(CVMX_SPXX_INT_MSK(index), spx_int_msk.u64);
338 }
343 {
344  union cvmx_stxx_int_msk stx_int_msk;
345  cvmx_write_csr(CVMX_STXX_INT_REG(index),
346  cvmx_read_csr(CVMX_STXX_INT_REG(index)));
347  stx_int_msk.u64 = 0;
349  /* Skipping stx_int_msk.s.reserved_8_63 */
350  stx_int_msk.s.frmerr = 1;
351  stx_int_msk.s.unxfrm = 1;
352  stx_int_msk.s.nosync = 1;
353  stx_int_msk.s.diperr = 1;
354  stx_int_msk.s.datovr = 1;
355  stx_int_msk.s.ovrbst = 1;
356  stx_int_msk.s.calpar1 = 1;
357  stx_int_msk.s.calpar0 = 1;
358  }
360  /* Skipping stx_int_msk.s.reserved_8_63 */
361  stx_int_msk.s.frmerr = 1;
362  stx_int_msk.s.unxfrm = 1;
363  stx_int_msk.s.nosync = 1;
364  stx_int_msk.s.diperr = 1;
365  stx_int_msk.s.datovr = 1;
366  stx_int_msk.s.ovrbst = 1;
367  stx_int_msk.s.calpar1 = 1;
368  stx_int_msk.s.calpar0 = 1;
369  }
370  cvmx_write_csr(CVMX_STXX_INT_MSK(index), stx_int_msk.u64);
371 }