18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *  arch/arm/include/asm/glue-pf.h
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *  Copyright (C) 1997-1999 Russell King
68c2ecf20Sopenharmony_ci *  Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
78c2ecf20Sopenharmony_ci */
88c2ecf20Sopenharmony_ci#ifndef ASM_GLUE_PF_H
98c2ecf20Sopenharmony_ci#define ASM_GLUE_PF_H
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include <asm/glue.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci/*
148c2ecf20Sopenharmony_ci *	Prefetch Abort Model
158c2ecf20Sopenharmony_ci *	================
168c2ecf20Sopenharmony_ci *
178c2ecf20Sopenharmony_ci *	We have the following to choose from:
188c2ecf20Sopenharmony_ci *	  legacy	- no IFSR, no IFAR
198c2ecf20Sopenharmony_ci *	  v6		- ARMv6: IFSR, no IFAR
208c2ecf20Sopenharmony_ci *	  v7		- ARMv7: IFSR and IFAR
218c2ecf20Sopenharmony_ci */
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci#undef CPU_PABORT_HANDLER
248c2ecf20Sopenharmony_ci#undef MULTI_PABORT
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_PABRT_LEGACY
278c2ecf20Sopenharmony_ci# ifdef CPU_PABORT_HANDLER
288c2ecf20Sopenharmony_ci#  define MULTI_PABORT 1
298c2ecf20Sopenharmony_ci# else
308c2ecf20Sopenharmony_ci#  define CPU_PABORT_HANDLER legacy_pabort
318c2ecf20Sopenharmony_ci# endif
328c2ecf20Sopenharmony_ci#endif
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_PABRT_V6
358c2ecf20Sopenharmony_ci# ifdef CPU_PABORT_HANDLER
368c2ecf20Sopenharmony_ci#  define MULTI_PABORT 1
378c2ecf20Sopenharmony_ci# else
388c2ecf20Sopenharmony_ci#  define CPU_PABORT_HANDLER v6_pabort
398c2ecf20Sopenharmony_ci# endif
408c2ecf20Sopenharmony_ci#endif
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_PABRT_V7
438c2ecf20Sopenharmony_ci# ifdef CPU_PABORT_HANDLER
448c2ecf20Sopenharmony_ci#  define MULTI_PABORT 1
458c2ecf20Sopenharmony_ci# else
468c2ecf20Sopenharmony_ci#  define CPU_PABORT_HANDLER v7_pabort
478c2ecf20Sopenharmony_ci# endif
488c2ecf20Sopenharmony_ci#endif
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci#ifndef CPU_PABORT_HANDLER
518c2ecf20Sopenharmony_ci#error Unknown prefetch abort handler type
528c2ecf20Sopenharmony_ci#endif
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci#endif
55