diff options
Diffstat (limited to 'include/asm-mips/cpu.h')
-rw-r--r-- | include/asm-mips/cpu.h | 160 |
1 files changed, 73 insertions, 87 deletions
diff --git a/include/asm-mips/cpu.h b/include/asm-mips/cpu.h index 3857358fb6de..54fc18a4e5a8 100644 --- a/include/asm-mips/cpu.h +++ b/include/asm-mips/cpu.h | |||
@@ -106,6 +106,13 @@ | |||
106 | #define PRID_IMP_SR71000 0x0400 | 106 | #define PRID_IMP_SR71000 0x0400 |
107 | 107 | ||
108 | /* | 108 | /* |
109 | * These are the PRID's for when 23:16 == PRID_COMP_BROADCOM | ||
110 | */ | ||
111 | |||
112 | #define PRID_IMP_BCM4710 0x4000 | ||
113 | #define PRID_IMP_BCM3302 0x9000 | ||
114 | |||
115 | /* | ||
109 | * Definitions for 7:0 on legacy processors | 116 | * Definitions for 7:0 on legacy processors |
110 | */ | 117 | */ |
111 | 118 | ||
@@ -150,75 +157,55 @@ | |||
150 | 157 | ||
151 | #define FPIR_IMP_NONE 0x0000 | 158 | #define FPIR_IMP_NONE 0x0000 |
152 | 159 | ||
153 | #define CPU_UNKNOWN 0 | 160 | enum cpu_type_enum { |
154 | #define CPU_R2000 1 | 161 | CPU_UNKNOWN, |
155 | #define CPU_R3000 2 | 162 | |
156 | #define CPU_R3000A 3 | 163 | /* |
157 | #define CPU_R3041 4 | 164 | * R2000 class processors |
158 | #define CPU_R3051 5 | 165 | */ |
159 | #define CPU_R3052 6 | 166 | CPU_R2000, CPU_R3000, CPU_R3000A, CPU_R3041, CPU_R3051, CPU_R3052, |
160 | #define CPU_R3081 7 | 167 | CPU_R3081, CPU_R3081E, |
161 | #define CPU_R3081E 8 | 168 | |
162 | #define CPU_R4000PC 9 | 169 | /* |
163 | #define CPU_R4000SC 10 | 170 | * R6000 class processors |
164 | #define CPU_R4000MC 11 | 171 | */ |
165 | #define CPU_R4200 12 | 172 | CPU_R6000, CPU_R6000A, |
166 | #define CPU_R4400PC 13 | 173 | |
167 | #define CPU_R4400SC 14 | 174 | /* |
168 | #define CPU_R4400MC 15 | 175 | * R4000 class processors |
169 | #define CPU_R4600 16 | 176 | */ |
170 | #define CPU_R6000 17 | 177 | CPU_R4000PC, CPU_R4000SC, CPU_R4000MC, CPU_R4200, CPU_R4300, CPU_R4310, |
171 | #define CPU_R6000A 18 | 178 | CPU_R4400PC, CPU_R4400SC, CPU_R4400MC, CPU_R4600, CPU_R4640, CPU_R4650, |
172 | #define CPU_R8000 19 | 179 | CPU_R4700, CPU_R5000, CPU_R5000A, CPU_R5500, CPU_NEVADA, CPU_R5432, |
173 | #define CPU_R10000 20 | 180 | CPU_R10000, CPU_R12000, CPU_R14000, CPU_VR41XX, CPU_VR4111, CPU_VR4121, |
174 | #define CPU_R12000 21 | 181 | CPU_VR4122, CPU_VR4131, CPU_VR4133, CPU_VR4181, CPU_VR4181A, CPU_RM7000, |
175 | #define CPU_R4300 22 | 182 | CPU_SR71000, CPU_RM9000, CPU_TX49XX, |
176 | #define CPU_R4650 23 | 183 | |
177 | #define CPU_R4700 24 | 184 | /* |
178 | #define CPU_R5000 25 | 185 | * R8000 class processors |
179 | #define CPU_R5000A 26 | 186 | */ |
180 | #define CPU_R4640 27 | 187 | CPU_R8000, |
181 | #define CPU_NEVADA 28 | 188 | |
182 | #define CPU_RM7000 29 | 189 | /* |
183 | #define CPU_R5432 30 | 190 | * TX3900 class processors |
184 | #define CPU_4KC 31 | 191 | */ |
185 | #define CPU_5KC 32 | 192 | CPU_TX3912, CPU_TX3922, CPU_TX3927, |
186 | #define CPU_R4310 33 | 193 | |
187 | #define CPU_SB1 34 | 194 | /* |
188 | #define CPU_TX3912 35 | 195 | * MIPS32 class processors |
189 | #define CPU_TX3922 36 | 196 | */ |
190 | #define CPU_TX3927 37 | 197 | CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_74K, CPU_AU1000, |
191 | #define CPU_AU1000 38 | 198 | CPU_AU1100, CPU_AU1200, CPU_AU1500, CPU_AU1550, CPU_PR4450, |
192 | #define CPU_4KEC 39 | 199 | CPU_BCM3302, CPU_BCM4710, |
193 | #define CPU_4KSC 40 | 200 | |
194 | #define CPU_VR41XX 41 | 201 | /* |
195 | #define CPU_R5500 42 | 202 | * MIPS64 class processors |
196 | #define CPU_TX49XX 43 | 203 | */ |
197 | #define CPU_AU1500 44 | 204 | CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2, |
198 | #define CPU_20KC 45 | 205 | |
199 | #define CPU_VR4111 46 | 206 | CPU_LAST |
200 | #define CPU_VR4121 47 | 207 | }; |
201 | #define CPU_VR4122 48 | 208 | |
202 | #define CPU_VR4131 49 | ||
203 | #define CPU_VR4181 50 | ||
204 | #define CPU_VR4181A 51 | ||
205 | #define CPU_AU1100 52 | ||
206 | #define CPU_SR71000 53 | ||
207 | #define CPU_RM9000 54 | ||
208 | #define CPU_25KF 55 | ||
209 | #define CPU_VR4133 56 | ||
210 | #define CPU_AU1550 57 | ||
211 | #define CPU_24K 58 | ||
212 | #define CPU_AU1200 59 | ||
213 | #define CPU_34K 60 | ||
214 | #define CPU_PR4450 61 | ||
215 | #define CPU_SB1A 62 | ||
216 | #define CPU_74K 63 | ||
217 | #define CPU_R14000 64 | ||
218 | #define CPU_LOONGSON1 65 | ||
219 | #define CPU_LOONGSON2 66 | ||
220 | |||
221 | #define CPU_LAST 66 | ||
222 | 209 | ||
223 | /* | 210 | /* |
224 | * ISA Level encodings | 211 | * ISA Level encodings |
@@ -247,24 +234,23 @@ | |||
247 | #define MIPS_CPU_3K_CACHE 0x00000004 /* R3000-style caches */ | 234 | #define MIPS_CPU_3K_CACHE 0x00000004 /* R3000-style caches */ |
248 | #define MIPS_CPU_4K_CACHE 0x00000008 /* R4000-style caches */ | 235 | #define MIPS_CPU_4K_CACHE 0x00000008 /* R4000-style caches */ |
249 | #define MIPS_CPU_TX39_CACHE 0x00000010 /* TX3900-style caches */ | 236 | #define MIPS_CPU_TX39_CACHE 0x00000010 /* TX3900-style caches */ |
250 | #define MIPS_CPU_SB1_CACHE 0x00000020 /* SB1-style caches */ | 237 | #define MIPS_CPU_FPU 0x00000020 /* CPU has FPU */ |
251 | #define MIPS_CPU_FPU 0x00000040 /* CPU has FPU */ | 238 | #define MIPS_CPU_32FPR 0x00000040 /* 32 dbl. prec. FP registers */ |
252 | #define MIPS_CPU_32FPR 0x00000080 /* 32 dbl. prec. FP registers */ | 239 | #define MIPS_CPU_COUNTER 0x00000080 /* Cycle count/compare */ |
253 | #define MIPS_CPU_COUNTER 0x00000100 /* Cycle count/compare */ | 240 | #define MIPS_CPU_WATCH 0x00000100 /* watchpoint registers */ |
254 | #define MIPS_CPU_WATCH 0x00000200 /* watchpoint registers */ | 241 | #define MIPS_CPU_DIVEC 0x00000200 /* dedicated interrupt vector */ |
255 | #define MIPS_CPU_DIVEC 0x00000400 /* dedicated interrupt vector */ | 242 | #define MIPS_CPU_VCE 0x00000400 /* virt. coherence conflict possible */ |
256 | #define MIPS_CPU_VCE 0x00000800 /* virt. coherence conflict possible */ | 243 | #define MIPS_CPU_CACHE_CDEX_P 0x00000800 /* Create_Dirty_Exclusive CACHE op */ |
257 | #define MIPS_CPU_CACHE_CDEX_P 0x00001000 /* Create_Dirty_Exclusive CACHE op */ | 244 | #define MIPS_CPU_CACHE_CDEX_S 0x00001000 /* ... same for seconary cache ... */ |
258 | #define MIPS_CPU_CACHE_CDEX_S 0x00002000 /* ... same for seconary cache ... */ | 245 | #define MIPS_CPU_MCHECK 0x00002000 /* Machine check exception */ |
259 | #define MIPS_CPU_MCHECK 0x00004000 /* Machine check exception */ | 246 | #define MIPS_CPU_EJTAG 0x00004000 /* EJTAG exception */ |
260 | #define MIPS_CPU_EJTAG 0x00008000 /* EJTAG exception */ | 247 | #define MIPS_CPU_NOFPUEX 0x00008000 /* no FPU exception */ |
261 | #define MIPS_CPU_NOFPUEX 0x00010000 /* no FPU exception */ | 248 | #define MIPS_CPU_LLSC 0x00010000 /* CPU has ll/sc instructions */ |
262 | #define MIPS_CPU_LLSC 0x00020000 /* CPU has ll/sc instructions */ | 249 | #define MIPS_CPU_INCLUSIVE_CACHES 0x00020000 /* P-cache subset enforced */ |
263 | #define MIPS_CPU_INCLUSIVE_CACHES 0x00040000 /* P-cache subset enforced */ | 250 | #define MIPS_CPU_PREFETCH 0x00040000 /* CPU has usable prefetch */ |
264 | #define MIPS_CPU_PREFETCH 0x00080000 /* CPU has usable prefetch */ | 251 | #define MIPS_CPU_VINT 0x00080000 /* CPU supports MIPSR2 vectored interrupts */ |
265 | #define MIPS_CPU_VINT 0x00100000 /* CPU supports MIPSR2 vectored interrupts */ | 252 | #define MIPS_CPU_VEIC 0x00100000 /* CPU supports MIPSR2 external interrupt controller mode */ |
266 | #define MIPS_CPU_VEIC 0x00200000 /* CPU supports MIPSR2 external interrupt controller mode */ | 253 | #define MIPS_CPU_ULRI 0x00200000 /* CPU has ULRI feature */ |
267 | #define MIPS_CPU_ULRI 0x00400000 /* CPU has ULRI feature */ | ||
268 | 254 | ||
269 | /* | 255 | /* |
270 | * CPU ASE encodings | 256 | * CPU ASE encodings |