]> Git Repo - linux.git/blob - arch/mips/include/asm/cpu-type.h
fs/binfmt_elf: use PT_LOAD p_align values for static PIE
[linux.git] / arch / mips / include / asm / cpu-type.h
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
15 static 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_TX39XX
109         case CPU_TX3912:
110         case CPU_TX3922:
111         case CPU_TX3927:
112 #endif
113
114 #ifdef CONFIG_SYS_HAS_CPU_VR41XX
115         case CPU_VR41XX:
116         case CPU_VR4111:
117         case CPU_VR4121:
118         case CPU_VR4122:
119         case CPU_VR4131:
120         case CPU_VR4133:
121         case CPU_VR4181:
122         case CPU_VR4181A:
123 #endif
124
125 #ifdef CONFIG_SYS_HAS_CPU_R4300
126         case CPU_R4300:
127         case CPU_R4310:
128 #endif
129
130 #ifdef CONFIG_SYS_HAS_CPU_R4X00
131         case CPU_R4000PC:
132         case CPU_R4000SC:
133         case CPU_R4000MC:
134         case CPU_R4200:
135         case CPU_R4400PC:
136         case CPU_R4400SC:
137         case CPU_R4400MC:
138         case CPU_R4600:
139         case CPU_R4700:
140         case CPU_R4640:
141         case CPU_R4650:
142 #endif
143
144 #ifdef CONFIG_SYS_HAS_CPU_TX49XX
145         case CPU_TX49XX:
146 #endif
147
148 #ifdef CONFIG_SYS_HAS_CPU_R5000
149         case CPU_R5000:
150 #endif
151
152 #ifdef CONFIG_SYS_HAS_CPU_R5500
153         case CPU_R5500:
154 #endif
155
156 #ifdef CONFIG_SYS_HAS_CPU_NEVADA
157         case CPU_NEVADA:
158 #endif
159
160 #ifdef CONFIG_SYS_HAS_CPU_R10000
161         case CPU_R10000:
162         case CPU_R12000:
163         case CPU_R14000:
164         case CPU_R16000:
165 #endif
166 #ifdef CONFIG_SYS_HAS_CPU_RM7000
167         case CPU_RM7000:
168         case CPU_SR71000:
169 #endif
170 #ifdef CONFIG_SYS_HAS_CPU_SB1
171         case CPU_SB1:
172         case CPU_SB1A:
173 #endif
174 #ifdef CONFIG_SYS_HAS_CPU_CAVIUM_OCTEON
175         case CPU_CAVIUM_OCTEON:
176         case CPU_CAVIUM_OCTEON_PLUS:
177         case CPU_CAVIUM_OCTEON2:
178         case CPU_CAVIUM_OCTEON3:
179 #endif
180
181 #if defined(CONFIG_SYS_HAS_CPU_BMIPS32_3300) || \
182         defined (CONFIG_SYS_HAS_CPU_MIPS32_R1)
183         case CPU_BMIPS32:
184         case CPU_BMIPS3300:
185 #endif
186
187 #ifdef CONFIG_SYS_HAS_CPU_BMIPS4350
188         case CPU_BMIPS4350:
189 #endif
190
191 #ifdef CONFIG_SYS_HAS_CPU_BMIPS4380
192         case CPU_BMIPS4380:
193 #endif
194
195 #ifdef CONFIG_SYS_HAS_CPU_BMIPS5000
196         case CPU_BMIPS5000:
197 #endif
198                 break;
199         default:
200                 unreachable();
201         }
202
203         return cpu_type;
204 }
205
206 static inline int __pure current_cpu_type(void)
207 {
208         const int cpu_type = current_cpu_data.cputype;
209
210         return __get_cpu_type(cpu_type);
211 }
212
213 static inline int __pure boot_cpu_type(void)
214 {
215         const int cpu_type = cpu_data[0].cputype;
216
217         return __get_cpu_type(cpu_type);
218 }
219
220 #endif /* __ASM_CPU_TYPE_H */
This page took 0.044458 seconds and 4 git commands to generate.