chafsr.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:6k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* $Id: chafsr.h,v 1.1 2001/03/28 10:56:34 davem Exp $ */
  2. #ifndef _SPARC64_CHAFSR_H
  3. #define _SPARC64_CHAFSR_H
  4. /* Cheetah Asynchronous Fault Status register, ASI=0x4C VA<63:0>=0x0 */
  5. /* All bits of this register except M_SYNDROME and E_SYNDROME are
  6.  * read, write 1 to clear.  M_SYNDROME and E_SYNDROME are read-only.
  7.  */
  8. /* Multiple errors of the same type have occurred.  This bit is set when
  9.  * an uncorrectable error or a SW correctable error occurs and the status
  10.  * bit to report that error is already set.  When multiple errors of
  11.  * different types are indicated by setting multiple status bits.
  12.  *
  13.  * This bit is not set if multiple HW corrected errors with the same
  14.  * status bit occur, only uncorrectable and SW correctable ones have
  15.  * this behavior.
  16.  *
  17.  * This bit is not set when multiple ECC errors happen within a single
  18.  * 64-byte system bus transaction.  Only the first ECC error in a 16-byte
  19.  * subunit will be logged.  All errors in subsequent 16-byte subunits
  20.  * from the same 64-byte transaction are ignored.
  21.  */
  22. #define CHAFSR_ME 0x0020000000000000
  23. /* Privileged state error has occurred.  This is a capture of PSTATE.PRIV
  24.  * at the time the error is detected.
  25.  */
  26. #define CHAFSR_PRIV 0x0010000000000000
  27. /* The following bits 51 (CHAFSR_PERR) to 33 (CHAFSR_CE) are sticky error
  28.  * bits and record the most recently detected errors.  Bits accumulate
  29.  * errors that have been detected since the last write to clear the bit.
  30.  */
  31. /* System interface protocol error.  The processor asserts its' ERROR
  32.  * pin when this event occurs and it also logs a specific cause code
  33.  * into a JTAG scannable flop.
  34.  */
  35. #define CHAFSR_PERR 0x0008000000000000
  36. /* Internal processor error.  The processor asserts its' ERROR
  37.  * pin when this event occurs and it also logs a specific cause code
  38.  * into a JTAG scannable flop.
  39.  */
  40. #define CHAFSR_IERR 0x0004000000000000
  41. /* System request parity error on incoming address */
  42. #define CHAFSR_ISAP 0x0002000000000000
  43. /* HW Corrected system bus MTAG ECC error */
  44. #define CHAFSR_EMC 0x0001000000000000
  45. /* Uncorrectable system bus MTAG ECC error */
  46. #define CHAFSR_EMU 0x0000800000000000
  47. /* HW Corrected system bus data ECC error for read of interrupt vector */
  48. #define CHAFSR_IVC 0x0000400000000000
  49. /* Uncorrectable system bus data ECC error for read of interrupt vector */
  50. #define CHAFSR_IVU 0x0000200000000000
  51. /* Unmappeed error from system bus */
  52. #define CHAFSR_TO 0x0000100000000000
  53. /* Bus error response from system bus */
  54. #define CHAFSR_BERR 0x0000080000000000
  55. /* SW Correctable E-cache ECC error for instruction fetch or data access
  56.  * other than block load.
  57.  */
  58. #define CHAFSR_UCC 0x0000040000000000
  59. /* Uncorrectable E-cache ECC error for instruction fetch or data access
  60.  * other than block load.
  61.  */
  62. #define CHAFSR_UCU 0x0000020000000000
  63. /* Copyout HW Corrected ECC error */
  64. #define CHAFSR_CPC 0x0000010000000000
  65. /* Copyout Uncorrectable ECC error */
  66. #define CHAFSR_CPU 0x0000008000000000
  67. /* HW Corrected ECC error from E-cache for writeback */
  68. #define CHAFSR_WDC 0x0000004000000000
  69. /* Uncorrectable ECC error from E-cache for writeback */
  70. #define CHAFSR_WDU 0x0000002000000000
  71. /* HW Corrected ECC error from E-cache for store merge or block load */
  72. #define CHAFSR_EDC 0x0000001000000000
  73. /* Uncorrectable ECC error from E-cache for store merge or block load */
  74. #define CHAFSR_EDU 0x0000000800000000
  75. /* Uncorrectable system bus data ECC error for read of memory or I/O */
  76. #define CHAFSR_UE 0x0000000400000000
  77. /* HW Corrected system bus data ECC error for read of memory or I/O */
  78. #define CHAFSR_CE 0x0000000200000000
  79. #define CHAFSR_ERRORS (CHAFSR_PERR | CHAFSR_IERR | CHAFSR_ISAP | CHAFSR_EMC | 
  80.  CHAFSR_EMU | CHAFSR_IVC | CHAFSR_IVU | CHAFSR_TO | 
  81.  CHAFSR_BERR | CHAFSR_UCC | CHAFSR_UCU | CHAFSR_CPC | 
  82.  CHAFSR_CPU | CHAFSR_WDC | CHAFSR_WDU | CHAFSR_EDC | 
  83.  CHAFSR_EDU | CHAFSR_UE | CHAFSR_CE)
  84. /* System bus MTAG ECC syndrome.  This field captures the status of the
  85.  * first occurrence of the highest-priority error according to the M_SYND
  86.  * overwrite policy.  After the AFSR sticky bit, corresponding to the error
  87.  * for which the M_SYND is reported, is cleared, the contents of the M_SYND
  88.  * field will be unchanged by will be unfrozen for further error capture.
  89.  */
  90. #define CHAFSR_M_SYNDROME 0x00000000000f0000
  91. #define CHAFSR_M_SYNDROME_SHIFT 16
  92. /* System bus or E-cache data ECC syndrome.  This field captures the status
  93.  * of the first occurrence of the highest-priority error according to the
  94.  * E_SYND overwrite policy.  After the AFSR sticky bit, corresponding to the
  95.  * error for which the E_SYND is reported, is cleare, the contents of the E_SYND
  96.  * field will be unchanged but will be unfrozen for further error capture.
  97.  */
  98. #define CHAFSR_E_SYNDROME 0x00000000000001ff
  99. #define CHAFSR_E_SYNDROME_SHIFT 0
  100. /* The AFSR must be explicitly cleared by software, it is not cleared automatically
  101.  * by a read.  Writes to bits <51:33> with bits set will clear the corresponding
  102.  * bits in the AFSR.  Bits assosciated with disrupting traps must be cleared before
  103.  * interrupts are re-enabled to prevent multiple traps for the same error.  I.e.
  104.  * PSTATE.IE and AFSR bits control delivery of disrupting traps.
  105.  *
  106.  * Since there is only one AFAR, when multiple events have been logged by the
  107.  * bits in the AFSR, at most one of these events will have its status captured
  108.  * in the AFAR.  The highest priority of those event bits will get AFAR logging.
  109.  * The AFAR will be unlocked and available to capture the address of another event
  110.  * as soon as the one bit in AFSR that corresponds to the event logged in AFAR is
  111.  * cleared.  For example, if AFSR.CE is detected, then AFSR.UE (which overwrites
  112.  * the AFAR), and AFSR.UE is cleared by not AFSR.CE, then the AFAR will be unlocked
  113.  * and ready for another event, even though AFSR.CE is still set.  The same rules
  114.  * also apply to the M_SYNDROME and E_SYNDROME fields of the AFSR.
  115.  */
  116. /* Software bit set by linux trap handlers to indicate that the trap was
  117.  * signalled at %tl >= 1.
  118.  */
  119. #define CHAFSR_TL1 0x8000000000000000
  120. #endif /* _SPARC64_CHAFSR_H */