xref: /linux/arch/powerpc/include/asm/mce.h (revision e22a22740c1ac23aaa10835f026b3549ee3e4e75)
1*e22a2274SMahesh Salgaonkar /*
2*e22a2274SMahesh Salgaonkar  * Machine check exception header file.
3*e22a2274SMahesh Salgaonkar  *
4*e22a2274SMahesh Salgaonkar  * This program is free software; you can redistribute it and/or modify
5*e22a2274SMahesh Salgaonkar  * it under the terms of the GNU General Public License as published by
6*e22a2274SMahesh Salgaonkar  * the Free Software Foundation; either version 2 of the License, or
7*e22a2274SMahesh Salgaonkar  * (at your option) any later version.
8*e22a2274SMahesh Salgaonkar  *
9*e22a2274SMahesh Salgaonkar  * This program is distributed in the hope that it will be useful,
10*e22a2274SMahesh Salgaonkar  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*e22a2274SMahesh Salgaonkar  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12*e22a2274SMahesh Salgaonkar  * GNU General Public License for more details.
13*e22a2274SMahesh Salgaonkar  *
14*e22a2274SMahesh Salgaonkar  * You should have received a copy of the GNU General Public License
15*e22a2274SMahesh Salgaonkar  * along with this program; if not, write to the Free Software
16*e22a2274SMahesh Salgaonkar  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17*e22a2274SMahesh Salgaonkar  *
18*e22a2274SMahesh Salgaonkar  * Copyright 2013 IBM Corporation
19*e22a2274SMahesh Salgaonkar  * Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
20*e22a2274SMahesh Salgaonkar  */
21*e22a2274SMahesh Salgaonkar 
22*e22a2274SMahesh Salgaonkar #ifndef __ASM_PPC64_MCE_H__
23*e22a2274SMahesh Salgaonkar #define __ASM_PPC64_MCE_H__
24*e22a2274SMahesh Salgaonkar 
25*e22a2274SMahesh Salgaonkar #include <linux/bitops.h>
26*e22a2274SMahesh Salgaonkar 
27*e22a2274SMahesh Salgaonkar /*
28*e22a2274SMahesh Salgaonkar  * Machine Check bits on power7 and power8
29*e22a2274SMahesh Salgaonkar  */
30*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_LOADSTORE(srr1)	((srr1) & PPC_BIT(42)) /* P8 too */
31*e22a2274SMahesh Salgaonkar 
32*e22a2274SMahesh Salgaonkar /* SRR1 bits for machine check (On Power7 and Power8) */
33*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH(srr1)	((srr1) & PPC_BITMASK(43, 45)) /* P8 too */
34*e22a2274SMahesh Salgaonkar 
35*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH_UE		(0x1 << PPC_BITLSHIFT(45)) /* P8 too */
36*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH_SLB_PARITY	(0x2 << PPC_BITLSHIFT(45)) /* P8 too */
37*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH_SLB_MULTIHIT	(0x3 << PPC_BITLSHIFT(45)) /* P8 too */
38*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH_SLB_BOTH	(0x4 << PPC_BITLSHIFT(45))
39*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH_TLB_MULTIHIT	(0x5 << PPC_BITLSHIFT(45)) /* P8 too */
40*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH_UE_TLB_RELOAD	(0x6 << PPC_BITLSHIFT(45)) /* P8 too */
41*e22a2274SMahesh Salgaonkar #define P7_SRR1_MC_IFETCH_UE_IFU_INTERNAL	(0x7 << PPC_BITLSHIFT(45))
42*e22a2274SMahesh Salgaonkar 
43*e22a2274SMahesh Salgaonkar /* SRR1 bits for machine check (On Power8) */
44*e22a2274SMahesh Salgaonkar #define P8_SRR1_MC_IFETCH_ERAT_MULTIHIT	(0x4 << PPC_BITLSHIFT(45))
45*e22a2274SMahesh Salgaonkar 
46*e22a2274SMahesh Salgaonkar /* DSISR bits for machine check (On Power7 and Power8) */
47*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_UE			(PPC_BIT(48))	/* P8 too */
48*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_UE_TABLEWALK	(PPC_BIT(49))	/* P8 too */
49*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_ERAT_MULTIHIT	(PPC_BIT(52))	/* P8 too */
50*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_TLB_MULTIHIT_MFTLB	(PPC_BIT(53))	/* P8 too */
51*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_SLB_PARITY_MFSLB	(PPC_BIT(55))	/* P8 too */
52*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_SLB_MULTIHIT	(PPC_BIT(56))	/* P8 too */
53*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_SLB_MULTIHIT_PARITY	(PPC_BIT(57))	/* P8 too */
54*e22a2274SMahesh Salgaonkar 
55*e22a2274SMahesh Salgaonkar /*
56*e22a2274SMahesh Salgaonkar  * DSISR bits for machine check (Power8) in addition to above.
57*e22a2274SMahesh Salgaonkar  * Secondary DERAT Multihit
58*e22a2274SMahesh Salgaonkar  */
59*e22a2274SMahesh Salgaonkar #define P8_DSISR_MC_ERAT_MULTIHIT_SEC	(PPC_BIT(54))
60*e22a2274SMahesh Salgaonkar 
61*e22a2274SMahesh Salgaonkar /* SLB error bits */
62*e22a2274SMahesh Salgaonkar #define P7_DSISR_MC_SLB_ERRORS		(P7_DSISR_MC_ERAT_MULTIHIT | \
63*e22a2274SMahesh Salgaonkar 					 P7_DSISR_MC_SLB_PARITY_MFSLB | \
64*e22a2274SMahesh Salgaonkar 					 P7_DSISR_MC_SLB_MULTIHIT | \
65*e22a2274SMahesh Salgaonkar 					 P7_DSISR_MC_SLB_MULTIHIT_PARITY)
66*e22a2274SMahesh Salgaonkar 
67*e22a2274SMahesh Salgaonkar #endif /* __ASM_PPC64_MCE_H__ */
68