cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cpu-type.h (4055B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 *
      6 * Copyright (C) 2003, 2004 Ralf Baechle
      7 * Copyright (C) 2004  Maciej W. Rozycki
      8 */
      9#ifndef __ASM_CPU_TYPE_H
     10#define __ASM_CPU_TYPE_H
     11
     12#include <linux/smp.h>
     13#include <linux/compiler.h>
     14
     15static inline int __pure __get_cpu_type(const int cpu_type)
     16{
     17	switch (cpu_type) {
     18#if defined(CONFIG_SYS_HAS_CPU_LOONGSON2E) || \
     19    defined(CONFIG_SYS_HAS_CPU_LOONGSON2F)
     20	case CPU_LOONGSON2EF:
     21#endif
     22
     23#ifdef CONFIG_SYS_HAS_CPU_LOONGSON64
     24	case CPU_LOONGSON64:
     25#endif
     26
     27#if defined(CONFIG_SYS_HAS_CPU_LOONGSON1B) || \
     28    defined(CONFIG_SYS_HAS_CPU_LOONGSON1C)
     29	case CPU_LOONGSON32:
     30#endif
     31
     32#ifdef CONFIG_SYS_HAS_CPU_MIPS32_R1
     33	case CPU_4KC:
     34	case CPU_ALCHEMY:
     35	case CPU_PR4450:
     36#endif
     37
     38#if defined(CONFIG_SYS_HAS_CPU_MIPS32_R1) || \
     39    defined(CONFIG_SYS_HAS_CPU_MIPS32_R2)
     40	case CPU_4KEC:
     41	case CPU_XBURST:
     42#endif
     43
     44#ifdef CONFIG_SYS_HAS_CPU_MIPS32_R2
     45	case CPU_4KSC:
     46	case CPU_24K:
     47	case CPU_34K:
     48	case CPU_1004K:
     49	case CPU_74K:
     50	case CPU_1074K:
     51	case CPU_M14KC:
     52	case CPU_M14KEC:
     53	case CPU_INTERAPTIV:
     54	case CPU_PROAPTIV:
     55#endif
     56
     57#ifdef CONFIG_SYS_HAS_CPU_MIPS32_R5
     58	case CPU_M5150:
     59	case CPU_P5600:
     60#endif
     61
     62#if defined(CONFIG_SYS_HAS_CPU_MIPS32_R2) || \
     63    defined(CONFIG_SYS_HAS_CPU_MIPS32_R5) || \
     64    defined(CONFIG_SYS_HAS_CPU_MIPS32_R6) || \
     65    defined(CONFIG_SYS_HAS_CPU_MIPS64_R2) || \
     66    defined(CONFIG_SYS_HAS_CPU_MIPS64_R5) || \
     67    defined(CONFIG_SYS_HAS_CPU_MIPS64_R6)
     68	case CPU_QEMU_GENERIC:
     69#endif
     70
     71#ifdef CONFIG_SYS_HAS_CPU_MIPS64_R1
     72	case CPU_5KC:
     73	case CPU_5KE:
     74	case CPU_20KC:
     75	case CPU_25KF:
     76	case CPU_SB1:
     77	case CPU_SB1A:
     78#endif
     79
     80#ifdef CONFIG_SYS_HAS_CPU_MIPS64_R2
     81	/*
     82	 * All MIPS64 R2 processors have their own special symbols.  That is,
     83	 * there currently is no pure R2 core
     84	 */
     85#endif
     86
     87#ifdef CONFIG_SYS_HAS_CPU_MIPS32_R6
     88	case CPU_M6250:
     89#endif
     90
     91#ifdef CONFIG_SYS_HAS_CPU_MIPS64_R6
     92	case CPU_I6400:
     93	case CPU_I6500:
     94	case CPU_P6600:
     95#endif
     96
     97#ifdef CONFIG_SYS_HAS_CPU_R3000
     98	case CPU_R2000:
     99	case CPU_R3000:
    100	case CPU_R3000A:
    101	case CPU_R3041:
    102	case CPU_R3051:
    103	case CPU_R3052:
    104	case CPU_R3081:
    105	case CPU_R3081E:
    106#endif
    107
    108#ifdef CONFIG_SYS_HAS_CPU_VR41XX
    109	case CPU_VR41XX:
    110	case CPU_VR4111:
    111	case CPU_VR4121:
    112	case CPU_VR4122:
    113	case CPU_VR4131:
    114	case CPU_VR4133:
    115	case CPU_VR4181:
    116	case CPU_VR4181A:
    117#endif
    118
    119#ifdef CONFIG_SYS_HAS_CPU_R4300
    120	case CPU_R4300:
    121	case CPU_R4310:
    122#endif
    123
    124#ifdef CONFIG_SYS_HAS_CPU_R4X00
    125	case CPU_R4000PC:
    126	case CPU_R4000SC:
    127	case CPU_R4000MC:
    128	case CPU_R4200:
    129	case CPU_R4400PC:
    130	case CPU_R4400SC:
    131	case CPU_R4400MC:
    132	case CPU_R4600:
    133	case CPU_R4700:
    134	case CPU_R4640:
    135	case CPU_R4650:
    136#endif
    137
    138#ifdef CONFIG_SYS_HAS_CPU_TX49XX
    139	case CPU_TX49XX:
    140#endif
    141
    142#ifdef CONFIG_SYS_HAS_CPU_R5000
    143	case CPU_R5000:
    144#endif
    145
    146#ifdef CONFIG_SYS_HAS_CPU_R5500
    147	case CPU_R5500:
    148#endif
    149
    150#ifdef CONFIG_SYS_HAS_CPU_NEVADA
    151	case CPU_NEVADA:
    152#endif
    153
    154#ifdef CONFIG_SYS_HAS_CPU_R10000
    155	case CPU_R10000:
    156	case CPU_R12000:
    157	case CPU_R14000:
    158	case CPU_R16000:
    159#endif
    160#ifdef CONFIG_SYS_HAS_CPU_RM7000
    161	case CPU_RM7000:
    162	case CPU_SR71000:
    163#endif
    164#ifdef CONFIG_SYS_HAS_CPU_SB1
    165	case CPU_SB1:
    166	case CPU_SB1A:
    167#endif
    168#ifdef CONFIG_SYS_HAS_CPU_CAVIUM_OCTEON
    169	case CPU_CAVIUM_OCTEON:
    170	case CPU_CAVIUM_OCTEON_PLUS:
    171	case CPU_CAVIUM_OCTEON2:
    172	case CPU_CAVIUM_OCTEON3:
    173#endif
    174
    175#if defined(CONFIG_SYS_HAS_CPU_BMIPS32_3300) || \
    176	defined (CONFIG_SYS_HAS_CPU_MIPS32_R1)
    177	case CPU_BMIPS32:
    178	case CPU_BMIPS3300:
    179#endif
    180
    181#ifdef CONFIG_SYS_HAS_CPU_BMIPS4350
    182	case CPU_BMIPS4350:
    183#endif
    184
    185#ifdef CONFIG_SYS_HAS_CPU_BMIPS4380
    186	case CPU_BMIPS4380:
    187#endif
    188
    189#ifdef CONFIG_SYS_HAS_CPU_BMIPS5000
    190	case CPU_BMIPS5000:
    191#endif
    192		break;
    193	default:
    194		unreachable();
    195	}
    196
    197	return cpu_type;
    198}
    199
    200static inline int __pure current_cpu_type(void)
    201{
    202	const int cpu_type = current_cpu_data.cputype;
    203
    204	return __get_cpu_type(cpu_type);
    205}
    206
    207static inline int __pure boot_cpu_type(void)
    208{
    209	const int cpu_type = cpu_data[0].cputype;
    210
    211	return __get_cpu_type(cpu_type);
    212}
    213
    214#endif /* __ASM_CPU_TYPE_H */