PageRenderTime 54ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/sys/contrib/octeon-sdk/cvmx-error-init-cn38xx.c

https://bitbucket.org/freebsd/freebsd-head/
C | 1290 lines | 1071 code | 69 blank | 150 comment | 0 complexity | 8f1c13e12513fe394b77046f44de47f2 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, LGPL-2.0, LGPL-2.1, BSD-2-Clause, 0BSD, JSON, AGPL-1.0, GPL-2.0

Large files files are truncated, but you can click here to view the full file

  1. /***********************license start***************
  2. * Copyright (c) 2003-2010 Cavium Networks (support@cavium.com). All rights
  3. * reserved.
  4. *
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions are
  8. * met:
  9. *
  10. * * Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. *
  13. * * Redistributions in binary form must reproduce the above
  14. * copyright notice, this list of conditions and the following
  15. * disclaimer in the documentation and/or other materials provided
  16. * with the distribution.
  17. * * Neither the name of Cavium Networks nor the names of
  18. * its contributors may be used to endorse or promote products
  19. * derived from this software without specific prior written
  20. * permission.
  21. * This Software, including technical data, may be subject to U.S. export control
  22. * laws, including the U.S. Export Administration Act and its associated
  23. * regulations, and may be subject to export or import regulations in other
  24. * countries.
  25. * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
  26. * AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS OR
  27. * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
  28. * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
  29. * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
  30. * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
  31. * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
  32. * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
  33. * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR
  34. * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
  35. ***********************license end**************************************/
  36. /**
  37. * @file
  38. *
  39. * Automatically generated error messages for cn38xx.
  40. *
  41. * This file is auto generated. Do not edit.
  42. *
  43. * <hr>$Revision$<hr>
  44. *
  45. * <hr><h2>Error tree for CN38XX</h2>
  46. * @dot
  47. * digraph cn38xx
  48. * {
  49. * rankdir=LR;
  50. * node [shape=record, width=.1, height=.1, fontsize=8, font=helvitica];
  51. * edge [fontsize=7, font=helvitica];
  52. * cvmx_root [label="ROOT|<root>root"];
  53. * cvmx_ciu_int0_sum0 [label="CIU_INTX_SUM0(0)"];
  54. * cvmx_root:root:e -> cvmx_ciu_int0_sum0 [label="root"];
  55. * cvmx_ciu_int_sum1 [label="CIU_INT_SUM1"];
  56. * cvmx_root:root:e -> cvmx_ciu_int_sum1 [label="root"];
  57. * cvmx_npi_rsl_int_blocks [label="NPI_RSL_INT_BLOCKS|<l2c>l2c|<npi>npi|<gmx0>gmx0|<gmx1>gmx1|<ipd>ipd|<spx0>spx0|<pow>pow|<spx1>spx1|<asx0>asx0|<asx1>asx1|<pko>pko|<tim>tim|<key>key|<mio>mio|<pip>pip|<fpa>fpa|<lmc>lmc|<dfa>dfa|<iob>iob|<zip>zip"];
  58. * cvmx_l2d_err [label="L2D_ERR|<sec_err>sec_err|<ded_err>ded_err"];
  59. * cvmx_npi_rsl_int_blocks:l2c:e -> cvmx_l2d_err [label="l2c"];
  60. * cvmx_l2t_err [label="L2T_ERR|<sec_err>sec_err|<ded_err>ded_err|<lckerr>lckerr|<lckerr2>lckerr2"];
  61. * cvmx_npi_rsl_int_blocks:l2c:e -> cvmx_l2t_err [label="l2c"];
  62. * cvmx_npi_int_sum [label="NPI_INT_SUM|<rml_rto>rml_rto|<rml_wto>rml_wto|<po0_2sml>po0_2sml|<po1_2sml>po1_2sml|<po2_2sml>po2_2sml|<po3_2sml>po3_2sml|<i0_rtout>i0_rtout|<i1_rtout>i1_rtout|<i2_rtout>i2_rtout|<i3_rtout>i3_rtout|<i0_overf>i0_overf|<i1_overf>i1_overf|<i2_overf>i2_overf|<i3_overf>i3_overf|<p0_rtout>p0_rtout|<p1_rtout>p1_rtout|<p2_rtout>p2_rtout|<p3_rtout>p3_rtout|<p0_perr>p0_perr|<p1_perr>p1_perr|<p2_perr>p2_perr|<p3_perr>p3_perr|<g0_rtout>g0_rtout|<g1_rtout>g1_rtout|<g2_rtout>g2_rtout|<g3_rtout>g3_rtout|<p0_pperr>p0_pperr|<p1_pperr>p1_pperr|<p2_pperr>p2_pperr|<p3_pperr>p3_pperr|<p0_ptout>p0_ptout|<p1_ptout>p1_ptout|<p2_ptout>p2_ptout|<p3_ptout>p3_ptout|<i0_pperr>i0_pperr|<i1_pperr>i1_pperr|<i2_pperr>i2_pperr|<i3_pperr>i3_pperr|<win_rto>win_rto|<p_dperr>p_dperr|<iobdma>iobdma|<fcr_s_e>fcr_s_e|<fcr_a_f>fcr_a_f|<pcr_s_e>pcr_s_e|<pcr_a_f>pcr_a_f|<q2_s_e>q2_s_e|<q2_a_f>q2_a_f|<q3_s_e>q3_s_e|<q3_a_f>q3_a_f|<com_s_e>com_s_e|<com_a_f>com_a_f|<pnc_s_e>pnc_s_e|<pnc_a_f>pnc_a_f|<rwx_s_e>rwx_s_e|<rdx_s_e>rdx_s_e|<pcf_p_e>pcf_p_e|<pcf_p_f>pcf_p_f|<pdf_p_e>pdf_p_e|<pdf_p_f>pdf_p_f|<q1_s_e>q1_s_e|<q1_a_f>q1_a_f|<pci_rsl>pci_rsl"];
  63. * cvmx_pci_int_sum2 [label="NPI_PCI_INT_SUM2|<tr_wabt>tr_wabt|<mr_wabt>mr_wabt|<mr_wtto>mr_wtto|<tr_abt>tr_abt|<mr_abt>mr_abt|<mr_tto>mr_tto|<msi_per>msi_per|<msi_tabt>msi_tabt|<msi_mabt>msi_mabt|<msc_msg>msc_msg|<tsr_abt>tsr_abt|<serr>serr|<aperr>aperr|<dperr>dperr|<ill_rwr>ill_rwr|<ill_rrd>ill_rrd|<win_wr>win_wr|<ill_wr>ill_wr|<ill_rd>ill_rd"];
  64. * cvmx_npi_int_sum:pci_rsl:e -> cvmx_pci_int_sum2 [label="pci_rsl"];
  65. * cvmx_npi_rsl_int_blocks:npi:e -> cvmx_npi_int_sum [label="npi"];
  66. * cvmx_gmx0_bad_reg [label="GMXX_BAD_REG(0)|<out_col>out_col|<ncb_ovr>ncb_ovr|<out_ovr>out_ovr|<loststat>loststat|<statovr>statovr|<inb_nxa>inb_nxa"];
  67. * cvmx_npi_rsl_int_blocks:gmx0:e -> cvmx_gmx0_bad_reg [label="gmx0"];
  68. * cvmx_gmx0_rx0_int_reg [label="GMXX_RXX_INT_REG(0,0)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  69. * cvmx_npi_rsl_int_blocks:gmx0:e -> cvmx_gmx0_rx0_int_reg [label="gmx0"];
  70. * cvmx_gmx0_rx1_int_reg [label="GMXX_RXX_INT_REG(1,0)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  71. * cvmx_npi_rsl_int_blocks:gmx0:e -> cvmx_gmx0_rx1_int_reg [label="gmx0"];
  72. * cvmx_gmx0_rx2_int_reg [label="GMXX_RXX_INT_REG(2,0)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  73. * cvmx_npi_rsl_int_blocks:gmx0:e -> cvmx_gmx0_rx2_int_reg [label="gmx0"];
  74. * cvmx_gmx0_rx3_int_reg [label="GMXX_RXX_INT_REG(3,0)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  75. * cvmx_npi_rsl_int_blocks:gmx0:e -> cvmx_gmx0_rx3_int_reg [label="gmx0"];
  76. * cvmx_gmx0_tx_int_reg [label="GMXX_TX_INT_REG(0)|<pko_nxa>pko_nxa|<ncb_nxa>ncb_nxa|<undflw>undflw"];
  77. * cvmx_npi_rsl_int_blocks:gmx0:e -> cvmx_gmx0_tx_int_reg [label="gmx0"];
  78. * cvmx_gmx1_bad_reg [label="GMXX_BAD_REG(1)|<out_col>out_col|<ncb_ovr>ncb_ovr|<out_ovr>out_ovr|<loststat>loststat|<statovr>statovr|<inb_nxa>inb_nxa"];
  79. * cvmx_npi_rsl_int_blocks:gmx1:e -> cvmx_gmx1_bad_reg [label="gmx1"];
  80. * cvmx_gmx1_rx0_int_reg [label="GMXX_RXX_INT_REG(0,1)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  81. * cvmx_npi_rsl_int_blocks:gmx1:e -> cvmx_gmx1_rx0_int_reg [label="gmx1"];
  82. * cvmx_gmx1_rx1_int_reg [label="GMXX_RXX_INT_REG(1,1)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  83. * cvmx_npi_rsl_int_blocks:gmx1:e -> cvmx_gmx1_rx1_int_reg [label="gmx1"];
  84. * cvmx_gmx1_rx2_int_reg [label="GMXX_RXX_INT_REG(2,1)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  85. * cvmx_npi_rsl_int_blocks:gmx1:e -> cvmx_gmx1_rx2_int_reg [label="gmx1"];
  86. * cvmx_gmx1_rx3_int_reg [label="GMXX_RXX_INT_REG(3,1)|<carext>carext|<maxerr>maxerr|<alnerr>alnerr|<lenerr>lenerr|<skperr>skperr|<niberr>niberr|<ovrerr>ovrerr"];
  87. * cvmx_npi_rsl_int_blocks:gmx1:e -> cvmx_gmx1_rx3_int_reg [label="gmx1"];
  88. * cvmx_gmx1_tx_int_reg [label="GMXX_TX_INT_REG(1)|<pko_nxa>pko_nxa|<ncb_nxa>ncb_nxa|<undflw>undflw"];
  89. * cvmx_npi_rsl_int_blocks:gmx1:e -> cvmx_gmx1_tx_int_reg [label="gmx1"];
  90. * cvmx_ipd_int_sum [label="IPD_INT_SUM|<prc_par0>prc_par0|<prc_par1>prc_par1|<prc_par2>prc_par2|<prc_par3>prc_par3|<bp_sub>bp_sub|<dc_ovr>dc_ovr|<cc_ovr>cc_ovr|<c_coll>c_coll|<d_coll>d_coll|<bc_ovr>bc_ovr"];
  91. * cvmx_npi_rsl_int_blocks:ipd:e -> cvmx_ipd_int_sum [label="ipd"];
  92. * cvmx_spx0_int_reg [label="SPXX_INT_REG(0)|<prtnxa>prtnxa|<abnorm>abnorm|<spiovr>spiovr|<clserr>clserr|<drwnng>drwnng|<rsverr>rsverr|<tpaovr>tpaovr|<diperr>diperr|<syncerr>syncerr|<calerr>calerr"];
  93. * cvmx_npi_rsl_int_blocks:spx0:e -> cvmx_spx0_int_reg [label="spx0"];
  94. * cvmx_stx0_int_reg [label="STXX_INT_REG(0)|<calpar0>calpar0|<calpar1>calpar1|<ovrbst>ovrbst|<datovr>datovr|<diperr>diperr|<nosync>nosync|<unxfrm>unxfrm|<frmerr>frmerr"];
  95. * cvmx_npi_rsl_int_blocks:spx0:e -> cvmx_stx0_int_reg [label="spx0"];
  96. * cvmx_pow_ecc_err [label="POW_ECC_ERR|<sbe>sbe|<dbe>dbe|<rpe>rpe|<iop>iop"];
  97. * cvmx_npi_rsl_int_blocks:pow:e -> cvmx_pow_ecc_err [label="pow"];
  98. * cvmx_spx1_int_reg [label="SPXX_INT_REG(1)|<prtnxa>prtnxa|<abnorm>abnorm|<spiovr>spiovr|<clserr>clserr|<drwnng>drwnng|<rsverr>rsverr|<tpaovr>tpaovr|<diperr>diperr|<syncerr>syncerr|<calerr>calerr"];
  99. * cvmx_npi_rsl_int_blocks:spx1:e -> cvmx_spx1_int_reg [label="spx1"];
  100. * cvmx_stx1_int_reg [label="STXX_INT_REG(1)|<calpar0>calpar0|<calpar1>calpar1|<ovrbst>ovrbst|<datovr>datovr|<diperr>diperr|<nosync>nosync|<unxfrm>unxfrm|<frmerr>frmerr"];
  101. * cvmx_npi_rsl_int_blocks:spx1:e -> cvmx_stx1_int_reg [label="spx1"];
  102. * cvmx_asx0_int_reg [label="ASXX_INT_REG(0)|<txpsh>txpsh|<txpop>txpop|<ovrflw>ovrflw"];
  103. * cvmx_npi_rsl_int_blocks:asx0:e -> cvmx_asx0_int_reg [label="asx0"];
  104. * cvmx_asx1_int_reg [label="ASXX_INT_REG(1)|<txpsh>txpsh|<txpop>txpop|<ovrflw>ovrflw"];
  105. * cvmx_npi_rsl_int_blocks:asx1:e -> cvmx_asx1_int_reg [label="asx1"];
  106. * cvmx_pko_reg_error [label="PKO_REG_ERROR|<parity>parity|<doorbell>doorbell"];
  107. * cvmx_npi_rsl_int_blocks:pko:e -> cvmx_pko_reg_error [label="pko"];
  108. * cvmx_tim_reg_error [label="TIM_REG_ERROR|<mask>mask"];
  109. * cvmx_npi_rsl_int_blocks:tim:e -> cvmx_tim_reg_error [label="tim"];
  110. * cvmx_key_int_sum [label="KEY_INT_SUM|<ked0_sbe>ked0_sbe|<ked0_dbe>ked0_dbe|<ked1_sbe>ked1_sbe|<ked1_dbe>ked1_dbe"];
  111. * cvmx_npi_rsl_int_blocks:key:e -> cvmx_key_int_sum [label="key"];
  112. * cvmx_mio_boot_err [label="MIO_BOOT_ERR|<adr_err>adr_err|<wait_err>wait_err"];
  113. * cvmx_npi_rsl_int_blocks:mio:e -> cvmx_mio_boot_err [label="mio"];
  114. * cvmx_pip_int_reg [label="PIP_INT_REG|<prtnxa>prtnxa|<badtag>badtag|<skprunt>skprunt|<todoovr>todoovr|<feperr>feperr|<beperr>beperr"];
  115. * cvmx_npi_rsl_int_blocks:pip:e -> cvmx_pip_int_reg [label="pip"];
  116. * cvmx_fpa_int_sum [label="FPA_INT_SUM|<fed0_sbe>fed0_sbe|<fed0_dbe>fed0_dbe|<fed1_sbe>fed1_sbe|<fed1_dbe>fed1_dbe|<q0_und>q0_und|<q0_coff>q0_coff|<q0_perr>q0_perr|<q1_und>q1_und|<q1_coff>q1_coff|<q1_perr>q1_perr|<q2_und>q2_und|<q2_coff>q2_coff|<q2_perr>q2_perr|<q3_und>q3_und|<q3_coff>q3_coff|<q3_perr>q3_perr|<q4_und>q4_und|<q4_coff>q4_coff|<q4_perr>q4_perr|<q5_und>q5_und|<q5_coff>q5_coff|<q5_perr>q5_perr|<q6_und>q6_und|<q6_coff>q6_coff|<q6_perr>q6_perr|<q7_und>q7_und|<q7_coff>q7_coff|<q7_perr>q7_perr"];
  117. * cvmx_npi_rsl_int_blocks:fpa:e -> cvmx_fpa_int_sum [label="fpa"];
  118. * cvmx_lmc0_mem_cfg0 [label="LMCX_MEM_CFG0(0)|<sec_err>sec_err|<ded_err>ded_err"];
  119. * cvmx_npi_rsl_int_blocks:lmc:e -> cvmx_lmc0_mem_cfg0 [label="lmc"];
  120. * cvmx_dfa_err [label="DFA_ERR|<cp2sbe>cp2sbe|<cp2dbe>cp2dbe|<dtesbe>dtesbe|<dtedbe>dtedbe|<dteperr>dteperr|<cp2perr>cp2perr|<dblovf>dblovf"];
  121. * cvmx_npi_rsl_int_blocks:dfa:e -> cvmx_dfa_err [label="dfa"];
  122. * cvmx_iob_int_sum [label="IOB_INT_SUM|<np_sop>np_sop|<np_eop>np_eop|<p_sop>p_sop|<p_eop>p_eop"];
  123. * cvmx_npi_rsl_int_blocks:iob:e -> cvmx_iob_int_sum [label="iob"];
  124. * cvmx_zip_error [label="ZIP_ERROR|<doorbell>doorbell"];
  125. * cvmx_npi_rsl_int_blocks:zip:e -> cvmx_zip_error [label="zip"];
  126. * cvmx_gmx0_bad_reg -> cvmx_gmx0_rx0_int_reg [style=invis];
  127. * cvmx_gmx0_rx0_int_reg -> cvmx_gmx0_rx1_int_reg [style=invis];
  128. * cvmx_gmx0_rx1_int_reg -> cvmx_gmx0_rx2_int_reg [style=invis];
  129. * cvmx_gmx0_rx2_int_reg -> cvmx_gmx0_rx3_int_reg [style=invis];
  130. * cvmx_gmx0_rx3_int_reg -> cvmx_gmx0_tx_int_reg [style=invis];
  131. * cvmx_gmx1_bad_reg -> cvmx_gmx1_rx0_int_reg [style=invis];
  132. * cvmx_gmx1_rx0_int_reg -> cvmx_gmx1_rx1_int_reg [style=invis];
  133. * cvmx_gmx1_rx1_int_reg -> cvmx_gmx1_rx2_int_reg [style=invis];
  134. * cvmx_gmx1_rx2_int_reg -> cvmx_gmx1_rx3_int_reg [style=invis];
  135. * cvmx_gmx1_rx3_int_reg -> cvmx_gmx1_tx_int_reg [style=invis];
  136. * cvmx_spx0_int_reg -> cvmx_stx0_int_reg [style=invis];
  137. * cvmx_spx1_int_reg -> cvmx_stx1_int_reg [style=invis];
  138. * cvmx_root:root:e -> cvmx_npi_rsl_int_blocks [label="root"];
  139. * }
  140. * @enddot
  141. */
  142. #ifdef CVMX_BUILD_FOR_LINUX_KERNEL
  143. #include <asm/octeon/cvmx.h>
  144. #include <asm/octeon/cvmx-error.h>
  145. #include <asm/octeon/cvmx-error-custom.h>
  146. #include <asm/octeon/cvmx-csr-typedefs.h>
  147. #else
  148. #include "cvmx.h"
  149. #include "cvmx-error.h"
  150. #include "cvmx-error-custom.h"
  151. #endif
  152. int cvmx_error_initialize_cn38xx(void);
  153. int cvmx_error_initialize_cn38xx(void)
  154. {
  155. cvmx_error_info_t info;
  156. int fail = 0;
  157. /* CVMX_CIU_INTX_SUM0(0) */
  158. /* CVMX_CIU_INT_SUM1 */
  159. /* CVMX_NPI_RSL_INT_BLOCKS */
  160. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  161. info.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  162. info.status_mask = 0;
  163. info.enable_addr = 0;
  164. info.enable_mask = 0;
  165. info.flags = 0;
  166. info.group = CVMX_ERROR_GROUP_INTERNAL;
  167. info.group_index = 0;
  168. info.parent.reg_type = __CVMX_ERROR_REGISTER_NONE;
  169. info.parent.status_addr = 0;
  170. info.parent.status_mask = 0;
  171. info.func = __cvmx_error_decode;
  172. info.user_info = 0;
  173. fail |= cvmx_error_add(&info);
  174. /* CVMX_L2D_ERR */
  175. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  176. info.status_addr = CVMX_L2D_ERR;
  177. info.status_mask = 1ull<<3 /* sec_err */;
  178. info.enable_addr = CVMX_L2D_ERR;
  179. info.enable_mask = 1ull<<1 /* sec_intena */;
  180. info.flags = CVMX_ERROR_FLAGS_ECC_SINGLE_BIT;
  181. info.group = CVMX_ERROR_GROUP_INTERNAL;
  182. info.group_index = 0;
  183. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  184. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  185. info.parent.status_mask = 1ull<<16 /* l2c */;
  186. info.func = __cvmx_error_handle_l2d_err_sec_err;
  187. info.user_info = (long)
  188. "ERROR L2D_ERR[SEC_ERR]: L2D Single Error corrected (SEC)\n";
  189. fail |= cvmx_error_add(&info);
  190. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  191. info.status_addr = CVMX_L2D_ERR;
  192. info.status_mask = 1ull<<4 /* ded_err */;
  193. info.enable_addr = CVMX_L2D_ERR;
  194. info.enable_mask = 1ull<<2 /* ded_intena */;
  195. info.flags = 0;
  196. info.group = CVMX_ERROR_GROUP_INTERNAL;
  197. info.group_index = 0;
  198. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  199. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  200. info.parent.status_mask = 1ull<<16 /* l2c */;
  201. info.func = __cvmx_error_handle_l2d_err_ded_err;
  202. info.user_info = (long)
  203. "ERROR L2D_ERR[DED_ERR]: L2D Double Error detected (DED)\n";
  204. fail |= cvmx_error_add(&info);
  205. /* CVMX_L2T_ERR */
  206. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  207. info.status_addr = CVMX_L2T_ERR;
  208. info.status_mask = 1ull<<3 /* sec_err */;
  209. info.enable_addr = CVMX_L2T_ERR;
  210. info.enable_mask = 1ull<<1 /* sec_intena */;
  211. info.flags = CVMX_ERROR_FLAGS_ECC_SINGLE_BIT;
  212. info.group = CVMX_ERROR_GROUP_INTERNAL;
  213. info.group_index = 0;
  214. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  215. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  216. info.parent.status_mask = 1ull<<16 /* l2c */;
  217. info.func = __cvmx_error_handle_l2t_err_sec_err;
  218. info.user_info = (long)
  219. "ERROR L2T_ERR[SEC_ERR]: L2T Single Bit Error corrected (SEC)\n"
  220. " During every L2 Tag Probe, all 8 sets Tag's (at a\n"
  221. " given index) are checked for single bit errors(SBEs).\n"
  222. " This bit is set if ANY of the 8 sets contains an SBE.\n"
  223. " SBEs are auto corrected in HW and generate an\n"
  224. " interrupt(if enabled).\n";
  225. fail |= cvmx_error_add(&info);
  226. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  227. info.status_addr = CVMX_L2T_ERR;
  228. info.status_mask = 1ull<<4 /* ded_err */;
  229. info.enable_addr = CVMX_L2T_ERR;
  230. info.enable_mask = 1ull<<2 /* ded_intena */;
  231. info.flags = 0;
  232. info.group = CVMX_ERROR_GROUP_INTERNAL;
  233. info.group_index = 0;
  234. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  235. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  236. info.parent.status_mask = 1ull<<16 /* l2c */;
  237. info.func = __cvmx_error_handle_l2t_err_ded_err;
  238. info.user_info = (long)
  239. "ERROR L2T_ERR[DED_ERR]: L2T Double Bit Error detected (DED)\n"
  240. " During every L2 Tag Probe, all 8 sets Tag's (at a\n"
  241. " given index) are checked for double bit errors(DBEs).\n"
  242. " This bit is set if ANY of the 8 sets contains a DBE.\n"
  243. " DBEs also generated an interrupt(if enabled).\n";
  244. fail |= cvmx_error_add(&info);
  245. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  246. info.status_addr = CVMX_L2T_ERR;
  247. info.status_mask = 1ull<<24 /* lckerr */;
  248. info.enable_addr = CVMX_L2T_ERR;
  249. info.enable_mask = 1ull<<25 /* lck_intena */;
  250. info.flags = 0;
  251. info.group = CVMX_ERROR_GROUP_INTERNAL;
  252. info.group_index = 0;
  253. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  254. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  255. info.parent.status_mask = 1ull<<16 /* l2c */;
  256. info.func = __cvmx_error_handle_l2t_err_lckerr;
  257. info.user_info = (long)
  258. "ERROR L2T_ERR[LCKERR]: SW attempted to LOCK DOWN the last available set of\n"
  259. " the INDEX (which is ignored by HW - but reported to SW).\n"
  260. " The LDD(L1 load-miss) for the LOCK operation is completed\n"
  261. " successfully, however the address is NOT locked.\n"
  262. " NOTE: 'Available' sets takes the L2C_SPAR*[UMSK*]\n"
  263. " into account. For example, if diagnostic PPx has\n"
  264. " UMSKx defined to only use SETs [1:0], and SET1 had\n"
  265. " been previously LOCKED, then an attempt to LOCK the\n"
  266. " last available SET0 would result in a LCKERR. (This\n"
  267. " is to ensure that at least 1 SET at each INDEX is\n"
  268. " not LOCKED for general use by other PPs).\n";
  269. fail |= cvmx_error_add(&info);
  270. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  271. info.status_addr = CVMX_L2T_ERR;
  272. info.status_mask = 1ull<<26 /* lckerr2 */;
  273. info.enable_addr = CVMX_L2T_ERR;
  274. info.enable_mask = 1ull<<27 /* lck_intena2 */;
  275. info.flags = 0;
  276. info.group = CVMX_ERROR_GROUP_INTERNAL;
  277. info.group_index = 0;
  278. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  279. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  280. info.parent.status_mask = 1ull<<16 /* l2c */;
  281. info.func = __cvmx_error_handle_l2t_err_lckerr2;
  282. info.user_info = (long)
  283. "ERROR L2T_ERR[LCKERR2]: HW detected a case where a Rd/Wr Miss from PP#n\n"
  284. " could not find an available/unlocked set (for\n"
  285. " replacement).\n"
  286. " Most likely, this is a result of SW mixing SET\n"
  287. " PARTITIONING with ADDRESS LOCKING. If SW allows\n"
  288. " another PP to LOCKDOWN all SETs available to PP#n,\n"
  289. " then a Rd/Wr Miss from PP#n will be unable\n"
  290. " to determine a 'valid' replacement set (since LOCKED\n"
  291. " addresses should NEVER be replaced).\n"
  292. " If such an event occurs, the HW will select the smallest\n"
  293. " available SET(specified by UMSK'x)' as the replacement\n"
  294. " set, and the address is unlocked.\n";
  295. fail |= cvmx_error_add(&info);
  296. /* CVMX_NPI_INT_SUM */
  297. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  298. info.status_addr = CVMX_NPI_INT_SUM;
  299. info.status_mask = 1ull<<0 /* rml_rto */;
  300. info.enable_addr = CVMX_NPI_INT_ENB;
  301. info.enable_mask = 1ull<<0 /* rml_rto */;
  302. info.flags = 0;
  303. info.group = CVMX_ERROR_GROUP_PCI;
  304. info.group_index = 0;
  305. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  306. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  307. info.parent.status_mask = 1ull<<3 /* npi */;
  308. info.func = __cvmx_error_display;
  309. info.user_info = (long)
  310. "ERROR NPI_INT_SUM[RML_RTO]: Set '1' when the RML does not receive read data\n"
  311. " back from a RSL after sending a read command to\n"
  312. " a RSL.\n";
  313. fail |= cvmx_error_add(&info);
  314. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  315. info.status_addr = CVMX_NPI_INT_SUM;
  316. info.status_mask = 1ull<<1 /* rml_wto */;
  317. info.enable_addr = CVMX_NPI_INT_ENB;
  318. info.enable_mask = 1ull<<1 /* rml_wto */;
  319. info.flags = 0;
  320. info.group = CVMX_ERROR_GROUP_PCI;
  321. info.group_index = 0;
  322. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  323. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  324. info.parent.status_mask = 1ull<<3 /* npi */;
  325. info.func = __cvmx_error_display;
  326. info.user_info = (long)
  327. "ERROR NPI_INT_SUM[RML_WTO]: Set '1' when the RML does not receive a commit\n"
  328. " back from a RSL after sending a write command to\n"
  329. " a RSL.\n";
  330. fail |= cvmx_error_add(&info);
  331. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  332. info.status_addr = CVMX_NPI_INT_SUM;
  333. info.status_mask = 1ull<<3 /* po0_2sml */;
  334. info.enable_addr = CVMX_NPI_INT_ENB;
  335. info.enable_mask = 1ull<<3 /* po0_2sml */;
  336. info.flags = 0;
  337. info.group = CVMX_ERROR_GROUP_PCI;
  338. info.group_index = 0;
  339. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  340. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  341. info.parent.status_mask = 1ull<<3 /* npi */;
  342. info.func = __cvmx_error_display;
  343. info.user_info = (long)
  344. "ERROR NPI_INT_SUM[PO0_2SML]: The packet being sent out on Port0 is smaller\n"
  345. " than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field.\n";
  346. fail |= cvmx_error_add(&info);
  347. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  348. info.status_addr = CVMX_NPI_INT_SUM;
  349. info.status_mask = 1ull<<4 /* po1_2sml */;
  350. info.enable_addr = CVMX_NPI_INT_ENB;
  351. info.enable_mask = 1ull<<4 /* po1_2sml */;
  352. info.flags = 0;
  353. info.group = CVMX_ERROR_GROUP_PCI;
  354. info.group_index = 0;
  355. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  356. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  357. info.parent.status_mask = 1ull<<3 /* npi */;
  358. info.func = __cvmx_error_display;
  359. info.user_info = (long)
  360. "ERROR NPI_INT_SUM[PO1_2SML]: The packet being sent out on Port1 is smaller\n"
  361. " than the NPI_BUFF_SIZE_OUTPUT1[ISIZE] field.\n";
  362. fail |= cvmx_error_add(&info);
  363. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  364. info.status_addr = CVMX_NPI_INT_SUM;
  365. info.status_mask = 1ull<<5 /* po2_2sml */;
  366. info.enable_addr = CVMX_NPI_INT_ENB;
  367. info.enable_mask = 1ull<<5 /* po2_2sml */;
  368. info.flags = 0;
  369. info.group = CVMX_ERROR_GROUP_PCI;
  370. info.group_index = 0;
  371. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  372. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  373. info.parent.status_mask = 1ull<<3 /* npi */;
  374. info.func = __cvmx_error_display;
  375. info.user_info = (long)
  376. "ERROR NPI_INT_SUM[PO2_2SML]: The packet being sent out on Port2 is smaller\n"
  377. " than the NPI_BUFF_SIZE_OUTPUT2[ISIZE] field.\n";
  378. fail |= cvmx_error_add(&info);
  379. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  380. info.status_addr = CVMX_NPI_INT_SUM;
  381. info.status_mask = 1ull<<6 /* po3_2sml */;
  382. info.enable_addr = CVMX_NPI_INT_ENB;
  383. info.enable_mask = 1ull<<6 /* po3_2sml */;
  384. info.flags = 0;
  385. info.group = CVMX_ERROR_GROUP_PCI;
  386. info.group_index = 0;
  387. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  388. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  389. info.parent.status_mask = 1ull<<3 /* npi */;
  390. info.func = __cvmx_error_display;
  391. info.user_info = (long)
  392. "ERROR NPI_INT_SUM[PO3_2SML]: The packet being sent out on Port3 is smaller\n"
  393. " than the NPI_BUFF_SIZE_OUTPUT3[ISIZE] field.\n";
  394. fail |= cvmx_error_add(&info);
  395. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  396. info.status_addr = CVMX_NPI_INT_SUM;
  397. info.status_mask = 1ull<<7 /* i0_rtout */;
  398. info.enable_addr = CVMX_NPI_INT_ENB;
  399. info.enable_mask = 1ull<<7 /* i0_rtout */;
  400. info.flags = 0;
  401. info.group = CVMX_ERROR_GROUP_PCI;
  402. info.group_index = 0;
  403. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  404. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  405. info.parent.status_mask = 1ull<<3 /* npi */;
  406. info.func = __cvmx_error_display;
  407. info.user_info = (long)
  408. "ERROR NPI_INT_SUM[I0_RTOUT]: Port-0 had a read timeout while attempting to\n"
  409. " read instructions.\n";
  410. fail |= cvmx_error_add(&info);
  411. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  412. info.status_addr = CVMX_NPI_INT_SUM;
  413. info.status_mask = 1ull<<8 /* i1_rtout */;
  414. info.enable_addr = CVMX_NPI_INT_ENB;
  415. info.enable_mask = 1ull<<8 /* i1_rtout */;
  416. info.flags = 0;
  417. info.group = CVMX_ERROR_GROUP_PCI;
  418. info.group_index = 0;
  419. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  420. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  421. info.parent.status_mask = 1ull<<3 /* npi */;
  422. info.func = __cvmx_error_display;
  423. info.user_info = (long)
  424. "ERROR NPI_INT_SUM[I1_RTOUT]: Port-1 had a read timeout while attempting to\n"
  425. " read instructions.\n";
  426. fail |= cvmx_error_add(&info);
  427. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  428. info.status_addr = CVMX_NPI_INT_SUM;
  429. info.status_mask = 1ull<<9 /* i2_rtout */;
  430. info.enable_addr = CVMX_NPI_INT_ENB;
  431. info.enable_mask = 1ull<<9 /* i2_rtout */;
  432. info.flags = 0;
  433. info.group = CVMX_ERROR_GROUP_PCI;
  434. info.group_index = 0;
  435. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  436. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  437. info.parent.status_mask = 1ull<<3 /* npi */;
  438. info.func = __cvmx_error_display;
  439. info.user_info = (long)
  440. "ERROR NPI_INT_SUM[I2_RTOUT]: Port-2 had a read timeout while attempting to\n"
  441. " read instructions.\n";
  442. fail |= cvmx_error_add(&info);
  443. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  444. info.status_addr = CVMX_NPI_INT_SUM;
  445. info.status_mask = 1ull<<10 /* i3_rtout */;
  446. info.enable_addr = CVMX_NPI_INT_ENB;
  447. info.enable_mask = 1ull<<10 /* i3_rtout */;
  448. info.flags = 0;
  449. info.group = CVMX_ERROR_GROUP_PCI;
  450. info.group_index = 0;
  451. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  452. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  453. info.parent.status_mask = 1ull<<3 /* npi */;
  454. info.func = __cvmx_error_display;
  455. info.user_info = (long)
  456. "ERROR NPI_INT_SUM[I3_RTOUT]: Port-3 had a read timeout while attempting to\n"
  457. " read instructions.\n";
  458. fail |= cvmx_error_add(&info);
  459. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  460. info.status_addr = CVMX_NPI_INT_SUM;
  461. info.status_mask = 1ull<<11 /* i0_overf */;
  462. info.enable_addr = CVMX_NPI_INT_ENB;
  463. info.enable_mask = 1ull<<11 /* i0_overf */;
  464. info.flags = 0;
  465. info.group = CVMX_ERROR_GROUP_PCI;
  466. info.group_index = 0;
  467. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  468. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  469. info.parent.status_mask = 1ull<<3 /* npi */;
  470. info.func = __cvmx_error_display;
  471. info.user_info = (long)
  472. "ERROR NPI_INT_SUM[I0_OVERF]: Port-0 had a doorbell overflow. Bit[31] of the\n"
  473. " doorbell count was set.\n";
  474. fail |= cvmx_error_add(&info);
  475. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  476. info.status_addr = CVMX_NPI_INT_SUM;
  477. info.status_mask = 1ull<<12 /* i1_overf */;
  478. info.enable_addr = CVMX_NPI_INT_ENB;
  479. info.enable_mask = 1ull<<12 /* i1_overf */;
  480. info.flags = 0;
  481. info.group = CVMX_ERROR_GROUP_PCI;
  482. info.group_index = 0;
  483. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  484. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  485. info.parent.status_mask = 1ull<<3 /* npi */;
  486. info.func = __cvmx_error_display;
  487. info.user_info = (long)
  488. "ERROR NPI_INT_SUM[I1_OVERF]: Port-1 had a doorbell overflow. Bit[31] of the\n"
  489. " doorbell count was set.\n";
  490. fail |= cvmx_error_add(&info);
  491. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  492. info.status_addr = CVMX_NPI_INT_SUM;
  493. info.status_mask = 1ull<<13 /* i2_overf */;
  494. info.enable_addr = CVMX_NPI_INT_ENB;
  495. info.enable_mask = 1ull<<13 /* i2_overf */;
  496. info.flags = 0;
  497. info.group = CVMX_ERROR_GROUP_PCI;
  498. info.group_index = 0;
  499. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  500. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  501. info.parent.status_mask = 1ull<<3 /* npi */;
  502. info.func = __cvmx_error_display;
  503. info.user_info = (long)
  504. "ERROR NPI_INT_SUM[I2_OVERF]: Port-2 had a doorbell overflow. Bit[31] of the\n"
  505. " doorbell count was set.\n";
  506. fail |= cvmx_error_add(&info);
  507. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  508. info.status_addr = CVMX_NPI_INT_SUM;
  509. info.status_mask = 1ull<<14 /* i3_overf */;
  510. info.enable_addr = CVMX_NPI_INT_ENB;
  511. info.enable_mask = 1ull<<14 /* i3_overf */;
  512. info.flags = 0;
  513. info.group = CVMX_ERROR_GROUP_PCI;
  514. info.group_index = 0;
  515. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  516. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  517. info.parent.status_mask = 1ull<<3 /* npi */;
  518. info.func = __cvmx_error_display;
  519. info.user_info = (long)
  520. "ERROR NPI_INT_SUM[I3_OVERF]: Port-3 had a doorbell overflow. Bit[31] of the\n"
  521. " doorbell count was set.\n";
  522. fail |= cvmx_error_add(&info);
  523. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  524. info.status_addr = CVMX_NPI_INT_SUM;
  525. info.status_mask = 1ull<<15 /* p0_rtout */;
  526. info.enable_addr = CVMX_NPI_INT_ENB;
  527. info.enable_mask = 1ull<<15 /* p0_rtout */;
  528. info.flags = 0;
  529. info.group = CVMX_ERROR_GROUP_PCI;
  530. info.group_index = 0;
  531. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  532. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  533. info.parent.status_mask = 1ull<<3 /* npi */;
  534. info.func = __cvmx_error_display;
  535. info.user_info = (long)
  536. "ERROR NPI_INT_SUM[P0_RTOUT]: Port-0 had a read timeout while attempting to\n"
  537. " read packet data.\n";
  538. fail |= cvmx_error_add(&info);
  539. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  540. info.status_addr = CVMX_NPI_INT_SUM;
  541. info.status_mask = 1ull<<16 /* p1_rtout */;
  542. info.enable_addr = CVMX_NPI_INT_ENB;
  543. info.enable_mask = 1ull<<16 /* p1_rtout */;
  544. info.flags = 0;
  545. info.group = CVMX_ERROR_GROUP_PCI;
  546. info.group_index = 0;
  547. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  548. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  549. info.parent.status_mask = 1ull<<3 /* npi */;
  550. info.func = __cvmx_error_display;
  551. info.user_info = (long)
  552. "ERROR NPI_INT_SUM[P1_RTOUT]: Port-1 had a read timeout while attempting to\n"
  553. " read packet data.\n";
  554. fail |= cvmx_error_add(&info);
  555. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  556. info.status_addr = CVMX_NPI_INT_SUM;
  557. info.status_mask = 1ull<<17 /* p2_rtout */;
  558. info.enable_addr = CVMX_NPI_INT_ENB;
  559. info.enable_mask = 1ull<<17 /* p2_rtout */;
  560. info.flags = 0;
  561. info.group = CVMX_ERROR_GROUP_PCI;
  562. info.group_index = 0;
  563. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  564. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  565. info.parent.status_mask = 1ull<<3 /* npi */;
  566. info.func = __cvmx_error_display;
  567. info.user_info = (long)
  568. "ERROR NPI_INT_SUM[P2_RTOUT]: Port-2 had a read timeout while attempting to\n"
  569. " read packet data.\n";
  570. fail |= cvmx_error_add(&info);
  571. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  572. info.status_addr = CVMX_NPI_INT_SUM;
  573. info.status_mask = 1ull<<18 /* p3_rtout */;
  574. info.enable_addr = CVMX_NPI_INT_ENB;
  575. info.enable_mask = 1ull<<18 /* p3_rtout */;
  576. info.flags = 0;
  577. info.group = CVMX_ERROR_GROUP_PCI;
  578. info.group_index = 0;
  579. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  580. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  581. info.parent.status_mask = 1ull<<3 /* npi */;
  582. info.func = __cvmx_error_display;
  583. info.user_info = (long)
  584. "ERROR NPI_INT_SUM[P3_RTOUT]: Port-3 had a read timeout while attempting to\n"
  585. " read packet data.\n";
  586. fail |= cvmx_error_add(&info);
  587. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  588. info.status_addr = CVMX_NPI_INT_SUM;
  589. info.status_mask = 1ull<<19 /* p0_perr */;
  590. info.enable_addr = CVMX_NPI_INT_ENB;
  591. info.enable_mask = 1ull<<19 /* p0_perr */;
  592. info.flags = 0;
  593. info.group = CVMX_ERROR_GROUP_PCI;
  594. info.group_index = 0;
  595. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  596. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  597. info.parent.status_mask = 1ull<<3 /* npi */;
  598. info.func = __cvmx_error_display;
  599. info.user_info = (long)
  600. "ERROR NPI_INT_SUM[P0_PERR]: If a parity error occured on the port's packet\n"
  601. " data this bit may be set.\n";
  602. fail |= cvmx_error_add(&info);
  603. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  604. info.status_addr = CVMX_NPI_INT_SUM;
  605. info.status_mask = 1ull<<20 /* p1_perr */;
  606. info.enable_addr = CVMX_NPI_INT_ENB;
  607. info.enable_mask = 1ull<<20 /* p1_perr */;
  608. info.flags = 0;
  609. info.group = CVMX_ERROR_GROUP_PCI;
  610. info.group_index = 0;
  611. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  612. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  613. info.parent.status_mask = 1ull<<3 /* npi */;
  614. info.func = __cvmx_error_display;
  615. info.user_info = (long)
  616. "ERROR NPI_INT_SUM[P1_PERR]: If a parity error occured on the port's packet\n"
  617. " data this bit may be set.\n";
  618. fail |= cvmx_error_add(&info);
  619. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  620. info.status_addr = CVMX_NPI_INT_SUM;
  621. info.status_mask = 1ull<<21 /* p2_perr */;
  622. info.enable_addr = CVMX_NPI_INT_ENB;
  623. info.enable_mask = 1ull<<21 /* p2_perr */;
  624. info.flags = 0;
  625. info.group = CVMX_ERROR_GROUP_PCI;
  626. info.group_index = 0;
  627. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  628. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  629. info.parent.status_mask = 1ull<<3 /* npi */;
  630. info.func = __cvmx_error_display;
  631. info.user_info = (long)
  632. "ERROR NPI_INT_SUM[P2_PERR]: If a parity error occured on the port's packet\n"
  633. " data this bit may be set.\n";
  634. fail |= cvmx_error_add(&info);
  635. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  636. info.status_addr = CVMX_NPI_INT_SUM;
  637. info.status_mask = 1ull<<22 /* p3_perr */;
  638. info.enable_addr = CVMX_NPI_INT_ENB;
  639. info.enable_mask = 1ull<<22 /* p3_perr */;
  640. info.flags = 0;
  641. info.group = CVMX_ERROR_GROUP_PCI;
  642. info.group_index = 0;
  643. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  644. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  645. info.parent.status_mask = 1ull<<3 /* npi */;
  646. info.func = __cvmx_error_display;
  647. info.user_info = (long)
  648. "ERROR NPI_INT_SUM[P3_PERR]: If a parity error occured on the port's packet\n"
  649. " data this bit may be set.\n";
  650. fail |= cvmx_error_add(&info);
  651. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  652. info.status_addr = CVMX_NPI_INT_SUM;
  653. info.status_mask = 1ull<<23 /* g0_rtout */;
  654. info.enable_addr = CVMX_NPI_INT_ENB;
  655. info.enable_mask = 1ull<<23 /* g0_rtout */;
  656. info.flags = 0;
  657. info.group = CVMX_ERROR_GROUP_PCI;
  658. info.group_index = 0;
  659. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  660. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  661. info.parent.status_mask = 1ull<<3 /* npi */;
  662. info.func = __cvmx_error_display;
  663. info.user_info = (long)
  664. "ERROR NPI_INT_SUM[G0_RTOUT]: Port-0 had a read timeout while attempting to\n"
  665. " read a gather list.\n";
  666. fail |= cvmx_error_add(&info);
  667. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  668. info.status_addr = CVMX_NPI_INT_SUM;
  669. info.status_mask = 1ull<<24 /* g1_rtout */;
  670. info.enable_addr = CVMX_NPI_INT_ENB;
  671. info.enable_mask = 1ull<<24 /* g1_rtout */;
  672. info.flags = 0;
  673. info.group = CVMX_ERROR_GROUP_PCI;
  674. info.group_index = 0;
  675. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  676. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  677. info.parent.status_mask = 1ull<<3 /* npi */;
  678. info.func = __cvmx_error_display;
  679. info.user_info = (long)
  680. "ERROR NPI_INT_SUM[G1_RTOUT]: Port-1 had a read timeout while attempting to\n"
  681. " read a gather list.\n";
  682. fail |= cvmx_error_add(&info);
  683. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  684. info.status_addr = CVMX_NPI_INT_SUM;
  685. info.status_mask = 1ull<<25 /* g2_rtout */;
  686. info.enable_addr = CVMX_NPI_INT_ENB;
  687. info.enable_mask = 1ull<<25 /* g2_rtout */;
  688. info.flags = 0;
  689. info.group = CVMX_ERROR_GROUP_PCI;
  690. info.group_index = 0;
  691. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  692. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  693. info.parent.status_mask = 1ull<<3 /* npi */;
  694. info.func = __cvmx_error_display;
  695. info.user_info = (long)
  696. "ERROR NPI_INT_SUM[G2_RTOUT]: Port-2 had a read timeout while attempting to\n"
  697. " read a gather list.\n";
  698. fail |= cvmx_error_add(&info);
  699. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  700. info.status_addr = CVMX_NPI_INT_SUM;
  701. info.status_mask = 1ull<<26 /* g3_rtout */;
  702. info.enable_addr = CVMX_NPI_INT_ENB;
  703. info.enable_mask = 1ull<<26 /* g3_rtout */;
  704. info.flags = 0;
  705. info.group = CVMX_ERROR_GROUP_PCI;
  706. info.group_index = 0;
  707. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  708. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  709. info.parent.status_mask = 1ull<<3 /* npi */;
  710. info.func = __cvmx_error_display;
  711. info.user_info = (long)
  712. "ERROR NPI_INT_SUM[G3_RTOUT]: Port-3 had a read timeout while attempting to\n"
  713. " read a gather list.\n";
  714. fail |= cvmx_error_add(&info);
  715. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  716. info.status_addr = CVMX_NPI_INT_SUM;
  717. info.status_mask = 1ull<<27 /* p0_pperr */;
  718. info.enable_addr = CVMX_NPI_INT_ENB;
  719. info.enable_mask = 1ull<<27 /* p0_pperr */;
  720. info.flags = 0;
  721. info.group = CVMX_ERROR_GROUP_PCI;
  722. info.group_index = 0;
  723. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  724. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  725. info.parent.status_mask = 1ull<<3 /* npi */;
  726. info.func = __cvmx_error_display;
  727. info.user_info = (long)
  728. "ERROR NPI_INT_SUM[P0_PPERR]: If a parity error occured on the port DATA/INFO\n"
  729. " pointer-pair, this bit may be set.\n";
  730. fail |= cvmx_error_add(&info);
  731. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  732. info.status_addr = CVMX_NPI_INT_SUM;
  733. info.status_mask = 1ull<<28 /* p1_pperr */;
  734. info.enable_addr = CVMX_NPI_INT_ENB;
  735. info.enable_mask = 1ull<<28 /* p1_pperr */;
  736. info.flags = 0;
  737. info.group = CVMX_ERROR_GROUP_PCI;
  738. info.group_index = 0;
  739. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  740. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  741. info.parent.status_mask = 1ull<<3 /* npi */;
  742. info.func = __cvmx_error_display;
  743. info.user_info = (long)
  744. "ERROR NPI_INT_SUM[P1_PPERR]: If a parity error occured on the port DATA/INFO\n"
  745. " pointer-pair, this bit may be set.\n";
  746. fail |= cvmx_error_add(&info);
  747. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  748. info.status_addr = CVMX_NPI_INT_SUM;
  749. info.status_mask = 1ull<<29 /* p2_pperr */;
  750. info.enable_addr = CVMX_NPI_INT_ENB;
  751. info.enable_mask = 1ull<<29 /* p2_pperr */;
  752. info.flags = 0;
  753. info.group = CVMX_ERROR_GROUP_PCI;
  754. info.group_index = 0;
  755. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  756. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  757. info.parent.status_mask = 1ull<<3 /* npi */;
  758. info.func = __cvmx_error_display;
  759. info.user_info = (long)
  760. "ERROR NPI_INT_SUM[P2_PPERR]: If a parity error occured on the port DATA/INFO\n"
  761. " pointer-pair, this bit may be set.\n";
  762. fail |= cvmx_error_add(&info);
  763. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  764. info.status_addr = CVMX_NPI_INT_SUM;
  765. info.status_mask = 1ull<<30 /* p3_pperr */;
  766. info.enable_addr = CVMX_NPI_INT_ENB;
  767. info.enable_mask = 1ull<<30 /* p3_pperr */;
  768. info.flags = 0;
  769. info.group = CVMX_ERROR_GROUP_PCI;
  770. info.group_index = 0;
  771. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  772. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  773. info.parent.status_mask = 1ull<<3 /* npi */;
  774. info.func = __cvmx_error_display;
  775. info.user_info = (long)
  776. "ERROR NPI_INT_SUM[P3_PPERR]: If a parity error occured on the port DATA/INFO\n"
  777. " pointer-pair, this bit may be set.\n";
  778. fail |= cvmx_error_add(&info);
  779. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  780. info.status_addr = CVMX_NPI_INT_SUM;
  781. info.status_mask = 1ull<<31 /* p0_ptout */;
  782. info.enable_addr = CVMX_NPI_INT_ENB;
  783. info.enable_mask = 1ull<<31 /* p0_ptout */;
  784. info.flags = 0;
  785. info.group = CVMX_ERROR_GROUP_PCI;
  786. info.group_index = 0;
  787. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  788. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  789. info.parent.status_mask = 1ull<<3 /* npi */;
  790. info.func = __cvmx_error_display;
  791. info.user_info = (long)
  792. "ERROR NPI_INT_SUM[P0_PTOUT]: Port-0 output had a read timeout on a DATA/INFO\n"
  793. " pair.\n";
  794. fail |= cvmx_error_add(&info);
  795. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  796. info.status_addr = CVMX_NPI_INT_SUM;
  797. info.status_mask = 1ull<<32 /* p1_ptout */;
  798. info.enable_addr = CVMX_NPI_INT_ENB;
  799. info.enable_mask = 1ull<<32 /* p1_ptout */;
  800. info.flags = 0;
  801. info.group = CVMX_ERROR_GROUP_PCI;
  802. info.group_index = 0;
  803. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  804. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  805. info.parent.status_mask = 1ull<<3 /* npi */;
  806. info.func = __cvmx_error_display;
  807. info.user_info = (long)
  808. "ERROR NPI_INT_SUM[P1_PTOUT]: Port-1 output had a read timeout on a DATA/INFO\n"
  809. " pair.\n";
  810. fail |= cvmx_error_add(&info);
  811. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  812. info.status_addr = CVMX_NPI_INT_SUM;
  813. info.status_mask = 1ull<<33 /* p2_ptout */;
  814. info.enable_addr = CVMX_NPI_INT_ENB;
  815. info.enable_mask = 1ull<<33 /* p2_ptout */;
  816. info.flags = 0;
  817. info.group = CVMX_ERROR_GROUP_PCI;
  818. info.group_index = 0;
  819. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  820. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  821. info.parent.status_mask = 1ull<<3 /* npi */;
  822. info.func = __cvmx_error_display;
  823. info.user_info = (long)
  824. "ERROR NPI_INT_SUM[P2_PTOUT]: Port-2 output had a read timeout on a DATA/INFO\n"
  825. " pair.\n";
  826. fail |= cvmx_error_add(&info);
  827. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  828. info.status_addr = CVMX_NPI_INT_SUM;
  829. info.status_mask = 1ull<<34 /* p3_ptout */;
  830. info.enable_addr = CVMX_NPI_INT_ENB;
  831. info.enable_mask = 1ull<<34 /* p3_ptout */;
  832. info.flags = 0;
  833. info.group = CVMX_ERROR_GROUP_PCI;
  834. info.group_index = 0;
  835. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  836. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  837. info.parent.status_mask = 1ull<<3 /* npi */;
  838. info.func = __cvmx_error_display;
  839. info.user_info = (long)
  840. "ERROR NPI_INT_SUM[P3_PTOUT]: Port-3 output had a read timeout on a DATA/INFO\n"
  841. " pair.\n";
  842. fail |= cvmx_error_add(&info);
  843. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  844. info.status_addr = CVMX_NPI_INT_SUM;
  845. info.status_mask = 1ull<<35 /* i0_pperr */;
  846. info.enable_addr = CVMX_NPI_INT_ENB;
  847. info.enable_mask = 1ull<<35 /* i0_pperr */;
  848. info.flags = 0;
  849. info.group = CVMX_ERROR_GROUP_PCI;
  850. info.group_index = 0;
  851. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  852. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  853. info.parent.status_mask = 1ull<<3 /* npi */;
  854. info.func = __cvmx_error_display;
  855. info.user_info = (long)
  856. "ERROR NPI_INT_SUM[I0_PPERR]: If a parity error occured on the port's instruction\n"
  857. " this bit may be set.\n";
  858. fail |= cvmx_error_add(&info);
  859. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  860. info.status_addr = CVMX_NPI_INT_SUM;
  861. info.status_mask = 1ull<<36 /* i1_pperr */;
  862. info.enable_addr = CVMX_NPI_INT_ENB;
  863. info.enable_mask = 1ull<<36 /* i1_pperr */;
  864. info.flags = 0;
  865. info.group = CVMX_ERROR_GROUP_PCI;
  866. info.group_index = 0;
  867. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  868. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  869. info.parent.status_mask = 1ull<<3 /* npi */;
  870. info.func = __cvmx_error_display;
  871. info.user_info = (long)
  872. "ERROR NPI_INT_SUM[I1_PPERR]: If a parity error occured on the port's instruction\n"
  873. " this bit may be set.\n";
  874. fail |= cvmx_error_add(&info);
  875. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  876. info.status_addr = CVMX_NPI_INT_SUM;
  877. info.status_mask = 1ull<<37 /* i2_pperr */;
  878. info.enable_addr = CVMX_NPI_INT_ENB;
  879. info.enable_mask = 1ull<<37 /* i2_pperr */;
  880. info.flags = 0;
  881. info.group = CVMX_ERROR_GROUP_PCI;
  882. info.group_index = 0;
  883. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  884. info.parent.status_addr = CVMX_NPI_RSL_INT_BLOCKS;
  885. info.parent.status_mask = 1ull<<3 /* npi */;
  886. info.func = __cvmx_error_display;
  887. info.user_info = (long)
  888. "ERROR NPI_INT_SUM[I2_PPERR]: If a parity error occured on the port's instruction\n"
  889. " this bit may be set.\n";
  890. fail |= cvmx_error_add(&info);
  891. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  892. info.status_addr = CVMX_NPI_INT_SUM;
  893. info.status_mask = 1ull<<38 /* i3_pperr */;
  894. info.enable_addr = CVMX_NPI_INT_ENB;
  895. info.enable_mask = 1ull<<38 /* i3_pperr */;
  896. info.flags = 0;
  897. info.group = CVMX_ERROR_GROUP_PCI;
  898. info.group_index = 0;
  899. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  900. info.parent.status_addr = CVMX_NPI

Large files files are truncated, but you can click here to view the full file