mce.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __ALPHA_MCE_H
  3. #define __ALPHA_MCE_H
  4. /*
  5. * This is the logout header that should be common to all platforms
  6. * (assuming they are running OSF/1 PALcode, I guess).
  7. */
  8. struct el_common {
  9. unsigned int size; /* size in bytes of logout area */
  10. unsigned int sbz1 : 30; /* should be zero */
  11. unsigned int err2 : 1; /* second error */
  12. unsigned int retry : 1; /* retry flag */
  13. unsigned int proc_offset; /* processor-specific offset */
  14. unsigned int sys_offset; /* system-specific offset */
  15. unsigned int code; /* machine check code */
  16. unsigned int frame_rev; /* frame revision */
  17. };
  18. /* Machine Check Frame for uncorrectable errors (Large format)
  19. * --- This is used to log uncorrectable errors such as
  20. * double bit ECC errors.
  21. * --- These errors are detected by both processor and systems.
  22. */
  23. struct el_common_EV5_uncorrectable_mcheck {
  24. unsigned long shadow[8]; /* Shadow reg. 8-14, 25 */
  25. unsigned long paltemp[24]; /* PAL TEMP REGS. */
  26. unsigned long exc_addr; /* Address of excepting instruction*/
  27. unsigned long exc_sum; /* Summary of arithmetic traps. */
  28. unsigned long exc_mask; /* Exception mask (from exc_sum). */
  29. unsigned long pal_base; /* Base address for PALcode. */
  30. unsigned long isr; /* Interrupt Status Reg. */
  31. unsigned long icsr; /* CURRENT SETUP OF EV5 IBOX */
  32. unsigned long ic_perr_stat; /* I-CACHE Reg. <11> set Data parity
  33. <12> set TAG parity*/
  34. unsigned long dc_perr_stat; /* D-CACHE error Reg. Bits set to 1:
  35. <2> Data error in bank 0
  36. <3> Data error in bank 1
  37. <4> Tag error in bank 0
  38. <5> Tag error in bank 1 */
  39. unsigned long va; /* Effective VA of fault or miss. */
  40. unsigned long mm_stat; /* Holds the reason for D-stream
  41. fault or D-cache parity errors */
  42. unsigned long sc_addr; /* Address that was being accessed
  43. when EV5 detected Secondary cache
  44. failure. */
  45. unsigned long sc_stat; /* Helps determine if the error was
  46. TAG/Data parity(Secondary Cache)*/
  47. unsigned long bc_tag_addr; /* Contents of EV5 BC_TAG_ADDR */
  48. unsigned long ei_addr; /* Physical address of any transfer
  49. that is logged in EV5 EI_STAT */
  50. unsigned long fill_syndrome; /* For correcting ECC errors. */
  51. unsigned long ei_stat; /* Helps identify reason of any
  52. processor uncorrectable error
  53. at its external interface. */
  54. unsigned long ld_lock; /* Contents of EV5 LD_LOCK register*/
  55. };
  56. struct el_common_EV6_mcheck {
  57. unsigned int FrameSize; /* Bytes, including this field */
  58. unsigned int FrameFlags; /* <31> = Retry, <30> = Second Error */
  59. unsigned int CpuOffset; /* Offset to CPU-specific info */
  60. unsigned int SystemOffset; /* Offset to system-specific info */
  61. unsigned int MCHK_Code;
  62. unsigned int MCHK_Frame_Rev;
  63. unsigned long I_STAT; /* EV6 Internal Processor Registers */
  64. unsigned long DC_STAT; /* (See the 21264 Spec) */
  65. unsigned long C_ADDR;
  66. unsigned long DC1_SYNDROME;
  67. unsigned long DC0_SYNDROME;
  68. unsigned long C_STAT;
  69. unsigned long C_STS;
  70. unsigned long MM_STAT;
  71. unsigned long EXC_ADDR;
  72. unsigned long IER_CM;
  73. unsigned long ISUM;
  74. unsigned long RESERVED0;
  75. unsigned long PAL_BASE;
  76. unsigned long I_CTL;
  77. unsigned long PCTX;
  78. };
  79. #endif /* __ALPHA_MCE_H */