18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/arm/include/asm/glue-proc.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 1997-1999 Russell King 68c2ecf20Sopenharmony_ci * Copyright (C) 2000 Deep Blue Solutions Ltd 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci#ifndef ASM_GLUE_PROC_H 98c2ecf20Sopenharmony_ci#define ASM_GLUE_PROC_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <asm/glue.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci/* 148c2ecf20Sopenharmony_ci * Work out if we need multiple CPU support 158c2ecf20Sopenharmony_ci */ 168c2ecf20Sopenharmony_ci#undef MULTI_CPU 178c2ecf20Sopenharmony_ci#undef CPU_NAME 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci/* 208c2ecf20Sopenharmony_ci * CPU_NAME - the prefix for CPU related functions 218c2ecf20Sopenharmony_ci */ 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM7TDMI 248c2ecf20Sopenharmony_ci# ifdef CPU_NAME 258c2ecf20Sopenharmony_ci# undef MULTI_CPU 268c2ecf20Sopenharmony_ci# define MULTI_CPU 278c2ecf20Sopenharmony_ci# else 288c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm7tdmi 298c2ecf20Sopenharmony_ci# endif 308c2ecf20Sopenharmony_ci#endif 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM720T 338c2ecf20Sopenharmony_ci# ifdef CPU_NAME 348c2ecf20Sopenharmony_ci# undef MULTI_CPU 358c2ecf20Sopenharmony_ci# define MULTI_CPU 368c2ecf20Sopenharmony_ci# else 378c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm720 388c2ecf20Sopenharmony_ci# endif 398c2ecf20Sopenharmony_ci#endif 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM740T 428c2ecf20Sopenharmony_ci# ifdef CPU_NAME 438c2ecf20Sopenharmony_ci# undef MULTI_CPU 448c2ecf20Sopenharmony_ci# define MULTI_CPU 458c2ecf20Sopenharmony_ci# else 468c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm740 478c2ecf20Sopenharmony_ci# endif 488c2ecf20Sopenharmony_ci#endif 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM9TDMI 518c2ecf20Sopenharmony_ci# ifdef CPU_NAME 528c2ecf20Sopenharmony_ci# undef MULTI_CPU 538c2ecf20Sopenharmony_ci# define MULTI_CPU 548c2ecf20Sopenharmony_ci# else 558c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm9tdmi 568c2ecf20Sopenharmony_ci# endif 578c2ecf20Sopenharmony_ci#endif 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM920T 608c2ecf20Sopenharmony_ci# ifdef CPU_NAME 618c2ecf20Sopenharmony_ci# undef MULTI_CPU 628c2ecf20Sopenharmony_ci# define MULTI_CPU 638c2ecf20Sopenharmony_ci# else 648c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm920 658c2ecf20Sopenharmony_ci# endif 668c2ecf20Sopenharmony_ci#endif 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM922T 698c2ecf20Sopenharmony_ci# ifdef CPU_NAME 708c2ecf20Sopenharmony_ci# undef MULTI_CPU 718c2ecf20Sopenharmony_ci# define MULTI_CPU 728c2ecf20Sopenharmony_ci# else 738c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm922 748c2ecf20Sopenharmony_ci# endif 758c2ecf20Sopenharmony_ci#endif 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_FA526 788c2ecf20Sopenharmony_ci# ifdef CPU_NAME 798c2ecf20Sopenharmony_ci# undef MULTI_CPU 808c2ecf20Sopenharmony_ci# define MULTI_CPU 818c2ecf20Sopenharmony_ci# else 828c2ecf20Sopenharmony_ci# define CPU_NAME cpu_fa526 838c2ecf20Sopenharmony_ci# endif 848c2ecf20Sopenharmony_ci#endif 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM925T 878c2ecf20Sopenharmony_ci# ifdef CPU_NAME 888c2ecf20Sopenharmony_ci# undef MULTI_CPU 898c2ecf20Sopenharmony_ci# define MULTI_CPU 908c2ecf20Sopenharmony_ci# else 918c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm925 928c2ecf20Sopenharmony_ci# endif 938c2ecf20Sopenharmony_ci#endif 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM926T 968c2ecf20Sopenharmony_ci# ifdef CPU_NAME 978c2ecf20Sopenharmony_ci# undef MULTI_CPU 988c2ecf20Sopenharmony_ci# define MULTI_CPU 998c2ecf20Sopenharmony_ci# else 1008c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm926 1018c2ecf20Sopenharmony_ci# endif 1028c2ecf20Sopenharmony_ci#endif 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM940T 1058c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1068c2ecf20Sopenharmony_ci# undef MULTI_CPU 1078c2ecf20Sopenharmony_ci# define MULTI_CPU 1088c2ecf20Sopenharmony_ci# else 1098c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm940 1108c2ecf20Sopenharmony_ci# endif 1118c2ecf20Sopenharmony_ci#endif 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM946E 1148c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1158c2ecf20Sopenharmony_ci# undef MULTI_CPU 1168c2ecf20Sopenharmony_ci# define MULTI_CPU 1178c2ecf20Sopenharmony_ci# else 1188c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm946 1198c2ecf20Sopenharmony_ci# endif 1208c2ecf20Sopenharmony_ci#endif 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_SA110 1238c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1248c2ecf20Sopenharmony_ci# undef MULTI_CPU 1258c2ecf20Sopenharmony_ci# define MULTI_CPU 1268c2ecf20Sopenharmony_ci# else 1278c2ecf20Sopenharmony_ci# define CPU_NAME cpu_sa110 1288c2ecf20Sopenharmony_ci# endif 1298c2ecf20Sopenharmony_ci#endif 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_SA1100 1328c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1338c2ecf20Sopenharmony_ci# undef MULTI_CPU 1348c2ecf20Sopenharmony_ci# define MULTI_CPU 1358c2ecf20Sopenharmony_ci# else 1368c2ecf20Sopenharmony_ci# define CPU_NAME cpu_sa1100 1378c2ecf20Sopenharmony_ci# endif 1388c2ecf20Sopenharmony_ci#endif 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM1020 1418c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1428c2ecf20Sopenharmony_ci# undef MULTI_CPU 1438c2ecf20Sopenharmony_ci# define MULTI_CPU 1448c2ecf20Sopenharmony_ci# else 1458c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm1020 1468c2ecf20Sopenharmony_ci# endif 1478c2ecf20Sopenharmony_ci#endif 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM1020E 1508c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1518c2ecf20Sopenharmony_ci# undef MULTI_CPU 1528c2ecf20Sopenharmony_ci# define MULTI_CPU 1538c2ecf20Sopenharmony_ci# else 1548c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm1020e 1558c2ecf20Sopenharmony_ci# endif 1568c2ecf20Sopenharmony_ci#endif 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM1022 1598c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1608c2ecf20Sopenharmony_ci# undef MULTI_CPU 1618c2ecf20Sopenharmony_ci# define MULTI_CPU 1628c2ecf20Sopenharmony_ci# else 1638c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm1022 1648c2ecf20Sopenharmony_ci# endif 1658c2ecf20Sopenharmony_ci#endif 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_ARM1026 1688c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1698c2ecf20Sopenharmony_ci# undef MULTI_CPU 1708c2ecf20Sopenharmony_ci# define MULTI_CPU 1718c2ecf20Sopenharmony_ci# else 1728c2ecf20Sopenharmony_ci# define CPU_NAME cpu_arm1026 1738c2ecf20Sopenharmony_ci# endif 1748c2ecf20Sopenharmony_ci#endif 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_XSCALE 1778c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1788c2ecf20Sopenharmony_ci# undef MULTI_CPU 1798c2ecf20Sopenharmony_ci# define MULTI_CPU 1808c2ecf20Sopenharmony_ci# else 1818c2ecf20Sopenharmony_ci# define CPU_NAME cpu_xscale 1828c2ecf20Sopenharmony_ci# endif 1838c2ecf20Sopenharmony_ci#endif 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_XSC3 1868c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1878c2ecf20Sopenharmony_ci# undef MULTI_CPU 1888c2ecf20Sopenharmony_ci# define MULTI_CPU 1898c2ecf20Sopenharmony_ci# else 1908c2ecf20Sopenharmony_ci# define CPU_NAME cpu_xsc3 1918c2ecf20Sopenharmony_ci# endif 1928c2ecf20Sopenharmony_ci#endif 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_MOHAWK 1958c2ecf20Sopenharmony_ci# ifdef CPU_NAME 1968c2ecf20Sopenharmony_ci# undef MULTI_CPU 1978c2ecf20Sopenharmony_ci# define MULTI_CPU 1988c2ecf20Sopenharmony_ci# else 1998c2ecf20Sopenharmony_ci# define CPU_NAME cpu_mohawk 2008c2ecf20Sopenharmony_ci# endif 2018c2ecf20Sopenharmony_ci#endif 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_FEROCEON 2048c2ecf20Sopenharmony_ci# ifdef CPU_NAME 2058c2ecf20Sopenharmony_ci# undef MULTI_CPU 2068c2ecf20Sopenharmony_ci# define MULTI_CPU 2078c2ecf20Sopenharmony_ci# else 2088c2ecf20Sopenharmony_ci# define CPU_NAME cpu_feroceon 2098c2ecf20Sopenharmony_ci# endif 2108c2ecf20Sopenharmony_ci#endif 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) 2138c2ecf20Sopenharmony_ci# ifdef CPU_NAME 2148c2ecf20Sopenharmony_ci# undef MULTI_CPU 2158c2ecf20Sopenharmony_ci# define MULTI_CPU 2168c2ecf20Sopenharmony_ci# else 2178c2ecf20Sopenharmony_ci# define CPU_NAME cpu_v6 2188c2ecf20Sopenharmony_ci# endif 2198c2ecf20Sopenharmony_ci#endif 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_V7M 2228c2ecf20Sopenharmony_ci# ifdef CPU_NAME 2238c2ecf20Sopenharmony_ci# undef MULTI_CPU 2248c2ecf20Sopenharmony_ci# define MULTI_CPU 2258c2ecf20Sopenharmony_ci# else 2268c2ecf20Sopenharmony_ci# define CPU_NAME cpu_v7m 2278c2ecf20Sopenharmony_ci# endif 2288c2ecf20Sopenharmony_ci#endif 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_PJ4B 2318c2ecf20Sopenharmony_ci# ifdef CPU_NAME 2328c2ecf20Sopenharmony_ci# undef MULTI_CPU 2338c2ecf20Sopenharmony_ci# define MULTI_CPU 2348c2ecf20Sopenharmony_ci# else 2358c2ecf20Sopenharmony_ci# define CPU_NAME cpu_pj4b 2368c2ecf20Sopenharmony_ci# endif 2378c2ecf20Sopenharmony_ci#endif 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_V7 2408c2ecf20Sopenharmony_ci/* 2418c2ecf20Sopenharmony_ci * Cortex-A9 needs a different suspend/resume function, so we need 2428c2ecf20Sopenharmony_ci * multiple CPU support for ARMv7 anyway. 2438c2ecf20Sopenharmony_ci */ 2448c2ecf20Sopenharmony_ci# undef MULTI_CPU 2458c2ecf20Sopenharmony_ci# define MULTI_CPU 2468c2ecf20Sopenharmony_ci#endif 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci#ifndef MULTI_CPU 2498c2ecf20Sopenharmony_ci#define cpu_proc_init __glue(CPU_NAME,_proc_init) 2508c2ecf20Sopenharmony_ci#define cpu_proc_fin __glue(CPU_NAME,_proc_fin) 2518c2ecf20Sopenharmony_ci#define cpu_reset __glue(CPU_NAME,_reset) 2528c2ecf20Sopenharmony_ci#define cpu_do_idle __glue(CPU_NAME,_do_idle) 2538c2ecf20Sopenharmony_ci#define cpu_dcache_clean_area __glue(CPU_NAME,_dcache_clean_area) 2548c2ecf20Sopenharmony_ci#define cpu_do_switch_mm __glue(CPU_NAME,_switch_mm) 2558c2ecf20Sopenharmony_ci#define cpu_set_pte_ext __glue(CPU_NAME,_set_pte_ext) 2568c2ecf20Sopenharmony_ci#define cpu_suspend_size __glue(CPU_NAME,_suspend_size) 2578c2ecf20Sopenharmony_ci#define cpu_do_suspend __glue(CPU_NAME,_do_suspend) 2588c2ecf20Sopenharmony_ci#define cpu_do_resume __glue(CPU_NAME,_do_resume) 2598c2ecf20Sopenharmony_ci#endif 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci#endif 262