162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *  arch/arm/include/asm/glue-proc.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci *  Copyright (C) 1997-1999 Russell King
662306a36Sopenharmony_ci *  Copyright (C) 2000 Deep Blue Solutions Ltd
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci#ifndef ASM_GLUE_PROC_H
962306a36Sopenharmony_ci#define ASM_GLUE_PROC_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <asm/glue.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/*
1462306a36Sopenharmony_ci * Work out if we need multiple CPU support
1562306a36Sopenharmony_ci */
1662306a36Sopenharmony_ci#undef MULTI_CPU
1762306a36Sopenharmony_ci#undef CPU_NAME
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci/*
2062306a36Sopenharmony_ci * CPU_NAME - the prefix for CPU related functions
2162306a36Sopenharmony_ci */
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM7TDMI
2462306a36Sopenharmony_ci# ifdef CPU_NAME
2562306a36Sopenharmony_ci#  undef  MULTI_CPU
2662306a36Sopenharmony_ci#  define MULTI_CPU
2762306a36Sopenharmony_ci# else
2862306a36Sopenharmony_ci#  define CPU_NAME cpu_arm7tdmi
2962306a36Sopenharmony_ci# endif
3062306a36Sopenharmony_ci#endif
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM720T
3362306a36Sopenharmony_ci# ifdef CPU_NAME
3462306a36Sopenharmony_ci#  undef  MULTI_CPU
3562306a36Sopenharmony_ci#  define MULTI_CPU
3662306a36Sopenharmony_ci# else
3762306a36Sopenharmony_ci#  define CPU_NAME cpu_arm720
3862306a36Sopenharmony_ci# endif
3962306a36Sopenharmony_ci#endif
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM740T
4262306a36Sopenharmony_ci# ifdef CPU_NAME
4362306a36Sopenharmony_ci#  undef  MULTI_CPU
4462306a36Sopenharmony_ci#  define MULTI_CPU
4562306a36Sopenharmony_ci# else
4662306a36Sopenharmony_ci#  define CPU_NAME cpu_arm740
4762306a36Sopenharmony_ci# endif
4862306a36Sopenharmony_ci#endif
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM9TDMI
5162306a36Sopenharmony_ci# ifdef CPU_NAME
5262306a36Sopenharmony_ci#  undef  MULTI_CPU
5362306a36Sopenharmony_ci#  define MULTI_CPU
5462306a36Sopenharmony_ci# else
5562306a36Sopenharmony_ci#  define CPU_NAME cpu_arm9tdmi
5662306a36Sopenharmony_ci# endif
5762306a36Sopenharmony_ci#endif
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM920T
6062306a36Sopenharmony_ci# ifdef CPU_NAME
6162306a36Sopenharmony_ci#  undef  MULTI_CPU
6262306a36Sopenharmony_ci#  define MULTI_CPU
6362306a36Sopenharmony_ci# else
6462306a36Sopenharmony_ci#  define CPU_NAME cpu_arm920
6562306a36Sopenharmony_ci# endif
6662306a36Sopenharmony_ci#endif
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM922T
6962306a36Sopenharmony_ci# ifdef CPU_NAME
7062306a36Sopenharmony_ci#  undef  MULTI_CPU
7162306a36Sopenharmony_ci#  define MULTI_CPU
7262306a36Sopenharmony_ci# else
7362306a36Sopenharmony_ci#  define CPU_NAME cpu_arm922
7462306a36Sopenharmony_ci# endif
7562306a36Sopenharmony_ci#endif
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci#ifdef CONFIG_CPU_FA526
7862306a36Sopenharmony_ci# ifdef CPU_NAME
7962306a36Sopenharmony_ci#  undef  MULTI_CPU
8062306a36Sopenharmony_ci#  define MULTI_CPU
8162306a36Sopenharmony_ci# else
8262306a36Sopenharmony_ci#  define CPU_NAME cpu_fa526
8362306a36Sopenharmony_ci# endif
8462306a36Sopenharmony_ci#endif
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM925T
8762306a36Sopenharmony_ci# ifdef CPU_NAME
8862306a36Sopenharmony_ci#  undef  MULTI_CPU
8962306a36Sopenharmony_ci#  define MULTI_CPU
9062306a36Sopenharmony_ci# else
9162306a36Sopenharmony_ci#  define CPU_NAME cpu_arm925
9262306a36Sopenharmony_ci# endif
9362306a36Sopenharmony_ci#endif
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM926T
9662306a36Sopenharmony_ci# ifdef CPU_NAME
9762306a36Sopenharmony_ci#  undef  MULTI_CPU
9862306a36Sopenharmony_ci#  define MULTI_CPU
9962306a36Sopenharmony_ci# else
10062306a36Sopenharmony_ci#  define CPU_NAME cpu_arm926
10162306a36Sopenharmony_ci# endif
10262306a36Sopenharmony_ci#endif
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM940T
10562306a36Sopenharmony_ci# ifdef CPU_NAME
10662306a36Sopenharmony_ci#  undef  MULTI_CPU
10762306a36Sopenharmony_ci#  define MULTI_CPU
10862306a36Sopenharmony_ci# else
10962306a36Sopenharmony_ci#  define CPU_NAME cpu_arm940
11062306a36Sopenharmony_ci# endif
11162306a36Sopenharmony_ci#endif
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM946E
11462306a36Sopenharmony_ci# ifdef CPU_NAME
11562306a36Sopenharmony_ci#  undef  MULTI_CPU
11662306a36Sopenharmony_ci#  define MULTI_CPU
11762306a36Sopenharmony_ci# else
11862306a36Sopenharmony_ci#  define CPU_NAME cpu_arm946
11962306a36Sopenharmony_ci# endif
12062306a36Sopenharmony_ci#endif
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci#ifdef CONFIG_CPU_SA110
12362306a36Sopenharmony_ci# ifdef CPU_NAME
12462306a36Sopenharmony_ci#  undef  MULTI_CPU
12562306a36Sopenharmony_ci#  define MULTI_CPU
12662306a36Sopenharmony_ci# else
12762306a36Sopenharmony_ci#  define CPU_NAME cpu_sa110
12862306a36Sopenharmony_ci# endif
12962306a36Sopenharmony_ci#endif
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci#ifdef CONFIG_CPU_SA1100
13262306a36Sopenharmony_ci# ifdef CPU_NAME
13362306a36Sopenharmony_ci#  undef  MULTI_CPU
13462306a36Sopenharmony_ci#  define MULTI_CPU
13562306a36Sopenharmony_ci# else
13662306a36Sopenharmony_ci#  define CPU_NAME cpu_sa1100
13762306a36Sopenharmony_ci# endif
13862306a36Sopenharmony_ci#endif
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM1020
14162306a36Sopenharmony_ci# ifdef CPU_NAME
14262306a36Sopenharmony_ci#  undef  MULTI_CPU
14362306a36Sopenharmony_ci#  define MULTI_CPU
14462306a36Sopenharmony_ci# else
14562306a36Sopenharmony_ci#  define CPU_NAME cpu_arm1020
14662306a36Sopenharmony_ci# endif
14762306a36Sopenharmony_ci#endif
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM1020E
15062306a36Sopenharmony_ci# ifdef CPU_NAME
15162306a36Sopenharmony_ci#  undef  MULTI_CPU
15262306a36Sopenharmony_ci#  define MULTI_CPU
15362306a36Sopenharmony_ci# else
15462306a36Sopenharmony_ci#  define CPU_NAME cpu_arm1020e
15562306a36Sopenharmony_ci# endif
15662306a36Sopenharmony_ci#endif
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM1022
15962306a36Sopenharmony_ci# ifdef CPU_NAME
16062306a36Sopenharmony_ci#  undef  MULTI_CPU
16162306a36Sopenharmony_ci#  define MULTI_CPU
16262306a36Sopenharmony_ci# else
16362306a36Sopenharmony_ci#  define CPU_NAME cpu_arm1022
16462306a36Sopenharmony_ci# endif
16562306a36Sopenharmony_ci#endif
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci#ifdef CONFIG_CPU_ARM1026
16862306a36Sopenharmony_ci# ifdef CPU_NAME
16962306a36Sopenharmony_ci#  undef  MULTI_CPU
17062306a36Sopenharmony_ci#  define MULTI_CPU
17162306a36Sopenharmony_ci# else
17262306a36Sopenharmony_ci#  define CPU_NAME cpu_arm1026
17362306a36Sopenharmony_ci# endif
17462306a36Sopenharmony_ci#endif
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci#ifdef CONFIG_CPU_XSCALE
17762306a36Sopenharmony_ci# ifdef CPU_NAME
17862306a36Sopenharmony_ci#  undef  MULTI_CPU
17962306a36Sopenharmony_ci#  define MULTI_CPU
18062306a36Sopenharmony_ci# else
18162306a36Sopenharmony_ci#  define CPU_NAME cpu_xscale
18262306a36Sopenharmony_ci# endif
18362306a36Sopenharmony_ci#endif
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci#ifdef CONFIG_CPU_XSC3
18662306a36Sopenharmony_ci# ifdef CPU_NAME
18762306a36Sopenharmony_ci#  undef  MULTI_CPU
18862306a36Sopenharmony_ci#  define MULTI_CPU
18962306a36Sopenharmony_ci# else
19062306a36Sopenharmony_ci#  define CPU_NAME cpu_xsc3
19162306a36Sopenharmony_ci# endif
19262306a36Sopenharmony_ci#endif
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci#ifdef CONFIG_CPU_MOHAWK
19562306a36Sopenharmony_ci# ifdef CPU_NAME
19662306a36Sopenharmony_ci#  undef  MULTI_CPU
19762306a36Sopenharmony_ci#  define MULTI_CPU
19862306a36Sopenharmony_ci# else
19962306a36Sopenharmony_ci#  define CPU_NAME cpu_mohawk
20062306a36Sopenharmony_ci# endif
20162306a36Sopenharmony_ci#endif
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci#ifdef CONFIG_CPU_FEROCEON
20462306a36Sopenharmony_ci# ifdef CPU_NAME
20562306a36Sopenharmony_ci#  undef  MULTI_CPU
20662306a36Sopenharmony_ci#  define MULTI_CPU
20762306a36Sopenharmony_ci# else
20862306a36Sopenharmony_ci#  define CPU_NAME cpu_feroceon
20962306a36Sopenharmony_ci# endif
21062306a36Sopenharmony_ci#endif
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K)
21362306a36Sopenharmony_ci# ifdef CPU_NAME
21462306a36Sopenharmony_ci#  undef  MULTI_CPU
21562306a36Sopenharmony_ci#  define MULTI_CPU
21662306a36Sopenharmony_ci# else
21762306a36Sopenharmony_ci#  define CPU_NAME cpu_v6
21862306a36Sopenharmony_ci# endif
21962306a36Sopenharmony_ci#endif
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci#ifdef CONFIG_CPU_V7M
22262306a36Sopenharmony_ci# ifdef CPU_NAME
22362306a36Sopenharmony_ci#  undef  MULTI_CPU
22462306a36Sopenharmony_ci#  define MULTI_CPU
22562306a36Sopenharmony_ci# else
22662306a36Sopenharmony_ci#  define CPU_NAME cpu_v7m
22762306a36Sopenharmony_ci# endif
22862306a36Sopenharmony_ci#endif
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ci#ifdef CONFIG_CPU_PJ4B
23162306a36Sopenharmony_ci# ifdef CPU_NAME
23262306a36Sopenharmony_ci#  undef  MULTI_CPU
23362306a36Sopenharmony_ci#  define MULTI_CPU
23462306a36Sopenharmony_ci# else
23562306a36Sopenharmony_ci#  define CPU_NAME cpu_pj4b
23662306a36Sopenharmony_ci# endif
23762306a36Sopenharmony_ci#endif
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci#ifdef CONFIG_CPU_V7
24062306a36Sopenharmony_ci/*
24162306a36Sopenharmony_ci * Cortex-A9 needs a different suspend/resume function, so we need
24262306a36Sopenharmony_ci * multiple CPU support for ARMv7 anyway.
24362306a36Sopenharmony_ci */
24462306a36Sopenharmony_ci#  undef  MULTI_CPU
24562306a36Sopenharmony_ci#  define MULTI_CPU
24662306a36Sopenharmony_ci#endif
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ci#ifndef MULTI_CPU
24962306a36Sopenharmony_ci#define cpu_proc_init			__glue(CPU_NAME,_proc_init)
25062306a36Sopenharmony_ci#define cpu_proc_fin			__glue(CPU_NAME,_proc_fin)
25162306a36Sopenharmony_ci#define cpu_reset			__glue(CPU_NAME,_reset)
25262306a36Sopenharmony_ci#define cpu_do_idle			__glue(CPU_NAME,_do_idle)
25362306a36Sopenharmony_ci#define cpu_dcache_clean_area		__glue(CPU_NAME,_dcache_clean_area)
25462306a36Sopenharmony_ci#define cpu_do_switch_mm		__glue(CPU_NAME,_switch_mm)
25562306a36Sopenharmony_ci#define cpu_set_pte_ext			__glue(CPU_NAME,_set_pte_ext)
25662306a36Sopenharmony_ci#define cpu_suspend_size		__glue(CPU_NAME,_suspend_size)
25762306a36Sopenharmony_ci#define cpu_do_suspend			__glue(CPU_NAME,_do_suspend)
25862306a36Sopenharmony_ci#define cpu_do_resume			__glue(CPU_NAME,_do_resume)
25962306a36Sopenharmony_ci#endif
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci#endif
262