1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 *  arch/arm/include/asm/glue-pf.h
4 *
5 *  Copyright (C) 1997-1999 Russell King
6 *  Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
7 */
8#ifndef ASM_GLUE_PF_H
9#define ASM_GLUE_PF_H
10
11#include <asm/glue.h>
12
13/*
14 *	Prefetch Abort Model
15 *	================
16 *
17 *	We have the following to choose from:
18 *	  legacy	- no IFSR, no IFAR
19 *	  v6		- ARMv6: IFSR, no IFAR
20 *	  v7		- ARMv7: IFSR and IFAR
21 */
22
23#undef CPU_PABORT_HANDLER
24#undef MULTI_PABORT
25
26#ifdef CONFIG_CPU_PABRT_LEGACY
27# ifdef CPU_PABORT_HANDLER
28#  define MULTI_PABORT 1
29# else
30#  define CPU_PABORT_HANDLER legacy_pabort
31# endif
32#endif
33
34#ifdef CONFIG_CPU_PABRT_V6
35# ifdef CPU_PABORT_HANDLER
36#  define MULTI_PABORT 1
37# else
38#  define CPU_PABORT_HANDLER v6_pabort
39# endif
40#endif
41
42#ifdef CONFIG_CPU_PABRT_V7
43# ifdef CPU_PABORT_HANDLER
44#  define MULTI_PABORT 1
45# else
46#  define CPU_PABORT_HANDLER v7_pabort
47# endif
48#endif
49
50#ifndef CPU_PABORT_HANDLER
51#error Unknown prefetch abort handler type
52#endif
53
54#endif
55