1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
6 #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
9 static struct cpu_spec cpu_specs
[] __initdata
= {
11 .pvr_mask
= 0xf0000fff,
12 .pvr_value
= 0x40000850,
13 .cpu_name
= "440GR Rev. A",
14 .cpu_features
= CPU_FTRS_44X
,
15 .cpu_user_features
= COMMON_USER_BOOKE
,
16 .mmu_features
= MMU_FTR_TYPE_44x
,
19 .machine_check
= machine_check_4xx
,
22 { /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */
23 .pvr_mask
= 0xf0000fff,
24 .pvr_value
= 0x40000858,
25 .cpu_name
= "440EP Rev. A",
26 .cpu_features
= CPU_FTRS_44X
,
27 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
28 .mmu_features
= MMU_FTR_TYPE_44x
,
31 .cpu_setup
= __setup_cpu_440ep
,
32 .machine_check
= machine_check_4xx
,
36 .pvr_mask
= 0xf0000fff,
37 .pvr_value
= 0x400008d3,
38 .cpu_name
= "440GR Rev. B",
39 .cpu_features
= CPU_FTRS_44X
,
40 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
41 .mmu_features
= MMU_FTR_TYPE_44x
,
44 .machine_check
= machine_check_4xx
,
47 { /* Matches both physical and logical PVR for 440EP (logical pvr = pvr | 0x8) */
48 .pvr_mask
= 0xf0000ff7,
49 .pvr_value
= 0x400008d4,
50 .cpu_name
= "440EP Rev. C",
51 .cpu_features
= CPU_FTRS_44X
,
52 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
53 .mmu_features
= MMU_FTR_TYPE_44x
,
56 .cpu_setup
= __setup_cpu_440ep
,
57 .machine_check
= machine_check_4xx
,
60 { /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */
61 .pvr_mask
= 0xf0000fff,
62 .pvr_value
= 0x400008db,
63 .cpu_name
= "440EP Rev. B",
64 .cpu_features
= CPU_FTRS_44X
,
65 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
66 .mmu_features
= MMU_FTR_TYPE_44x
,
69 .cpu_setup
= __setup_cpu_440ep
,
70 .machine_check
= machine_check_4xx
,
74 .pvr_mask
= 0xf0000ffb,
75 .pvr_value
= 0x200008D0,
77 .cpu_features
= CPU_FTRS_44X
,
78 .cpu_user_features
= COMMON_USER_BOOKE
,
79 .mmu_features
= MMU_FTR_TYPE_44x
,
82 .cpu_setup
= __setup_cpu_440grx
,
83 .machine_check
= machine_check_440A
,
86 { /* Use logical PVR for 440EPx (logical pvr = pvr | 0x8) */
87 .pvr_mask
= 0xf0000ffb,
88 .pvr_value
= 0x200008D8,
90 .cpu_features
= CPU_FTRS_44X
,
91 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
92 .mmu_features
= MMU_FTR_TYPE_44x
,
95 .cpu_setup
= __setup_cpu_440epx
,
96 .machine_check
= machine_check_440A
,
100 .pvr_mask
= 0xf0000fff,
101 .pvr_value
= 0x40000440,
102 .cpu_name
= "440GP Rev. B",
103 .cpu_features
= CPU_FTRS_44X
,
104 .cpu_user_features
= COMMON_USER_BOOKE
,
105 .mmu_features
= MMU_FTR_TYPE_44x
,
108 .machine_check
= machine_check_4xx
,
109 .platform
= "ppc440gp",
112 .pvr_mask
= 0xf0000fff,
113 .pvr_value
= 0x40000481,
114 .cpu_name
= "440GP Rev. C",
115 .cpu_features
= CPU_FTRS_44X
,
116 .cpu_user_features
= COMMON_USER_BOOKE
,
117 .mmu_features
= MMU_FTR_TYPE_44x
,
120 .machine_check
= machine_check_4xx
,
121 .platform
= "ppc440gp",
124 .pvr_mask
= 0xf0000fff,
125 .pvr_value
= 0x50000850,
126 .cpu_name
= "440GX Rev. A",
127 .cpu_features
= CPU_FTRS_44X
,
128 .cpu_user_features
= COMMON_USER_BOOKE
,
129 .mmu_features
= MMU_FTR_TYPE_44x
,
132 .cpu_setup
= __setup_cpu_440gx
,
133 .machine_check
= machine_check_440A
,
134 .platform
= "ppc440",
137 .pvr_mask
= 0xf0000fff,
138 .pvr_value
= 0x50000851,
139 .cpu_name
= "440GX Rev. B",
140 .cpu_features
= CPU_FTRS_44X
,
141 .cpu_user_features
= COMMON_USER_BOOKE
,
142 .mmu_features
= MMU_FTR_TYPE_44x
,
145 .cpu_setup
= __setup_cpu_440gx
,
146 .machine_check
= machine_check_440A
,
147 .platform
= "ppc440",
150 .pvr_mask
= 0xf0000fff,
151 .pvr_value
= 0x50000892,
152 .cpu_name
= "440GX Rev. C",
153 .cpu_features
= CPU_FTRS_44X
,
154 .cpu_user_features
= COMMON_USER_BOOKE
,
155 .mmu_features
= MMU_FTR_TYPE_44x
,
158 .cpu_setup
= __setup_cpu_440gx
,
159 .machine_check
= machine_check_440A
,
160 .platform
= "ppc440",
163 .pvr_mask
= 0xf0000fff,
164 .pvr_value
= 0x50000894,
165 .cpu_name
= "440GX Rev. F",
166 .cpu_features
= CPU_FTRS_44X
,
167 .cpu_user_features
= COMMON_USER_BOOKE
,
168 .mmu_features
= MMU_FTR_TYPE_44x
,
171 .cpu_setup
= __setup_cpu_440gx
,
172 .machine_check
= machine_check_440A
,
173 .platform
= "ppc440",
176 .pvr_mask
= 0xfff00fff,
177 .pvr_value
= 0x53200891,
178 .cpu_name
= "440SP Rev. A",
179 .cpu_features
= CPU_FTRS_44X
,
180 .cpu_user_features
= COMMON_USER_BOOKE
,
181 .mmu_features
= MMU_FTR_TYPE_44x
,
184 .machine_check
= machine_check_4xx
,
185 .platform
= "ppc440",
187 { /* 440SPe Rev. A */
188 .pvr_mask
= 0xfff00fff,
189 .pvr_value
= 0x53400890,
190 .cpu_name
= "440SPe Rev. A",
191 .cpu_features
= CPU_FTRS_44X
,
192 .cpu_user_features
= COMMON_USER_BOOKE
,
193 .mmu_features
= MMU_FTR_TYPE_44x
,
196 .cpu_setup
= __setup_cpu_440spe
,
197 .machine_check
= machine_check_440A
,
198 .platform
= "ppc440",
200 { /* 440SPe Rev. B */
201 .pvr_mask
= 0xfff00fff,
202 .pvr_value
= 0x53400891,
203 .cpu_name
= "440SPe Rev. B",
204 .cpu_features
= CPU_FTRS_44X
,
205 .cpu_user_features
= COMMON_USER_BOOKE
,
206 .mmu_features
= MMU_FTR_TYPE_44x
,
209 .cpu_setup
= __setup_cpu_440spe
,
210 .machine_check
= machine_check_440A
,
211 .platform
= "ppc440",
214 .pvr_mask
= 0xffff0006,
215 .pvr_value
= 0x13020002,
217 .cpu_features
= CPU_FTRS_440x6
,
218 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
219 .mmu_features
= MMU_FTR_TYPE_44x
,
222 .cpu_setup
= __setup_cpu_460ex
,
223 .machine_check
= machine_check_440A
,
224 .platform
= "ppc440",
227 .pvr_mask
= 0xffff0007,
228 .pvr_value
= 0x13020004,
229 .cpu_name
= "460EX Rev. B",
230 .cpu_features
= CPU_FTRS_440x6
,
231 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
232 .mmu_features
= MMU_FTR_TYPE_44x
,
235 .cpu_setup
= __setup_cpu_460ex
,
236 .machine_check
= machine_check_440A
,
237 .platform
= "ppc440",
240 .pvr_mask
= 0xffff0006,
241 .pvr_value
= 0x13020000,
243 .cpu_features
= CPU_FTRS_440x6
,
244 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
245 .mmu_features
= MMU_FTR_TYPE_44x
,
248 .cpu_setup
= __setup_cpu_460gt
,
249 .machine_check
= machine_check_440A
,
250 .platform
= "ppc440",
253 .pvr_mask
= 0xffff0007,
254 .pvr_value
= 0x13020005,
255 .cpu_name
= "460GT Rev. B",
256 .cpu_features
= CPU_FTRS_440x6
,
257 .cpu_user_features
= COMMON_USER_BOOKE
| PPC_FEATURE_HAS_FPU
,
258 .mmu_features
= MMU_FTR_TYPE_44x
,
261 .cpu_setup
= __setup_cpu_460gt
,
262 .machine_check
= machine_check_440A
,
263 .platform
= "ppc440",
266 .pvr_mask
= 0xffffff00,
267 .pvr_value
= 0x13541800,
269 .cpu_features
= CPU_FTRS_44X
,
270 .cpu_user_features
= COMMON_USER_BOOKE
,
271 .mmu_features
= MMU_FTR_TYPE_44x
,
274 .cpu_setup
= __setup_cpu_460sx
,
275 .machine_check
= machine_check_440A
,
276 .platform
= "ppc440",
278 { /* 464 in APM821xx */
279 .pvr_mask
= 0xfffffff0,
280 .pvr_value
= 0x12C41C80,
281 .cpu_name
= "APM821XX",
282 .cpu_features
= CPU_FTRS_44X
,
283 .cpu_user_features
= COMMON_USER_BOOKE
|
285 .mmu_features
= MMU_FTR_TYPE_44x
,
288 .cpu_setup
= __setup_cpu_apm821xx
,
289 .machine_check
= machine_check_440A
,
290 .platform
= "ppc440",
292 { /* default match */
293 .pvr_mask
= 0x00000000,
294 .pvr_value
= 0x00000000,
295 .cpu_name
= "(generic 44x PPC)",
296 .cpu_features
= CPU_FTRS_44X
,
297 .cpu_user_features
= COMMON_USER_BOOKE
,
298 .mmu_features
= MMU_FTR_TYPE_44x
,
301 .machine_check
= machine_check_4xx
,
302 .platform
= "ppc440",