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