xref: /openbmc/linux/arch/arm/mm/fsr-3level.c (revision 20e2fc42)
1 // SPDX-License-Identifier: GPL-2.0
2 static struct fsr_info fsr_info[] = {
3 	{ do_bad,		SIGBUS,  0,		"unknown 0"			},
4 	{ do_bad,		SIGBUS,  0,		"unknown 1"			},
5 	{ do_bad,		SIGBUS,  0,		"unknown 2"			},
6 	{ do_bad,		SIGBUS,  0,		"unknown 3"			},
7 	{ do_bad,		SIGBUS,  0,		"reserved translation fault"	},
8 	{ do_translation_fault,	SIGSEGV, SEGV_MAPERR,	"level 1 translation fault"	},
9 	{ do_translation_fault,	SIGSEGV, SEGV_MAPERR,	"level 2 translation fault"	},
10 	{ do_page_fault,	SIGSEGV, SEGV_MAPERR,	"level 3 translation fault"	},
11 	{ do_bad,		SIGBUS,  0,		"reserved access flag fault"	},
12 	{ do_bad,		SIGSEGV, SEGV_ACCERR,	"level 1 access flag fault"	},
13 	{ do_page_fault,	SIGSEGV, SEGV_ACCERR,	"level 2 access flag fault"	},
14 	{ do_page_fault,	SIGSEGV, SEGV_ACCERR,	"level 3 access flag fault"	},
15 	{ do_bad,		SIGBUS,  0,		"reserved permission fault"	},
16 	{ do_bad,		SIGSEGV, SEGV_ACCERR,	"level 1 permission fault"	},
17 	{ do_page_fault,	SIGSEGV, SEGV_ACCERR,	"level 2 permission fault"	},
18 	{ do_page_fault,	SIGSEGV, SEGV_ACCERR,	"level 3 permission fault"	},
19 	{ do_bad,		SIGBUS,  0,		"synchronous external abort"	},
20 	{ do_bad,		SIGBUS,  0,		"asynchronous external abort"	},
21 	{ do_bad,		SIGBUS,  0,		"unknown 18"			},
22 	{ do_bad,		SIGBUS,  0,		"unknown 19"			},
23 	{ do_bad,		SIGBUS,  0,		"synchronous abort (translation table walk)" },
24 	{ do_bad,		SIGBUS,  0,		"synchronous abort (translation table walk)" },
25 	{ do_bad,		SIGBUS,  0,		"synchronous abort (translation table walk)" },
26 	{ do_bad,		SIGBUS,  0,		"synchronous abort (translation table walk)" },
27 	{ do_bad,		SIGBUS,  0,		"synchronous parity error"	},
28 	{ do_bad,		SIGBUS,  0,		"asynchronous parity error"	},
29 	{ do_bad,		SIGBUS,  0,		"unknown 26"			},
30 	{ do_bad,		SIGBUS,  0,		"unknown 27"			},
31 	{ do_bad,		SIGBUS,  0,		"synchronous parity error (translation table walk" },
32 	{ do_bad,		SIGBUS,  0,		"synchronous parity error (translation table walk" },
33 	{ do_bad,		SIGBUS,  0,		"synchronous parity error (translation table walk" },
34 	{ do_bad,		SIGBUS,  0,		"synchronous parity error (translation table walk" },
35 	{ do_bad,		SIGBUS,  0,		"unknown 32"			},
36 	{ do_bad,		SIGBUS,  BUS_ADRALN,	"alignment fault"		},
37 	{ do_bad,		SIGBUS,  0,		"debug event"			},
38 	{ do_bad,		SIGBUS,  0,		"unknown 35"			},
39 	{ do_bad,		SIGBUS,  0,		"unknown 36"			},
40 	{ do_bad,		SIGBUS,  0,		"unknown 37"			},
41 	{ do_bad,		SIGBUS,  0,		"unknown 38"			},
42 	{ do_bad,		SIGBUS,  0,		"unknown 39"			},
43 	{ do_bad,		SIGBUS,  0,		"unknown 40"			},
44 	{ do_bad,		SIGBUS,  0,		"unknown 41"			},
45 	{ do_bad,		SIGBUS,  0,		"unknown 42"			},
46 	{ do_bad,		SIGBUS,  0,		"unknown 43"			},
47 	{ do_bad,		SIGBUS,  0,		"unknown 44"			},
48 	{ do_bad,		SIGBUS,  0,		"unknown 45"			},
49 	{ do_bad,		SIGBUS,  0,		"unknown 46"			},
50 	{ do_bad,		SIGBUS,  0,		"unknown 47"			},
51 	{ do_bad,		SIGBUS,  0,		"unknown 48"			},
52 	{ do_bad,		SIGBUS,  0,		"unknown 49"			},
53 	{ do_bad,		SIGBUS,  0,		"unknown 50"			},
54 	{ do_bad,		SIGBUS,  0,		"unknown 51"			},
55 	{ do_bad,		SIGBUS,  0,		"implementation fault (lockdown abort)" },
56 	{ do_bad,		SIGBUS,  0,		"unknown 53"			},
57 	{ do_bad,		SIGBUS,  0,		"unknown 54"			},
58 	{ do_bad,		SIGBUS,  0,		"unknown 55"			},
59 	{ do_bad,		SIGBUS,  0,		"unknown 56"			},
60 	{ do_bad,		SIGBUS,  0,		"unknown 57"			},
61 	{ do_bad,		SIGBUS,  0,		"implementation fault (coprocessor abort)" },
62 	{ do_bad,		SIGBUS,  0,		"unknown 59"			},
63 	{ do_bad,		SIGBUS,  0,		"unknown 60"			},
64 	{ do_bad,		SIGBUS,  0,		"unknown 61"			},
65 	{ do_bad,		SIGBUS,  0,		"unknown 62"			},
66 	{ do_bad,		SIGBUS,  0,		"unknown 63"			},
67 };
68 
69 #define ifsr_info	fsr_info
70