blob: 209e46c02dddfac4d042568c83e35e48c40cf6e5 [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Russell King753790e2011-02-06 15:32:24 +00002/*
3 * arch/arm/include/asm/glue-df.h
4 *
5 * Copyright (C) 1997-1999 Russell King
6 * Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
Russell King753790e2011-02-06 15:32:24 +00007 */
8#ifndef ASM_GLUE_DF_H
9#define ASM_GLUE_DF_H
10
11#include <asm/glue.h>
12
13/*
14 * Data Abort Model
15 * ================
16 *
17 * We have the following to choose from:
Russell King753790e2011-02-06 15:32:24 +000018 * arm7 - ARM7 style
19 * v4_early - ARMv4 without Thumb early abort handler
20 * v4t_late - ARMv4 with Thumb late abort handler
21 * v4t_early - ARMv4 with Thumb early abort handler
Uwe Kleine-König473296e02013-01-30 12:07:14 +010022 * v5t_early - ARMv5 with Thumb early abort handler
23 * v5tj_early - ARMv5 with Thumb and Java early abort handler
Russell King753790e2011-02-06 15:32:24 +000024 * xscale - ARMv5 with Thumb with Xscale extensions
25 * v6_early - ARMv6 generic early abort handler
26 * v7_early - ARMv7 generic early abort handler
27 */
28#undef CPU_DABORT_HANDLER
29#undef MULTI_DABORT
30
Russell King753790e2011-02-06 15:32:24 +000031#ifdef CONFIG_CPU_ABRT_EV4
32# ifdef CPU_DABORT_HANDLER
33# define MULTI_DABORT 1
34# else
35# define CPU_DABORT_HANDLER v4_early_abort
36# endif
37#endif
38
Uwe Kleine-König473296e02013-01-30 12:07:14 +010039#ifdef CONFIG_CPU_ABRT_LV4T
40# ifdef CPU_DABORT_HANDLER
41# define MULTI_DABORT 1
42# else
43# define CPU_DABORT_HANDLER v4t_late_abort
44# endif
45#endif
46
Russell King753790e2011-02-06 15:32:24 +000047#ifdef CONFIG_CPU_ABRT_EV4T
48# ifdef CPU_DABORT_HANDLER
49# define MULTI_DABORT 1
50# else
51# define CPU_DABORT_HANDLER v4t_early_abort
52# endif
53#endif
54
Russell King753790e2011-02-06 15:32:24 +000055#ifdef CONFIG_CPU_ABRT_EV5T
56# ifdef CPU_DABORT_HANDLER
57# define MULTI_DABORT 1
58# else
59# define CPU_DABORT_HANDLER v5t_early_abort
60# endif
61#endif
62
Uwe Kleine-König473296e02013-01-30 12:07:14 +010063#ifdef CONFIG_CPU_ABRT_EV5TJ
64# ifdef CPU_DABORT_HANDLER
65# define MULTI_DABORT 1
66# else
67# define CPU_DABORT_HANDLER v5tj_early_abort
68# endif
69#endif
70
Russell King753790e2011-02-06 15:32:24 +000071#ifdef CONFIG_CPU_ABRT_EV6
72# ifdef CPU_DABORT_HANDLER
73# define MULTI_DABORT 1
74# else
75# define CPU_DABORT_HANDLER v6_early_abort
76# endif
77#endif
78
79#ifdef CONFIG_CPU_ABRT_EV7
80# ifdef CPU_DABORT_HANDLER
81# define MULTI_DABORT 1
82# else
83# define CPU_DABORT_HANDLER v7_early_abort
84# endif
85#endif
86
Catalin Marinas55bdd692010-05-21 18:06:41 +010087#ifdef CONFIG_CPU_ABRT_NOMMU
88# ifdef CPU_DABORT_HANDLER
89# define MULTI_DABORT 1
90# else
91# define CPU_DABORT_HANDLER nommu_early_abort
92# endif
93#endif
94
Russell King753790e2011-02-06 15:32:24 +000095#ifndef CPU_DABORT_HANDLER
96#error Unknown data abort handler type
97#endif
98
99#endif