Revision 2e4d7e3e target-arm/cpu.c
b/target-arm/cpu.c | ||
---|---|---|
130 | 130 |
static void arm1136_r2_initfn(Object *obj) |
131 | 131 |
{ |
132 | 132 |
ARMCPU *cpu = ARM_CPU(obj); |
133 |
/* What qemu calls "arm1136_r2" is actually the 1136 r0p2, ie an |
|
134 |
* older core than plain "arm1136". In particular this does not |
|
135 |
* have the v6K features. |
|
136 |
* These ID register values are correct for 1136 but may be wrong |
|
137 |
* for 1136_r2 (in particular r0p2 does not actually implement most |
|
138 |
* of the ID registers). |
|
139 |
*/ |
|
133 | 140 |
set_feature(&cpu->env, ARM_FEATURE_V6); |
134 | 141 |
set_feature(&cpu->env, ARM_FEATURE_VFP); |
135 | 142 |
cpu->midr = ARM_CPUID_ARM1136_R2; |
... | ... | |
138 | 145 |
cpu->mvfr1 = 0x00000000; |
139 | 146 |
cpu->ctr = 0x1dd20d2; |
140 | 147 |
cpu->reset_sctlr = 0x00050078; |
148 |
cpu->id_pfr0 = 0x111; |
|
149 |
cpu->id_pfr1 = 0x1; |
|
150 |
cpu->id_dfr0 = 0x2; |
|
151 |
cpu->id_afr0 = 0x3; |
|
152 |
cpu->id_mmfr0 = 0x01130003; |
|
153 |
cpu->id_mmfr1 = 0x10030302; |
|
154 |
cpu->id_mmfr2 = 0x01222110; |
|
155 |
cpu->id_isar0 = 0x00140011; |
|
156 |
cpu->id_isar1 = 0x12002111; |
|
157 |
cpu->id_isar2 = 0x11231111; |
|
158 |
cpu->id_isar3 = 0x01102131; |
|
159 |
cpu->id_isar4 = 0x141; |
|
141 | 160 |
} |
142 | 161 |
|
143 | 162 |
static void arm1136_initfn(Object *obj) |
... | ... | |
152 | 171 |
cpu->mvfr1 = 0x00000000; |
153 | 172 |
cpu->ctr = 0x1dd20d2; |
154 | 173 |
cpu->reset_sctlr = 0x00050078; |
174 |
cpu->id_pfr0 = 0x111; |
|
175 |
cpu->id_pfr1 = 0x1; |
|
176 |
cpu->id_dfr0 = 0x2; |
|
177 |
cpu->id_afr0 = 0x3; |
|
178 |
cpu->id_mmfr0 = 0x01130003; |
|
179 |
cpu->id_mmfr1 = 0x10030302; |
|
180 |
cpu->id_mmfr2 = 0x01222110; |
|
181 |
cpu->id_isar0 = 0x00140011; |
|
182 |
cpu->id_isar1 = 0x12002111; |
|
183 |
cpu->id_isar2 = 0x11231111; |
|
184 |
cpu->id_isar3 = 0x01102131; |
|
185 |
cpu->id_isar4 = 0x141; |
|
155 | 186 |
} |
156 | 187 |
|
157 | 188 |
static void arm1176_initfn(Object *obj) |
... | ... | |
166 | 197 |
cpu->mvfr1 = 0x00000000; |
167 | 198 |
cpu->ctr = 0x1dd20d2; |
168 | 199 |
cpu->reset_sctlr = 0x00050078; |
200 |
cpu->id_pfr0 = 0x111; |
|
201 |
cpu->id_pfr1 = 0x11; |
|
202 |
cpu->id_dfr0 = 0x33; |
|
203 |
cpu->id_afr0 = 0; |
|
204 |
cpu->id_mmfr0 = 0x01130003; |
|
205 |
cpu->id_mmfr1 = 0x10030302; |
|
206 |
cpu->id_mmfr2 = 0x01222100; |
|
207 |
cpu->id_isar0 = 0x0140011; |
|
208 |
cpu->id_isar1 = 0x12002111; |
|
209 |
cpu->id_isar2 = 0x11231121; |
|
210 |
cpu->id_isar3 = 0x01102131; |
|
211 |
cpu->id_isar4 = 0x01141; |
|
169 | 212 |
} |
170 | 213 |
|
171 | 214 |
static void arm11mpcore_initfn(Object *obj) |
... | ... | |
179 | 222 |
cpu->mvfr0 = 0x11111111; |
180 | 223 |
cpu->mvfr1 = 0x00000000; |
181 | 224 |
cpu->ctr = 0x1dd20d2; |
225 |
cpu->id_pfr0 = 0x111; |
|
226 |
cpu->id_pfr1 = 0x1; |
|
227 |
cpu->id_dfr0 = 0; |
|
228 |
cpu->id_afr0 = 0x2; |
|
229 |
cpu->id_mmfr0 = 0x01100103; |
|
230 |
cpu->id_mmfr1 = 0x10020302; |
|
231 |
cpu->id_mmfr2 = 0x01222000; |
|
232 |
cpu->id_isar0 = 0x00100011; |
|
233 |
cpu->id_isar1 = 0x12002111; |
|
234 |
cpu->id_isar2 = 0x11221011; |
|
235 |
cpu->id_isar3 = 0x01102131; |
|
236 |
cpu->id_isar4 = 0x141; |
|
182 | 237 |
} |
183 | 238 |
|
184 | 239 |
static void cortex_m3_initfn(Object *obj) |
... | ... | |
202 | 257 |
cpu->mvfr1 = 0x00011100; |
203 | 258 |
cpu->ctr = 0x82048004; |
204 | 259 |
cpu->reset_sctlr = 0x00c50078; |
260 |
cpu->id_pfr0 = 0x1031; |
|
261 |
cpu->id_pfr1 = 0x11; |
|
262 |
cpu->id_dfr0 = 0x400; |
|
263 |
cpu->id_afr0 = 0; |
|
264 |
cpu->id_mmfr0 = 0x31100003; |
|
265 |
cpu->id_mmfr1 = 0x20000000; |
|
266 |
cpu->id_mmfr2 = 0x01202000; |
|
267 |
cpu->id_mmfr3 = 0x11; |
|
268 |
cpu->id_isar0 = 0x00101111; |
|
269 |
cpu->id_isar1 = 0x12112111; |
|
270 |
cpu->id_isar2 = 0x21232031; |
|
271 |
cpu->id_isar3 = 0x11112131; |
|
272 |
cpu->id_isar4 = 0x00111142; |
|
205 | 273 |
} |
206 | 274 |
|
207 | 275 |
static void cortex_a9_initfn(Object *obj) |
... | ... | |
223 | 291 |
cpu->mvfr1 = 0x01111111; |
224 | 292 |
cpu->ctr = 0x80038003; |
225 | 293 |
cpu->reset_sctlr = 0x00c50078; |
294 |
cpu->id_pfr0 = 0x1031; |
|
295 |
cpu->id_pfr1 = 0x11; |
|
296 |
cpu->id_dfr0 = 0x000; |
|
297 |
cpu->id_afr0 = 0; |
|
298 |
cpu->id_mmfr0 = 0x00100103; |
|
299 |
cpu->id_mmfr1 = 0x20000000; |
|
300 |
cpu->id_mmfr2 = 0x01230000; |
|
301 |
cpu->id_mmfr3 = 0x00002111; |
|
302 |
cpu->id_isar0 = 0x00101111; |
|
303 |
cpu->id_isar1 = 0x13112111; |
|
304 |
cpu->id_isar2 = 0x21232041; |
|
305 |
cpu->id_isar3 = 0x11112131; |
|
306 |
cpu->id_isar4 = 0x00111142; |
|
226 | 307 |
} |
227 | 308 |
|
228 | 309 |
static void cortex_a15_initfn(Object *obj) |
... | ... | |
242 | 323 |
cpu->mvfr1 = 0x11111111; |
243 | 324 |
cpu->ctr = 0x8444c004; |
244 | 325 |
cpu->reset_sctlr = 0x00c50078; |
326 |
cpu->id_pfr0 = 0x00001131; |
|
327 |
cpu->id_pfr1 = 0x00011011; |
|
328 |
cpu->id_dfr0 = 0x02010555; |
|
329 |
cpu->id_afr0 = 0x00000000; |
|
330 |
cpu->id_mmfr0 = 0x10201105; |
|
331 |
cpu->id_mmfr1 = 0x20000000; |
|
332 |
cpu->id_mmfr2 = 0x01240000; |
|
333 |
cpu->id_mmfr3 = 0x02102211; |
|
334 |
cpu->id_isar0 = 0x02101110; |
|
335 |
cpu->id_isar1 = 0x13112111; |
|
336 |
cpu->id_isar2 = 0x21232041; |
|
337 |
cpu->id_isar3 = 0x11112131; |
|
338 |
cpu->id_isar4 = 0x10011142; |
|
245 | 339 |
} |
246 | 340 |
|
247 | 341 |
static void ti925t_initfn(Object *obj) |
Also available in: Unified diff