162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *  arch/arm/include/asm/glue-df.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci *  Copyright (C) 1997-1999 Russell King
662306a36Sopenharmony_ci *  Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci#ifndef ASM_GLUE_DF_H
962306a36Sopenharmony_ci#define ASM_GLUE_DF_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <asm/glue.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/*
1462306a36Sopenharmony_ci *	Data Abort Model
1562306a36Sopenharmony_ci *	================
1662306a36Sopenharmony_ci *
1762306a36Sopenharmony_ci *	We have the following to choose from:
1862306a36Sopenharmony_ci *	  arm7		- ARM7 style
1962306a36Sopenharmony_ci *	  v4_early	- ARMv4 without Thumb early abort handler
2062306a36Sopenharmony_ci *	  v4t_late	- ARMv4 with Thumb late abort handler
2162306a36Sopenharmony_ci *	  v4t_early	- ARMv4 with Thumb early abort handler
2262306a36Sopenharmony_ci *	  v5t_early	- ARMv5 with Thumb early abort handler
2362306a36Sopenharmony_ci *	  v5tj_early	- ARMv5 with Thumb and Java early abort handler
2462306a36Sopenharmony_ci *	  xscale	- ARMv5 with Thumb with Xscale extensions
2562306a36Sopenharmony_ci *	  v6_early	- ARMv6 generic early abort handler
2662306a36Sopenharmony_ci *	  v7_early	- ARMv7 generic early abort handler
2762306a36Sopenharmony_ci */
2862306a36Sopenharmony_ci#undef CPU_DABORT_HANDLER
2962306a36Sopenharmony_ci#undef MULTI_DABORT
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_EV4
3262306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
3362306a36Sopenharmony_ci#  define MULTI_DABORT 1
3462306a36Sopenharmony_ci# else
3562306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER v4_early_abort
3662306a36Sopenharmony_ci# endif
3762306a36Sopenharmony_ci#endif
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_LV4T
4062306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
4162306a36Sopenharmony_ci#  define MULTI_DABORT 1
4262306a36Sopenharmony_ci# else
4362306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER v4t_late_abort
4462306a36Sopenharmony_ci# endif
4562306a36Sopenharmony_ci#endif
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_EV4T
4862306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
4962306a36Sopenharmony_ci#  define MULTI_DABORT 1
5062306a36Sopenharmony_ci# else
5162306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER v4t_early_abort
5262306a36Sopenharmony_ci# endif
5362306a36Sopenharmony_ci#endif
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_EV5T
5662306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
5762306a36Sopenharmony_ci#  define MULTI_DABORT 1
5862306a36Sopenharmony_ci# else
5962306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER v5t_early_abort
6062306a36Sopenharmony_ci# endif
6162306a36Sopenharmony_ci#endif
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_EV5TJ
6462306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
6562306a36Sopenharmony_ci#  define MULTI_DABORT 1
6662306a36Sopenharmony_ci# else
6762306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER v5tj_early_abort
6862306a36Sopenharmony_ci# endif
6962306a36Sopenharmony_ci#endif
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_EV6
7262306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
7362306a36Sopenharmony_ci#  define MULTI_DABORT 1
7462306a36Sopenharmony_ci# else
7562306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER v6_early_abort
7662306a36Sopenharmony_ci# endif
7762306a36Sopenharmony_ci#endif
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_EV7
8062306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
8162306a36Sopenharmony_ci#  define MULTI_DABORT 1
8262306a36Sopenharmony_ci# else
8362306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER v7_early_abort
8462306a36Sopenharmony_ci# endif
8562306a36Sopenharmony_ci#endif
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci#ifdef CONFIG_CPU_ABRT_NOMMU
8862306a36Sopenharmony_ci# ifdef CPU_DABORT_HANDLER
8962306a36Sopenharmony_ci#  define MULTI_DABORT 1
9062306a36Sopenharmony_ci# else
9162306a36Sopenharmony_ci#  define CPU_DABORT_HANDLER nommu_early_abort
9262306a36Sopenharmony_ci# endif
9362306a36Sopenharmony_ci#endif
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci#ifndef CPU_DABORT_HANDLER
9662306a36Sopenharmony_ci#error Unknown data abort handler type
9762306a36Sopenharmony_ci#endif
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci#endif
100