PageRenderTime 40ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 1ms

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

https://bitbucket.org/freebsd/freebsd-head/
C | 1226 lines | 978 code | 59 blank | 189 comment | 0 complexity | 2599f849b6c1cecc46561fd43ec0d950 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 cn63xx.
  40. *
  41. * This file is auto generated. Do not edit.
  42. *
  43. * <hr>$Revision$<hr>
  44. *
  45. * <hr><h2>Error tree for CN63XX</h2>
  46. * @dot
  47. * digraph cn63xx
  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)|<mii>mii"];
  54. * cvmx_mix0_isr [label="MIXX_ISR(0)|<odblovf>odblovf|<idblovf>idblovf|<data_drp>data_drp|<irun>irun|<orun>orun"];
  55. * cvmx_ciu_int0_sum0:mii:e -> cvmx_mix0_isr [label="mii"];
  56. * cvmx_root:root:e -> cvmx_ciu_int0_sum0 [label="root"];
  57. * cvmx_ciu_int_sum1 [label="CIU_INT_SUM1|<mii1>mii1|<nand>nand"];
  58. * cvmx_mix1_isr [label="MIXX_ISR(1)|<odblovf>odblovf|<idblovf>idblovf|<data_drp>data_drp|<irun>irun|<orun>orun"];
  59. * cvmx_ciu_int_sum1:mii1:e -> cvmx_mix1_isr [label="mii1"];
  60. * cvmx_ndf_int [label="NDF_INT|<wdog>wdog|<sm_bad>sm_bad|<ecc_1bit>ecc_1bit|<ecc_mult>ecc_mult|<ovrf>ovrf"];
  61. * cvmx_ciu_int_sum1:nand:e -> cvmx_ndf_int [label="nand"];
  62. * cvmx_root:root:e -> cvmx_ciu_int_sum1 [label="root"];
  63. * cvmx_ciu_block_int [label="CIU_BLOCK_INT|<l2c>l2c|<ipd>ipd|<pow>pow|<rad>rad|<asxpcs0>asxpcs0|<pip>pip|<pko>pko|<pem0>pem0|<pem1>pem1|<fpa>fpa|<usb>usb|<mio>mio|<dfm>dfm|<tim>tim|<lmc0>lmc0|<key>key|<gmx0>gmx0|<iob>iob|<agl>agl|<zip>zip|<dfa>dfa|<srio0>srio0|<srio1>srio1|<sli>sli|<dpi>dpi"];
  64. * cvmx_l2c_int_reg [label="L2C_INT_REG|<holerd>holerd|<holewr>holewr|<vrtwr>vrtwr|<vrtidrng>vrtidrng|<vrtadrng>vrtadrng|<vrtpe>vrtpe|<bigwr>bigwr|<bigrd>bigrd|<tad0>tad0"];
  65. * cvmx_l2c_err_tdt0 [label="L2C_ERR_TDTX(0)|<vsbe>vsbe|<vdbe>vdbe|<sbe>sbe|<dbe>dbe"];
  66. * cvmx_l2c_int_reg:tad0:e -> cvmx_l2c_err_tdt0 [label="tad0"];
  67. * cvmx_l2c_err_ttg0 [label="L2C_ERR_TTGX(0)|<noway>noway|<sbe>sbe|<dbe>dbe"];
  68. * cvmx_l2c_int_reg:tad0:e -> cvmx_l2c_err_ttg0 [label="tad0"];
  69. * cvmx_ciu_block_int:l2c:e -> cvmx_l2c_int_reg [label="l2c"];
  70. * 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"];
  71. * cvmx_ciu_block_int:ipd:e -> cvmx_ipd_int_sum [label="ipd"];
  72. * cvmx_pow_ecc_err [label="POW_ECC_ERR|<sbe>sbe|<dbe>dbe|<rpe>rpe|<iop>iop"];
  73. * cvmx_ciu_block_int:pow:e -> cvmx_pow_ecc_err [label="pow"];
  74. * cvmx_rad_reg_error [label="RAD_REG_ERROR|<doorbell>doorbell"];
  75. * cvmx_ciu_block_int:rad:e -> cvmx_rad_reg_error [label="rad"];
  76. * cvmx_pcs0_int0_reg [label="PCSX_INTX_REG(0,0)|<an_err>an_err|<txfifu>txfifu|<txfifo>txfifo|<txbad>txbad|<rxbad>rxbad|<rxlock>rxlock|<an_bad>an_bad|<sync_bad>sync_bad|<dbg_sync>dbg_sync"];
  77. * cvmx_ciu_block_int:asxpcs0:e -> cvmx_pcs0_int0_reg [label="asxpcs0"];
  78. * cvmx_pcs0_int1_reg [label="PCSX_INTX_REG(1,0)|<an_err>an_err|<txfifu>txfifu|<txfifo>txfifo|<txbad>txbad|<rxbad>rxbad|<rxlock>rxlock|<an_bad>an_bad|<sync_bad>sync_bad|<dbg_sync>dbg_sync"];
  79. * cvmx_ciu_block_int:asxpcs0:e -> cvmx_pcs0_int1_reg [label="asxpcs0"];
  80. * cvmx_pcs0_int2_reg [label="PCSX_INTX_REG(2,0)|<an_err>an_err|<txfifu>txfifu|<txfifo>txfifo|<txbad>txbad|<rxbad>rxbad|<rxlock>rxlock|<an_bad>an_bad|<sync_bad>sync_bad|<dbg_sync>dbg_sync"];
  81. * cvmx_ciu_block_int:asxpcs0:e -> cvmx_pcs0_int2_reg [label="asxpcs0"];
  82. * cvmx_pcs0_int3_reg [label="PCSX_INTX_REG(3,0)|<an_err>an_err|<txfifu>txfifu|<txfifo>txfifo|<txbad>txbad|<rxbad>rxbad|<rxlock>rxlock|<an_bad>an_bad|<sync_bad>sync_bad|<dbg_sync>dbg_sync"];
  83. * cvmx_ciu_block_int:asxpcs0:e -> cvmx_pcs0_int3_reg [label="asxpcs0"];
  84. * cvmx_pcsx0_int_reg [label="PCSXX_INT_REG(0)|<txflt>txflt|<rxbad>rxbad|<rxsynbad>rxsynbad|<synlos>synlos|<algnlos>algnlos|<dbg_sync>dbg_sync"];
  85. * cvmx_ciu_block_int:asxpcs0:e -> cvmx_pcsx0_int_reg [label="asxpcs0"];
  86. * cvmx_pip_int_reg [label="PIP_INT_REG|<prtnxa>prtnxa|<badtag>badtag|<skprunt>skprunt|<todoovr>todoovr|<feperr>feperr|<beperr>beperr|<punyerr>punyerr"];
  87. * cvmx_ciu_block_int:pip:e -> cvmx_pip_int_reg [label="pip"];
  88. * cvmx_pko_reg_error [label="PKO_REG_ERROR|<parity>parity|<doorbell>doorbell|<currzero>currzero"];
  89. * cvmx_ciu_block_int:pko:e -> cvmx_pko_reg_error [label="pko"];
  90. * cvmx_pem0_int_sum [label="PEMX_INT_SUM(0)|<se>se|<up_b1>up_b1|<up_b2>up_b2|<up_bx>up_bx|<un_b1>un_b1|<un_b2>un_b2|<un_bx>un_bx|<rdlk>rdlk|<crs_er>crs_er|<crs_dr>crs_dr|<exc>exc"];
  91. * cvmx_pem0_dbg_info [label="PEMX_DBG_INFO(0)|<spoison>spoison|<rtlplle>rtlplle|<recrce>recrce|<rpoison>rpoison|<rcemrc>rcemrc|<rnfemrc>rnfemrc|<rfemrc>rfemrc|<rpmerc>rpmerc|<rptamrc>rptamrc|<rumep>rumep|<rvdm>rvdm|<acto>acto|<rte>rte|<mre>mre|<rdwdle>rdwdle|<rtwdle>rtwdle|<dpeoosd>dpeoosd|<fcpvwt>fcpvwt|<rpe>rpe|<fcuv>fcuv|<rqo>rqo|<rauc>rauc|<racur>racur|<racca>racca|<caar>caar|<rarwdns>rarwdns|<ramtlp>ramtlp|<racpp>racpp|<rawwpp>rawwpp|<ecrc_e>ecrc_e"];
  92. * cvmx_pem0_int_sum:exc:e -> cvmx_pem0_dbg_info [label="exc"];
  93. * cvmx_ciu_block_int:pem0:e -> cvmx_pem0_int_sum [label="pem0"];
  94. * cvmx_pem1_int_sum [label="PEMX_INT_SUM(1)|<se>se|<up_b1>up_b1|<up_b2>up_b2|<up_bx>up_bx|<un_b1>un_b1|<un_b2>un_b2|<un_bx>un_bx|<rdlk>rdlk|<crs_er>crs_er|<crs_dr>crs_dr|<exc>exc"];
  95. * cvmx_pem1_dbg_info [label="PEMX_DBG_INFO(1)|<spoison>spoison|<rtlplle>rtlplle|<recrce>recrce|<rpoison>rpoison|<rcemrc>rcemrc|<rnfemrc>rnfemrc|<rfemrc>rfemrc|<rpmerc>rpmerc|<rptamrc>rptamrc|<rumep>rumep|<rvdm>rvdm|<acto>acto|<rte>rte|<mre>mre|<rdwdle>rdwdle|<rtwdle>rtwdle|<dpeoosd>dpeoosd|<fcpvwt>fcpvwt|<rpe>rpe|<fcuv>fcuv|<rqo>rqo|<rauc>rauc|<racur>racur|<racca>racca|<caar>caar|<rarwdns>rarwdns|<ramtlp>ramtlp|<racpp>racpp|<rawwpp>rawwpp|<ecrc_e>ecrc_e"];
  96. * cvmx_pem1_int_sum:exc:e -> cvmx_pem1_dbg_info [label="exc"];
  97. * cvmx_ciu_block_int:pem1:e -> cvmx_pem1_int_sum [label="pem1"];
  98. * 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|<pool0th>pool0th|<pool1th>pool1th|<pool2th>pool2th|<pool3th>pool3th|<pool4th>pool4th|<pool5th>pool5th|<pool6th>pool6th|<pool7th>pool7th|<free0>free0|<free1>free1|<free2>free2|<free3>free3|<free4>free4|<free5>free5|<free6>free6|<free7>free7"];
  99. * cvmx_ciu_block_int:fpa:e -> cvmx_fpa_int_sum [label="fpa"];
  100. * cvmx_uctl0_int_reg [label="UCTLX_INT_REG(0)|<pp_psh_f>pp_psh_f|<er_psh_f>er_psh_f|<or_psh_f>or_psh_f|<cf_psh_f>cf_psh_f|<wb_psh_f>wb_psh_f|<wb_pop_e>wb_pop_e|<oc_ovf_e>oc_ovf_e|<ec_ovf_e>ec_ovf_e"];
  101. * cvmx_ciu_block_int:usb:e -> cvmx_uctl0_int_reg [label="usb"];
  102. * cvmx_mio_boot_err [label="MIO_BOOT_ERR|<adr_err>adr_err|<wait_err>wait_err"];
  103. * cvmx_ciu_block_int:mio:e -> cvmx_mio_boot_err [label="mio"];
  104. * cvmx_mio_rst_int [label="MIO_RST_INT|<rst_link0>rst_link0|<rst_link1>rst_link1|<perst0>perst0|<perst1>perst1"];
  105. * cvmx_ciu_block_int:mio:e -> cvmx_mio_rst_int [label="mio"];
  106. * cvmx_dfm_fnt_stat [label="DFM_FNT_STAT|<sbe_err>sbe_err|<dbe_err>dbe_err"];
  107. * cvmx_ciu_block_int:dfm:e -> cvmx_dfm_fnt_stat [label="dfm"];
  108. * cvmx_tim_reg_error [label="TIM_REG_ERROR|<mask>mask"];
  109. * cvmx_ciu_block_int:tim:e -> cvmx_tim_reg_error [label="tim"];
  110. * cvmx_lmc0_int [label="LMCX_INT(0)|<sec_err>sec_err|<nxm_wr_err>nxm_wr_err|<ded_err>ded_err"];
  111. * cvmx_ciu_block_int:lmc0:e -> cvmx_lmc0_int [label="lmc0"];
  112. * cvmx_key_int_sum [label="KEY_INT_SUM|<ked0_sbe>ked0_sbe|<ked0_dbe>ked0_dbe|<ked1_sbe>ked1_sbe|<ked1_dbe>ked1_dbe"];
  113. * cvmx_ciu_block_int:key:e -> cvmx_key_int_sum [label="key"];
  114. * cvmx_gmx0_bad_reg [label="GMXX_BAD_REG(0)|<out_ovr>out_ovr|<loststat>loststat|<statovr>statovr|<inb_nxa>inb_nxa"];
  115. * cvmx_ciu_block_int:gmx0:e -> cvmx_gmx0_bad_reg [label="gmx0"];
  116. * cvmx_gmx0_rx0_int_reg [label="GMXX_RXX_INT_REG(0,0)|<carext>carext|<skperr>skperr|<ovrerr>ovrerr|<loc_fault>loc_fault|<rem_fault>rem_fault|<bad_seq>bad_seq|<bad_term>bad_term|<unsop>unsop|<uneop>uneop|<undat>undat|<hg2fld>hg2fld|<hg2cc>hg2cc"];
  117. * cvmx_ciu_block_int:gmx0:e -> cvmx_gmx0_rx0_int_reg [label="gmx0"];
  118. * cvmx_gmx0_rx1_int_reg [label="GMXX_RXX_INT_REG(1,0)|<carext>carext|<skperr>skperr|<ovrerr>ovrerr|<loc_fault>loc_fault|<rem_fault>rem_fault|<bad_seq>bad_seq|<bad_term>bad_term|<unsop>unsop|<uneop>uneop|<undat>undat|<hg2fld>hg2fld|<hg2cc>hg2cc"];
  119. * cvmx_ciu_block_int:gmx0:e -> cvmx_gmx0_rx1_int_reg [label="gmx0"];
  120. * cvmx_gmx0_rx2_int_reg [label="GMXX_RXX_INT_REG(2,0)|<carext>carext|<skperr>skperr|<ovrerr>ovrerr|<loc_fault>loc_fault|<rem_fault>rem_fault|<bad_seq>bad_seq|<bad_term>bad_term|<unsop>unsop|<uneop>uneop|<undat>undat|<hg2fld>hg2fld|<hg2cc>hg2cc"];
  121. * cvmx_ciu_block_int:gmx0:e -> cvmx_gmx0_rx2_int_reg [label="gmx0"];
  122. * cvmx_gmx0_rx3_int_reg [label="GMXX_RXX_INT_REG(3,0)|<carext>carext|<skperr>skperr|<ovrerr>ovrerr|<loc_fault>loc_fault|<rem_fault>rem_fault|<bad_seq>bad_seq|<bad_term>bad_term|<unsop>unsop|<uneop>uneop|<undat>undat|<hg2fld>hg2fld|<hg2cc>hg2cc"];
  123. * cvmx_ciu_block_int:gmx0:e -> cvmx_gmx0_rx3_int_reg [label="gmx0"];
  124. * cvmx_gmx0_tx_int_reg [label="GMXX_TX_INT_REG(0)|<pko_nxa>pko_nxa|<undflw>undflw|<ptp_lost>ptp_lost"];
  125. * cvmx_ciu_block_int:gmx0:e -> cvmx_gmx0_tx_int_reg [label="gmx0"];
  126. * cvmx_iob_int_sum [label="IOB_INT_SUM|<np_sop>np_sop|<np_eop>np_eop|<p_sop>p_sop|<p_eop>p_eop|<np_dat>np_dat|<p_dat>p_dat"];
  127. * cvmx_ciu_block_int:iob:e -> cvmx_iob_int_sum [label="iob"];
  128. * cvmx_agl_gmx_bad_reg [label="AGL_GMX_BAD_REG|<ovrflw>ovrflw|<txpop>txpop|<txpsh>txpsh|<ovrflw1>ovrflw1|<txpop1>txpop1|<txpsh1>txpsh1|<out_ovr>out_ovr|<loststat>loststat"];
  129. * cvmx_ciu_block_int:agl:e -> cvmx_agl_gmx_bad_reg [label="agl"];
  130. * cvmx_agl_gmx_rx0_int_reg [label="AGL_GMX_RXX_INT_REG(0)|<skperr>skperr|<ovrerr>ovrerr"];
  131. * cvmx_ciu_block_int:agl:e -> cvmx_agl_gmx_rx0_int_reg [label="agl"];
  132. * cvmx_agl_gmx_rx1_int_reg [label="AGL_GMX_RXX_INT_REG(1)|<skperr>skperr|<ovrerr>ovrerr"];
  133. * cvmx_ciu_block_int:agl:e -> cvmx_agl_gmx_rx1_int_reg [label="agl"];
  134. * cvmx_agl_gmx_tx_int_reg [label="AGL_GMX_TX_INT_REG|<pko_nxa>pko_nxa|<undflw>undflw"];
  135. * cvmx_ciu_block_int:agl:e -> cvmx_agl_gmx_tx_int_reg [label="agl"];
  136. * cvmx_zip_error [label="ZIP_ERROR|<doorbell>doorbell"];
  137. * cvmx_ciu_block_int:zip:e -> cvmx_zip_error [label="zip"];
  138. * cvmx_dfa_error [label="DFA_ERROR|<dblovf>dblovf|<dc0perr>dc0perr"];
  139. * cvmx_ciu_block_int:dfa:e -> cvmx_dfa_error [label="dfa"];
  140. * cvmx_srio0_int_reg [label="SRIOX_INT_REG(0)|<bar_err>bar_err|<deny_wr>deny_wr|<sli_err>sli_err|<mce_rx>mce_rx|<log_erb>log_erb|<phy_erb>phy_erb|<omsg_err>omsg_err|<pko_err>pko_err|<rtry_err>rtry_err|<f_error>f_error|<mac_buf>mac_buf|<degrad>degrad|<fail>fail|<ttl_tout>ttl_tout"];
  141. * cvmx_ciu_block_int:srio0:e -> cvmx_srio0_int_reg [label="srio0"];
  142. * cvmx_srio1_int_reg [label="SRIOX_INT_REG(1)|<bar_err>bar_err|<deny_wr>deny_wr|<sli_err>sli_err|<mce_rx>mce_rx|<log_erb>log_erb|<phy_erb>phy_erb|<omsg_err>omsg_err|<pko_err>pko_err|<rtry_err>rtry_err|<f_error>f_error|<mac_buf>mac_buf|<degrad>degrad|<fail>fail|<ttl_tout>ttl_tout"];
  143. * cvmx_ciu_block_int:srio1:e -> cvmx_srio1_int_reg [label="srio1"];
  144. * cvmx_sli_int_sum [label="PEXP_SLI_INT_SUM|<rml_to>rml_to|<reserved_1_1>reserved_1_1|<bar0_to>bar0_to|<iob2big>iob2big|<reserved_6_7>reserved_6_7|<m0_up_b0>m0_up_b0|<m0_up_wi>m0_up_wi|<m0_un_b0>m0_un_b0|<m0_un_wi>m0_un_wi|<m1_up_b0>m1_up_b0|<m1_up_wi>m1_up_wi|<m1_un_b0>m1_un_b0|<m1_un_wi>m1_un_wi|<pidbof>pidbof|<psldbof>psldbof|<pout_err>pout_err|<pin_bp>pin_bp|<pgl_err>pgl_err|<pdi_err>pdi_err|<pop_err>pop_err|<pins_err>pins_err|<sprt0_err>sprt0_err|<sprt1_err>sprt1_err|<ill_pad>ill_pad"];
  145. * cvmx_ciu_block_int:sli:e -> cvmx_sli_int_sum [label="sli"];
  146. * cvmx_dpi_int_reg [label="DPI_INT_REG|<nderr>nderr|<nfovr>nfovr|<dmadbo>dmadbo|<req_badadr>req_badadr|<req_badlen>req_badlen|<req_ovrflw>req_ovrflw|<req_undflw>req_undflw|<req_anull>req_anull|<req_inull>req_inull|<req_badfil>req_badfil|<sprt0_rst>sprt0_rst|<sprt1_rst>sprt1_rst"];
  147. * cvmx_ciu_block_int:dpi:e -> cvmx_dpi_int_reg [label="dpi"];
  148. * cvmx_dpi_pkt_err_rsp [label="DPI_PKT_ERR_RSP|<pkterr>pkterr"];
  149. * cvmx_ciu_block_int:dpi:e -> cvmx_dpi_pkt_err_rsp [label="dpi"];
  150. * cvmx_dpi_req_err_rsp [label="DPI_REQ_ERR_RSP|<qerr>qerr"];
  151. * cvmx_ciu_block_int:dpi:e -> cvmx_dpi_req_err_rsp [label="dpi"];
  152. * cvmx_dpi_req_err_rst [label="DPI_REQ_ERR_RST|<qerr>qerr"];
  153. * cvmx_ciu_block_int:dpi:e -> cvmx_dpi_req_err_rst [label="dpi"];
  154. * cvmx_pcs0_int0_reg -> cvmx_pcs0_int1_reg [style=invis];
  155. * cvmx_pcs0_int1_reg -> cvmx_pcs0_int2_reg [style=invis];
  156. * cvmx_pcs0_int2_reg -> cvmx_pcs0_int3_reg [style=invis];
  157. * cvmx_pcs0_int3_reg -> cvmx_pcsx0_int_reg [style=invis];
  158. * cvmx_mio_boot_err -> cvmx_mio_rst_int [style=invis];
  159. * cvmx_gmx0_bad_reg -> cvmx_gmx0_rx0_int_reg [style=invis];
  160. * cvmx_gmx0_rx0_int_reg -> cvmx_gmx0_rx1_int_reg [style=invis];
  161. * cvmx_gmx0_rx1_int_reg -> cvmx_gmx0_rx2_int_reg [style=invis];
  162. * cvmx_gmx0_rx2_int_reg -> cvmx_gmx0_rx3_int_reg [style=invis];
  163. * cvmx_gmx0_rx3_int_reg -> cvmx_gmx0_tx_int_reg [style=invis];
  164. * cvmx_agl_gmx_bad_reg -> cvmx_agl_gmx_rx0_int_reg [style=invis];
  165. * cvmx_agl_gmx_rx0_int_reg -> cvmx_agl_gmx_rx1_int_reg [style=invis];
  166. * cvmx_agl_gmx_rx1_int_reg -> cvmx_agl_gmx_tx_int_reg [style=invis];
  167. * cvmx_dpi_int_reg -> cvmx_dpi_pkt_err_rsp [style=invis];
  168. * cvmx_dpi_pkt_err_rsp -> cvmx_dpi_req_err_rsp [style=invis];
  169. * cvmx_dpi_req_err_rsp -> cvmx_dpi_req_err_rst [style=invis];
  170. * cvmx_root:root:e -> cvmx_ciu_block_int [label="root"];
  171. * }
  172. * @enddot
  173. */
  174. #ifdef CVMX_BUILD_FOR_LINUX_KERNEL
  175. #include <asm/octeon/cvmx.h>
  176. #include <asm/octeon/cvmx-error.h>
  177. #include <asm/octeon/cvmx-error-custom.h>
  178. #include <asm/octeon/cvmx-csr-typedefs.h>
  179. #else
  180. #include "cvmx.h"
  181. #include "cvmx-error.h"
  182. #include "cvmx-error-custom.h"
  183. #endif
  184. int cvmx_error_initialize_cn63xx(void);
  185. int cvmx_error_initialize_cn63xx(void)
  186. {
  187. cvmx_error_info_t info;
  188. int fail = 0;
  189. /* CVMX_CIU_INTX_SUM0(0) */
  190. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  191. info.status_addr = CVMX_CIU_INTX_SUM0(0);
  192. info.status_mask = 0;
  193. info.enable_addr = 0;
  194. info.enable_mask = 0;
  195. info.flags = 0;
  196. info.group = CVMX_ERROR_GROUP_INTERNAL;
  197. info.group_index = 0;
  198. info.parent.reg_type = __CVMX_ERROR_REGISTER_NONE;
  199. info.parent.status_addr = 0;
  200. info.parent.status_mask = 0;
  201. info.func = __cvmx_error_decode;
  202. info.user_info = 0;
  203. fail |= cvmx_error_add(&info);
  204. /* CVMX_MIXX_ISR(0) */
  205. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  206. info.status_addr = CVMX_MIXX_ISR(0);
  207. info.status_mask = 1ull<<0 /* odblovf */;
  208. info.enable_addr = CVMX_MIXX_INTENA(0);
  209. info.enable_mask = 1ull<<0 /* ovfena */;
  210. info.flags = 0;
  211. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  212. info.group_index = 0;
  213. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  214. info.parent.status_addr = CVMX_CIU_INTX_SUM0(0);
  215. info.parent.status_mask = 1ull<<62 /* mii */;
  216. info.func = __cvmx_error_display;
  217. info.user_info = (long)
  218. "ERROR MIXX_ISR(0)[ODBLOVF]: Outbound DoorBell(ODBELL) Overflow Detected\n"
  219. " If SW attempts to write to the MIX_ORING2[ODBELL]\n"
  220. " with a value greater than the remaining #of\n"
  221. " O-Ring Buffer Entries (MIX_REMCNT[OREMCNT]), then\n"
  222. " the following occurs:\n"
  223. " 1) The MIX_ORING2[ODBELL] write is IGNORED\n"
  224. " 2) The ODBLOVF is set and the CIU_INTx_SUM0,4[MII]\n"
  225. " bits are set if ((MIX_ISR & MIX_INTENA) != 0)).\n"
  226. " If both the global interrupt mask bits (CIU_INTx_EN*[MII])\n"
  227. " and the local interrupt mask bit(OVFENA) is set, than an\n"
  228. " interrupt is reported for this event.\n"
  229. " SW should keep track of the #I-Ring Entries in use\n"
  230. " (ie: cumulative # of ODBELL writes), and ensure that\n"
  231. " future ODBELL writes don't exceed the size of the\n"
  232. " O-Ring Buffer (MIX_ORING2[OSIZE]).\n"
  233. " SW must reclaim O-Ring Entries by writing to the\n"
  234. " MIX_ORCNT[ORCNT]. .\n"
  235. " NOTE: There is no recovery from an ODBLOVF Interrupt.\n"
  236. " If it occurs, it's an indication that SW has\n"
  237. " overwritten the O-Ring buffer, and the only recourse\n"
  238. " is a HW reset.\n";
  239. fail |= cvmx_error_add(&info);
  240. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  241. info.status_addr = CVMX_MIXX_ISR(0);
  242. info.status_mask = 1ull<<1 /* idblovf */;
  243. info.enable_addr = CVMX_MIXX_INTENA(0);
  244. info.enable_mask = 1ull<<1 /* ivfena */;
  245. info.flags = 0;
  246. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  247. info.group_index = 0;
  248. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  249. info.parent.status_addr = CVMX_CIU_INTX_SUM0(0);
  250. info.parent.status_mask = 1ull<<62 /* mii */;
  251. info.func = __cvmx_error_display;
  252. info.user_info = (long)
  253. "ERROR MIXX_ISR(0)[IDBLOVF]: Inbound DoorBell(IDBELL) Overflow Detected\n"
  254. " If SW attempts to write to the MIX_IRING2[IDBELL]\n"
  255. " with a value greater than the remaining #of\n"
  256. " I-Ring Buffer Entries (MIX_REMCNT[IREMCNT]), then\n"
  257. " the following occurs:\n"
  258. " 1) The MIX_IRING2[IDBELL] write is IGNORED\n"
  259. " 2) The ODBLOVF is set and the CIU_INTx_SUM0,4[MII]\n"
  260. " bits are set if ((MIX_ISR & MIX_INTENA) != 0)).\n"
  261. " If both the global interrupt mask bits (CIU_INTx_EN*[MII])\n"
  262. " and the local interrupt mask bit(IVFENA) is set, than an\n"
  263. " interrupt is reported for this event.\n"
  264. " SW should keep track of the #I-Ring Entries in use\n"
  265. " (ie: cumulative # of IDBELL writes), and ensure that\n"
  266. " future IDBELL writes don't exceed the size of the\n"
  267. " I-Ring Buffer (MIX_IRING2[ISIZE]).\n"
  268. " SW must reclaim I-Ring Entries by keeping track of the\n"
  269. " #IRing-Entries, and writing to the MIX_IRCNT[IRCNT].\n"
  270. " NOTE: The MIX_IRCNT[IRCNT] register represents the\n"
  271. " total #packets(not IRing Entries) and SW must further\n"
  272. " keep track of the # of I-Ring Entries associated with\n"
  273. " each packet as they are processed.\n"
  274. " NOTE: There is no recovery from an IDBLOVF Interrupt.\n"
  275. " If it occurs, it's an indication that SW has\n"
  276. " overwritten the I-Ring buffer, and the only recourse\n"
  277. " is a HW reset.\n";
  278. fail |= cvmx_error_add(&info);
  279. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  280. info.status_addr = CVMX_MIXX_ISR(0);
  281. info.status_mask = 1ull<<4 /* data_drp */;
  282. info.enable_addr = CVMX_MIXX_INTENA(0);
  283. info.enable_mask = 1ull<<4 /* data_drpena */;
  284. info.flags = 0;
  285. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  286. info.group_index = 0;
  287. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  288. info.parent.status_addr = CVMX_CIU_INTX_SUM0(0);
  289. info.parent.status_mask = 1ull<<62 /* mii */;
  290. info.func = __cvmx_error_display;
  291. info.user_info = (long)
  292. "ERROR MIXX_ISR(0)[DATA_DRP]: Data was dropped due to RX FIFO full\n"
  293. " If this does occur, the DATA_DRP is set and the\n"
  294. " CIU_INTx_SUM0,4[MII] bits are set.\n"
  295. " If both the global interrupt mask bits (CIU_INTx_EN*[MII])\n"
  296. " and the local interrupt mask bit(DATA_DRPENA) is set, than an\n"
  297. " interrupt is reported for this event.\n";
  298. fail |= cvmx_error_add(&info);
  299. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  300. info.status_addr = CVMX_MIXX_ISR(0);
  301. info.status_mask = 1ull<<5 /* irun */;
  302. info.enable_addr = CVMX_MIXX_INTENA(0);
  303. info.enable_mask = 1ull<<5 /* irunena */;
  304. info.flags = 0;
  305. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  306. info.group_index = 0;
  307. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  308. info.parent.status_addr = CVMX_CIU_INTX_SUM0(0);
  309. info.parent.status_mask = 1ull<<62 /* mii */;
  310. info.func = __cvmx_error_display;
  311. info.user_info = (long)
  312. "ERROR MIXX_ISR(0)[IRUN]: IRCNT UnderFlow Detected\n"
  313. " If SW writes a larger value than what is currently\n"
  314. " in the MIX_IRCNT[IRCNT], then HW will report the\n"
  315. " underflow condition.\n"
  316. " NOTE: The MIX_IRCNT[IRCNT] will clamp to to zero.\n"
  317. " NOTE: If an IRUN underflow condition is detected,\n"
  318. " the integrity of the MIX/AGL HW state has\n"
  319. " been compromised. To recover, SW must issue a\n"
  320. " software reset sequence (see: MIX_CTL[RESET]\n";
  321. fail |= cvmx_error_add(&info);
  322. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  323. info.status_addr = CVMX_MIXX_ISR(0);
  324. info.status_mask = 1ull<<6 /* orun */;
  325. info.enable_addr = CVMX_MIXX_INTENA(0);
  326. info.enable_mask = 1ull<<6 /* orunena */;
  327. info.flags = 0;
  328. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  329. info.group_index = 0;
  330. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  331. info.parent.status_addr = CVMX_CIU_INTX_SUM0(0);
  332. info.parent.status_mask = 1ull<<62 /* mii */;
  333. info.func = __cvmx_error_display;
  334. info.user_info = (long)
  335. "ERROR MIXX_ISR(0)[ORUN]: ORCNT UnderFlow Detected\n"
  336. " If SW writes a larger value than what is currently\n"
  337. " in the MIX_ORCNT[ORCNT], then HW will report the\n"
  338. " underflow condition.\n"
  339. " NOTE: The MIX_ORCNT[IOCNT] will clamp to to zero.\n"
  340. " NOTE: If an ORUN underflow condition is detected,\n"
  341. " the integrity of the MIX/AGL HW state has\n"
  342. " been compromised. To recover, SW must issue a\n"
  343. " software reset sequence (see: MIX_CTL[RESET]\n";
  344. fail |= cvmx_error_add(&info);
  345. /* CVMX_CIU_INT_SUM1 */
  346. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  347. info.status_addr = CVMX_CIU_INT_SUM1;
  348. info.status_mask = 0;
  349. info.enable_addr = 0;
  350. info.enable_mask = 0;
  351. info.flags = 0;
  352. info.group = CVMX_ERROR_GROUP_INTERNAL;
  353. info.group_index = 0;
  354. info.parent.reg_type = __CVMX_ERROR_REGISTER_NONE;
  355. info.parent.status_addr = 0;
  356. info.parent.status_mask = 0;
  357. info.func = __cvmx_error_decode;
  358. info.user_info = 0;
  359. fail |= cvmx_error_add(&info);
  360. /* CVMX_MIXX_ISR(1) */
  361. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  362. info.status_addr = CVMX_MIXX_ISR(1);
  363. info.status_mask = 1ull<<0 /* odblovf */;
  364. info.enable_addr = CVMX_MIXX_INTENA(1);
  365. info.enable_mask = 1ull<<0 /* ovfena */;
  366. info.flags = 0;
  367. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  368. info.group_index = 1;
  369. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  370. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  371. info.parent.status_mask = 1ull<<18 /* mii1 */;
  372. info.func = __cvmx_error_display;
  373. info.user_info = (long)
  374. "ERROR MIXX_ISR(1)[ODBLOVF]: Outbound DoorBell(ODBELL) Overflow Detected\n"
  375. " If SW attempts to write to the MIX_ORING2[ODBELL]\n"
  376. " with a value greater than the remaining #of\n"
  377. " O-Ring Buffer Entries (MIX_REMCNT[OREMCNT]), then\n"
  378. " the following occurs:\n"
  379. " 1) The MIX_ORING2[ODBELL] write is IGNORED\n"
  380. " 2) The ODBLOVF is set and the CIU_INTx_SUM0,4[MII]\n"
  381. " bits are set if ((MIX_ISR & MIX_INTENA) != 0)).\n"
  382. " If both the global interrupt mask bits (CIU_INTx_EN*[MII])\n"
  383. " and the local interrupt mask bit(OVFENA) is set, than an\n"
  384. " interrupt is reported for this event.\n"
  385. " SW should keep track of the #I-Ring Entries in use\n"
  386. " (ie: cumulative # of ODBELL writes), and ensure that\n"
  387. " future ODBELL writes don't exceed the size of the\n"
  388. " O-Ring Buffer (MIX_ORING2[OSIZE]).\n"
  389. " SW must reclaim O-Ring Entries by writing to the\n"
  390. " MIX_ORCNT[ORCNT]. .\n"
  391. " NOTE: There is no recovery from an ODBLOVF Interrupt.\n"
  392. " If it occurs, it's an indication that SW has\n"
  393. " overwritten the O-Ring buffer, and the only recourse\n"
  394. " is a HW reset.\n";
  395. fail |= cvmx_error_add(&info);
  396. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  397. info.status_addr = CVMX_MIXX_ISR(1);
  398. info.status_mask = 1ull<<1 /* idblovf */;
  399. info.enable_addr = CVMX_MIXX_INTENA(1);
  400. info.enable_mask = 1ull<<1 /* ivfena */;
  401. info.flags = 0;
  402. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  403. info.group_index = 1;
  404. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  405. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  406. info.parent.status_mask = 1ull<<18 /* mii1 */;
  407. info.func = __cvmx_error_display;
  408. info.user_info = (long)
  409. "ERROR MIXX_ISR(1)[IDBLOVF]: Inbound DoorBell(IDBELL) Overflow Detected\n"
  410. " If SW attempts to write to the MIX_IRING2[IDBELL]\n"
  411. " with a value greater than the remaining #of\n"
  412. " I-Ring Buffer Entries (MIX_REMCNT[IREMCNT]), then\n"
  413. " the following occurs:\n"
  414. " 1) The MIX_IRING2[IDBELL] write is IGNORED\n"
  415. " 2) The ODBLOVF is set and the CIU_INTx_SUM0,4[MII]\n"
  416. " bits are set if ((MIX_ISR & MIX_INTENA) != 0)).\n"
  417. " If both the global interrupt mask bits (CIU_INTx_EN*[MII])\n"
  418. " and the local interrupt mask bit(IVFENA) is set, than an\n"
  419. " interrupt is reported for this event.\n"
  420. " SW should keep track of the #I-Ring Entries in use\n"
  421. " (ie: cumulative # of IDBELL writes), and ensure that\n"
  422. " future IDBELL writes don't exceed the size of the\n"
  423. " I-Ring Buffer (MIX_IRING2[ISIZE]).\n"
  424. " SW must reclaim I-Ring Entries by keeping track of the\n"
  425. " #IRing-Entries, and writing to the MIX_IRCNT[IRCNT].\n"
  426. " NOTE: The MIX_IRCNT[IRCNT] register represents the\n"
  427. " total #packets(not IRing Entries) and SW must further\n"
  428. " keep track of the # of I-Ring Entries associated with\n"
  429. " each packet as they are processed.\n"
  430. " NOTE: There is no recovery from an IDBLOVF Interrupt.\n"
  431. " If it occurs, it's an indication that SW has\n"
  432. " overwritten the I-Ring buffer, and the only recourse\n"
  433. " is a HW reset.\n";
  434. fail |= cvmx_error_add(&info);
  435. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  436. info.status_addr = CVMX_MIXX_ISR(1);
  437. info.status_mask = 1ull<<4 /* data_drp */;
  438. info.enable_addr = CVMX_MIXX_INTENA(1);
  439. info.enable_mask = 1ull<<4 /* data_drpena */;
  440. info.flags = 0;
  441. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  442. info.group_index = 1;
  443. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  444. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  445. info.parent.status_mask = 1ull<<18 /* mii1 */;
  446. info.func = __cvmx_error_display;
  447. info.user_info = (long)
  448. "ERROR MIXX_ISR(1)[DATA_DRP]: Data was dropped due to RX FIFO full\n"
  449. " If this does occur, the DATA_DRP is set and the\n"
  450. " CIU_INTx_SUM0,4[MII] bits are set.\n"
  451. " If both the global interrupt mask bits (CIU_INTx_EN*[MII])\n"
  452. " and the local interrupt mask bit(DATA_DRPENA) is set, than an\n"
  453. " interrupt is reported for this event.\n";
  454. fail |= cvmx_error_add(&info);
  455. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  456. info.status_addr = CVMX_MIXX_ISR(1);
  457. info.status_mask = 1ull<<5 /* irun */;
  458. info.enable_addr = CVMX_MIXX_INTENA(1);
  459. info.enable_mask = 1ull<<5 /* irunena */;
  460. info.flags = 0;
  461. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  462. info.group_index = 1;
  463. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  464. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  465. info.parent.status_mask = 1ull<<18 /* mii1 */;
  466. info.func = __cvmx_error_display;
  467. info.user_info = (long)
  468. "ERROR MIXX_ISR(1)[IRUN]: IRCNT UnderFlow Detected\n"
  469. " If SW writes a larger value than what is currently\n"
  470. " in the MIX_IRCNT[IRCNT], then HW will report the\n"
  471. " underflow condition.\n"
  472. " NOTE: The MIX_IRCNT[IRCNT] will clamp to to zero.\n"
  473. " NOTE: If an IRUN underflow condition is detected,\n"
  474. " the integrity of the MIX/AGL HW state has\n"
  475. " been compromised. To recover, SW must issue a\n"
  476. " software reset sequence (see: MIX_CTL[RESET]\n";
  477. fail |= cvmx_error_add(&info);
  478. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  479. info.status_addr = CVMX_MIXX_ISR(1);
  480. info.status_mask = 1ull<<6 /* orun */;
  481. info.enable_addr = CVMX_MIXX_INTENA(1);
  482. info.enable_mask = 1ull<<6 /* orunena */;
  483. info.flags = 0;
  484. info.group = CVMX_ERROR_GROUP_MGMT_PORT;
  485. info.group_index = 1;
  486. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  487. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  488. info.parent.status_mask = 1ull<<18 /* mii1 */;
  489. info.func = __cvmx_error_display;
  490. info.user_info = (long)
  491. "ERROR MIXX_ISR(1)[ORUN]: ORCNT UnderFlow Detected\n"
  492. " If SW writes a larger value than what is currently\n"
  493. " in the MIX_ORCNT[ORCNT], then HW will report the\n"
  494. " underflow condition.\n"
  495. " NOTE: The MIX_ORCNT[IOCNT] will clamp to to zero.\n"
  496. " NOTE: If an ORUN underflow condition is detected,\n"
  497. " the integrity of the MIX/AGL HW state has\n"
  498. " been compromised. To recover, SW must issue a\n"
  499. " software reset sequence (see: MIX_CTL[RESET]\n";
  500. fail |= cvmx_error_add(&info);
  501. /* CVMX_NDF_INT */
  502. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  503. info.status_addr = CVMX_NDF_INT;
  504. info.status_mask = 1ull<<2 /* wdog */;
  505. info.enable_addr = CVMX_NDF_INT_EN;
  506. info.enable_mask = 1ull<<2 /* wdog */;
  507. info.flags = 0;
  508. info.group = CVMX_ERROR_GROUP_INTERNAL;
  509. info.group_index = 0;
  510. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  511. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  512. info.parent.status_mask = 1ull<<19 /* nand */;
  513. info.func = __cvmx_error_display;
  514. info.user_info = (long)
  515. "ERROR NDF_INT[WDOG]: Watch Dog timer expired during command execution\n";
  516. fail |= cvmx_error_add(&info);
  517. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  518. info.status_addr = CVMX_NDF_INT;
  519. info.status_mask = 1ull<<3 /* sm_bad */;
  520. info.enable_addr = CVMX_NDF_INT_EN;
  521. info.enable_mask = 1ull<<3 /* sm_bad */;
  522. info.flags = 0;
  523. info.group = CVMX_ERROR_GROUP_INTERNAL;
  524. info.group_index = 0;
  525. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  526. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  527. info.parent.status_mask = 1ull<<19 /* nand */;
  528. info.func = __cvmx_error_display;
  529. info.user_info = (long)
  530. "ERROR NDF_INT[SM_BAD]: One of the state machines in a bad state\n";
  531. fail |= cvmx_error_add(&info);
  532. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  533. info.status_addr = CVMX_NDF_INT;
  534. info.status_mask = 1ull<<4 /* ecc_1bit */;
  535. info.enable_addr = CVMX_NDF_INT_EN;
  536. info.enable_mask = 1ull<<4 /* ecc_1bit */;
  537. info.flags = 0;
  538. info.group = CVMX_ERROR_GROUP_INTERNAL;
  539. info.group_index = 0;
  540. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  541. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  542. info.parent.status_mask = 1ull<<19 /* nand */;
  543. info.func = __cvmx_error_display;
  544. info.user_info = (long)
  545. "ERROR NDF_INT[ECC_1BIT]: Single bit ECC error detected and fixed during boot\n";
  546. fail |= cvmx_error_add(&info);
  547. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  548. info.status_addr = CVMX_NDF_INT;
  549. info.status_mask = 1ull<<5 /* ecc_mult */;
  550. info.enable_addr = CVMX_NDF_INT_EN;
  551. info.enable_mask = 1ull<<5 /* ecc_mult */;
  552. info.flags = 0;
  553. info.group = CVMX_ERROR_GROUP_INTERNAL;
  554. info.group_index = 0;
  555. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  556. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  557. info.parent.status_mask = 1ull<<19 /* nand */;
  558. info.func = __cvmx_error_display;
  559. info.user_info = (long)
  560. "ERROR NDF_INT[ECC_MULT]: Multi bit ECC error detected during boot\n";
  561. fail |= cvmx_error_add(&info);
  562. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  563. info.status_addr = CVMX_NDF_INT;
  564. info.status_mask = 1ull<<6 /* ovrf */;
  565. info.enable_addr = CVMX_NDF_INT_EN;
  566. info.enable_mask = 1ull<<6 /* ovrf */;
  567. info.flags = 0;
  568. info.group = CVMX_ERROR_GROUP_INTERNAL;
  569. info.group_index = 0;
  570. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  571. info.parent.status_addr = CVMX_CIU_INT_SUM1;
  572. info.parent.status_mask = 1ull<<19 /* nand */;
  573. info.func = __cvmx_error_display;
  574. info.user_info = (long)
  575. "ERROR NDF_INT[OVRF]: NDF_CMD write when fifo is full. Generally a\n"
  576. " fatal error.\n";
  577. fail |= cvmx_error_add(&info);
  578. /* CVMX_CIU_BLOCK_INT */
  579. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  580. info.status_addr = CVMX_CIU_BLOCK_INT;
  581. info.status_mask = 0;
  582. info.enable_addr = 0;
  583. info.enable_mask = 0;
  584. info.flags = 0;
  585. info.group = CVMX_ERROR_GROUP_INTERNAL;
  586. info.group_index = 0;
  587. info.parent.reg_type = __CVMX_ERROR_REGISTER_NONE;
  588. info.parent.status_addr = 0;
  589. info.parent.status_mask = 0;
  590. info.func = __cvmx_error_decode;
  591. info.user_info = 0;
  592. fail |= cvmx_error_add(&info);
  593. /* CVMX_L2C_INT_REG */
  594. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  595. info.status_addr = CVMX_L2C_INT_REG;
  596. info.status_mask = 1ull<<0 /* holerd */;
  597. info.enable_addr = CVMX_L2C_INT_ENA;
  598. info.enable_mask = 1ull<<0 /* holerd */;
  599. info.flags = 0;
  600. info.group = CVMX_ERROR_GROUP_INTERNAL;
  601. info.group_index = 0;
  602. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  603. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  604. info.parent.status_mask = 1ull<<16 /* l2c */;
  605. info.func = __cvmx_error_display;
  606. info.user_info = (long)
  607. "ERROR L2C_INT_REG[HOLERD]: Read reference to 256MB hole occurred\n";
  608. fail |= cvmx_error_add(&info);
  609. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  610. info.status_addr = CVMX_L2C_INT_REG;
  611. info.status_mask = 1ull<<1 /* holewr */;
  612. info.enable_addr = CVMX_L2C_INT_ENA;
  613. info.enable_mask = 1ull<<1 /* holewr */;
  614. info.flags = 0;
  615. info.group = CVMX_ERROR_GROUP_INTERNAL;
  616. info.group_index = 0;
  617. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  618. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  619. info.parent.status_mask = 1ull<<16 /* l2c */;
  620. info.func = __cvmx_error_display;
  621. info.user_info = (long)
  622. "ERROR L2C_INT_REG[HOLEWR]: Write reference to 256MB hole occurred\n";
  623. fail |= cvmx_error_add(&info);
  624. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  625. info.status_addr = CVMX_L2C_INT_REG;
  626. info.status_mask = 1ull<<2 /* vrtwr */;
  627. info.enable_addr = CVMX_L2C_INT_ENA;
  628. info.enable_mask = 1ull<<2 /* vrtwr */;
  629. info.flags = 0;
  630. info.group = CVMX_ERROR_GROUP_INTERNAL;
  631. info.group_index = 0;
  632. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  633. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  634. info.parent.status_mask = 1ull<<16 /* l2c */;
  635. info.func = __cvmx_error_display;
  636. info.user_info = (long)
  637. "ERROR L2C_INT_REG[VRTWR]: Virtualization ID prevented a write\n"
  638. " Set when L2C_VRT_MEM blocked a store.\n";
  639. fail |= cvmx_error_add(&info);
  640. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  641. info.status_addr = CVMX_L2C_INT_REG;
  642. info.status_mask = 1ull<<3 /* vrtidrng */;
  643. info.enable_addr = CVMX_L2C_INT_ENA;
  644. info.enable_mask = 1ull<<3 /* vrtidrng */;
  645. info.flags = 0;
  646. info.group = CVMX_ERROR_GROUP_INTERNAL;
  647. info.group_index = 0;
  648. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  649. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  650. info.parent.status_mask = 1ull<<16 /* l2c */;
  651. info.func = __cvmx_error_display;
  652. info.user_info = (long)
  653. "ERROR L2C_INT_REG[VRTIDRNG]: Virtualization ID out of range\n"
  654. " Set when a L2C_VRT_CTL[NUMID] violation blocked a\n"
  655. " store.\n";
  656. fail |= cvmx_error_add(&info);
  657. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  658. info.status_addr = CVMX_L2C_INT_REG;
  659. info.status_mask = 1ull<<4 /* vrtadrng */;
  660. info.enable_addr = CVMX_L2C_INT_ENA;
  661. info.enable_mask = 1ull<<4 /* vrtadrng */;
  662. info.flags = 0;
  663. info.group = CVMX_ERROR_GROUP_INTERNAL;
  664. info.group_index = 0;
  665. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  666. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  667. info.parent.status_mask = 1ull<<16 /* l2c */;
  668. info.func = __cvmx_error_display;
  669. info.user_info = (long)
  670. "ERROR L2C_INT_REG[VRTADRNG]: Address outside of virtualization range\n"
  671. " Set when a L2C_VRT_CTL[MEMSZ] violation blocked a\n"
  672. " store.\n"
  673. " L2C_VRT_CTL[OOBERR] must be set for L2C to set this.\n";
  674. fail |= cvmx_error_add(&info);
  675. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  676. info.status_addr = CVMX_L2C_INT_REG;
  677. info.status_mask = 1ull<<5 /* vrtpe */;
  678. info.enable_addr = CVMX_L2C_INT_ENA;
  679. info.enable_mask = 1ull<<5 /* vrtpe */;
  680. info.flags = 0;
  681. info.group = CVMX_ERROR_GROUP_INTERNAL;
  682. info.group_index = 0;
  683. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  684. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  685. info.parent.status_mask = 1ull<<16 /* l2c */;
  686. info.func = __cvmx_error_display;
  687. info.user_info = (long)
  688. "ERROR L2C_INT_REG[VRTPE]: L2C_VRT_MEM read found a parity error\n"
  689. " Whenever an L2C_VRT_MEM read finds a parity error,\n"
  690. " that L2C_VRT_MEM cannot cause stores to be blocked.\n"
  691. " Software should correct the error.\n";
  692. fail |= cvmx_error_add(&info);
  693. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  694. info.status_addr = CVMX_L2C_INT_REG;
  695. info.status_mask = 1ull<<6 /* bigwr */;
  696. info.enable_addr = CVMX_L2C_INT_ENA;
  697. info.enable_mask = 1ull<<6 /* bigwr */;
  698. info.flags = 0;
  699. info.group = CVMX_ERROR_GROUP_INTERNAL;
  700. info.group_index = 0;
  701. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  702. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  703. info.parent.status_mask = 1ull<<16 /* l2c */;
  704. info.func = __cvmx_error_display;
  705. info.user_info = (long)
  706. "ERROR L2C_INT_REG[BIGWR]: Write reference past L2C_BIG_CTL[MAXDRAM] occurred\n";
  707. fail |= cvmx_error_add(&info);
  708. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  709. info.status_addr = CVMX_L2C_INT_REG;
  710. info.status_mask = 1ull<<7 /* bigrd */;
  711. info.enable_addr = CVMX_L2C_INT_ENA;
  712. info.enable_mask = 1ull<<7 /* bigrd */;
  713. info.flags = 0;
  714. info.group = CVMX_ERROR_GROUP_INTERNAL;
  715. info.group_index = 0;
  716. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  717. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  718. info.parent.status_mask = 1ull<<16 /* l2c */;
  719. info.func = __cvmx_error_display;
  720. info.user_info = (long)
  721. "ERROR L2C_INT_REG[BIGRD]: Read reference past L2C_BIG_CTL[MAXDRAM] occurred\n";
  722. fail |= cvmx_error_add(&info);
  723. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  724. info.status_addr = CVMX_L2C_INT_REG;
  725. info.status_mask = 0;
  726. info.enable_addr = 0;
  727. info.enable_mask = 0;
  728. info.flags = 0;
  729. info.group = CVMX_ERROR_GROUP_INTERNAL;
  730. info.group_index = 0;
  731. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  732. info.parent.status_addr = CVMX_CIU_BLOCK_INT;
  733. info.parent.status_mask = 1ull<<16 /* l2c */;
  734. info.func = __cvmx_error_decode;
  735. info.user_info = 0;
  736. fail |= cvmx_error_add(&info);
  737. /* CVMX_L2C_ERR_TDTX(0) */
  738. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  739. info.status_addr = CVMX_L2C_ERR_TDTX(0);
  740. info.status_mask = 1ull<<60 /* vsbe */;
  741. info.enable_addr = 0;
  742. info.enable_mask = 0;
  743. info.flags = 0;
  744. info.group = CVMX_ERROR_GROUP_INTERNAL;
  745. info.group_index = 0;
  746. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  747. info.parent.status_addr = CVMX_L2C_INT_REG;
  748. info.parent.status_mask = 1ull<<16 /* tad0 */;
  749. info.func = __cvmx_error_display;
  750. info.user_info = (long)
  751. "ERROR L2C_ERR_TDTX(0)[VSBE]: VBF Single-Bit error has occurred\n";
  752. fail |= cvmx_error_add(&info);
  753. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  754. info.status_addr = CVMX_L2C_ERR_TDTX(0);
  755. info.status_mask = 1ull<<61 /* vdbe */;
  756. info.enable_addr = 0;
  757. info.enable_mask = 0;
  758. info.flags = 0;
  759. info.group = CVMX_ERROR_GROUP_INTERNAL;
  760. info.group_index = 0;
  761. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  762. info.parent.status_addr = CVMX_L2C_INT_REG;
  763. info.parent.status_mask = 1ull<<16 /* tad0 */;
  764. info.func = __cvmx_error_display;
  765. info.user_info = (long)
  766. "ERROR L2C_ERR_TDTX(0)[VDBE]: VBF Double-Bit error has occurred\n";
  767. fail |= cvmx_error_add(&info);
  768. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  769. info.status_addr = CVMX_L2C_ERR_TDTX(0);
  770. info.status_mask = 1ull<<62 /* sbe */;
  771. info.enable_addr = 0;
  772. info.enable_mask = 0;
  773. info.flags = 0;
  774. info.group = CVMX_ERROR_GROUP_INTERNAL;
  775. info.group_index = 0;
  776. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  777. info.parent.status_addr = CVMX_L2C_INT_REG;
  778. info.parent.status_mask = 1ull<<16 /* tad0 */;
  779. info.func = __cvmx_error_display;
  780. info.user_info = (long)
  781. "ERROR L2C_ERR_TDTX(0)[SBE]: L2D Single-Bit error has occurred\n";
  782. fail |= cvmx_error_add(&info);
  783. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  784. info.status_addr = CVMX_L2C_ERR_TDTX(0);
  785. info.status_mask = 1ull<<63 /* dbe */;
  786. info.enable_addr = 0;
  787. info.enable_mask = 0;
  788. info.flags = 0;
  789. info.group = CVMX_ERROR_GROUP_INTERNAL;
  790. info.group_index = 0;
  791. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  792. info.parent.status_addr = CVMX_L2C_INT_REG;
  793. info.parent.status_mask = 1ull<<16 /* tad0 */;
  794. info.func = __cvmx_error_display;
  795. info.user_info = (long)
  796. "ERROR L2C_ERR_TDTX(0)[DBE]: L2D Double-Bit error has occurred\n";
  797. fail |= cvmx_error_add(&info);
  798. /* CVMX_L2C_ERR_TTGX(0) */
  799. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  800. info.status_addr = CVMX_L2C_ERR_TTGX(0);
  801. info.status_mask = 1ull<<61 /* noway */;
  802. info.enable_addr = 0;
  803. info.enable_mask = 0;
  804. info.flags = 0;
  805. info.group = CVMX_ERROR_GROUP_INTERNAL;
  806. info.group_index = 0;
  807. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  808. info.parent.status_addr = CVMX_L2C_INT_REG;
  809. info.parent.status_mask = 1ull<<16 /* tad0 */;
  810. info.func = __cvmx_error_display;
  811. info.user_info = (long)
  812. "ERROR L2C_ERR_TTGX(0)[NOWAY]: No way was available for allocation.\n"
  813. " L2C sets NOWAY during its processing of a\n"
  814. " transaction whenever it needed/wanted to allocate\n"
  815. " a WAY in the L2 cache, but was unable to. NOWAY==1\n"
  816. " is (generally) not an indication that L2C failed to\n"
  817. " complete transactions. Rather, it is a hint of\n"
  818. " possible performance degradation. (For example, L2C\n"
  819. " must read-modify-write DRAM for every transaction\n"
  820. " that updates some, but not all, of the bytes in a\n"
  821. " cache block, misses in the L2 cache, and cannot\n"
  822. " allocate a WAY.) There is one \"failure\" case where\n"
  823. " L2C will set NOWAY: when it cannot leave a block\n"
  824. " locked in the L2 cache as part of a LCKL2\n"
  825. " transaction.\n";
  826. fail |= cvmx_error_add(&info);
  827. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  828. info.status_addr = CVMX_L2C_ERR_TTGX(0);
  829. info.status_mask = 1ull<<62 /* sbe */;
  830. info.enable_addr = 0;
  831. info.enable_mask = 0;
  832. info.flags = 0;
  833. info.group = CVMX_ERROR_GROUP_INTERNAL;
  834. info.group_index = 0;
  835. info.parent.reg_type = CVMX_ERROR_REGISTER_IO64;
  836. info.parent.status_addr = CVMX_L2C_INT_REG;
  837. info.parent.status_mask = 1ull<<16 /* tad0 */;
  838. info.func = __cvmx_error_display;
  839. info.user_info = (long)
  840. "ERROR L2C_ERR_TTGX(0)[SBE]: Single-Bit ECC error\n";
  841. fail |= cvmx_error_add(&info);
  842. info.reg_type = CVMX_ERROR_REGISTER_IO64;
  843. info.status_addr = CVMX_L2C_ERR_TTGX(0);
  844. info.status_mask = 1ull<<63 /* dbe */;
  845. info.enable_addr = 0;
  846. info.enable_mask = 0;
  847. info.flags = 0;
  848. info.group = CVMX_ERROR_GROUP_INTERNAL;
  849. info.group_index = 0;
  850. info.parent.reg_type = CVMX_ERROR_REGIST

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