|
1 PowerPC emulation status. |
|
2 The goal of this file is to provide a reference status to avoid regressions. |
|
3 |
|
4 =============================================================================== |
|
5 PowerPC core emulation status |
|
6 |
|
7 INSN: instruction set. |
|
8 OK => all instructions are emulated |
|
9 KO => some insns are missing or some should be removed |
|
10 ? => unchecked |
|
11 SPR: special purpose registers set |
|
12 OK => all SPR registered (but some may be fake) |
|
13 KO => some SPR are missing or should be removed |
|
14 ? => uncheked |
|
15 MSR: MSR bits definitions |
|
16 OK => all MSR bits properly defined |
|
17 KO => MSR definition is incorrect |
|
18 ? => unchecked |
|
19 IRQ: input signals definitions (mostly interrupts) |
|
20 OK => input signals are properly defined |
|
21 KO => input signals are not implemented (system emulation does not work) |
|
22 ? => input signals definitions may be incorrect |
|
23 MMU: MMU model implementation |
|
24 OK => MMU model is implemented and Linux is able to boot |
|
25 KO => MMU model not implemented or bugged |
|
26 ? => MMU model not tested |
|
27 EXCP: exceptions model implementation |
|
28 OK => exception model is implemented and Linux is able to boot |
|
29 KO => exception model not implemented or known to be buggy |
|
30 ? => exception model may be incorrect or is untested |
|
31 |
|
32 Embedded PowerPC cores |
|
33 *** |
|
34 PowerPC 401: |
|
35 INSN OK |
|
36 SPR OK 401A1 |
|
37 MSR OK |
|
38 IRQ KO partially implemented |
|
39 MMU OK |
|
40 EXCP ? |
|
41 |
|
42 PowerPC 401x2: |
|
43 INSN OK |
|
44 SPR OK 401B2 401C2 401D2 401E2 401F2 |
|
45 MSR OK |
|
46 IRQ KO partially implemented |
|
47 MMU OK |
|
48 EXCP ? |
|
49 |
|
50 PowerPC IOP480: |
|
51 INSN OK |
|
52 SPR OK IOP480 |
|
53 MSR OK |
|
54 IRQ KO partially implemented |
|
55 MMU OK |
|
56 EXCP ? |
|
57 |
|
58 To be checked: 401G2 401B3 Cobra |
|
59 |
|
60 *** |
|
61 PowerPC 403: |
|
62 INSN OK |
|
63 SPR OK 403GA 403GB |
|
64 MMU OK |
|
65 MSR OK |
|
66 IRQ KO not implemented |
|
67 EXCP ? |
|
68 |
|
69 PowerPC 403GCX: |
|
70 INSN OK |
|
71 SPR OK 403GCX |
|
72 MMU OK |
|
73 MSR OK |
|
74 IRQ KO not implemented |
|
75 EXCP ? |
|
76 |
|
77 To be checked: 403GC |
|
78 |
|
79 *** |
|
80 PowerPC 405: |
|
81 Checked: 405CRa 405CRb 405CRc 405EP 405GPa 405GPb 405GPc 405GPd 405GPe 405GPR |
|
82 Npe405H Npe405H2 Npe405L |
|
83 INSN OK |
|
84 SPR OK |
|
85 MSR OK |
|
86 IRQ OK |
|
87 MMU OK |
|
88 EXCP OK |
|
89 Remarks: Linux 2.4 boots (at least 1 proprietary firmware). |
|
90 uboot seems to freeze at boot time. |
|
91 To be checked: 405D2 405D4 405EZ 405LP Npe4GS3 STB03 STB04 STB25 |
|
92 x2vp4 x2vp7 x2vp20 x2vp50 |
|
93 |
|
94 XXX: find what is IBM e407b4 |
|
95 |
|
96 *** |
|
97 PowerPC 440: |
|
98 Checked: 440EPa 440EPb 440GXa 440GXb 440GXc 440GXf 440SP 440SP2 |
|
99 INSN OK |
|
100 SPR OK |
|
101 MSR OK |
|
102 IRQ KO not implemented |
|
103 MMU ? |
|
104 EXCP ? |
|
105 |
|
106 PowerPC 440GP: |
|
107 Checked: 440GPb 440GPc |
|
108 INSN OK |
|
109 SPR OK |
|
110 MSR OK |
|
111 IRQ KO not implemented |
|
112 MMU ? |
|
113 EXCP ? |
|
114 |
|
115 PowerPC 440x4: |
|
116 Checked: 440A4 440B4 440G4 440H4 |
|
117 INSN OK |
|
118 SPR OK |
|
119 MSR OK |
|
120 IRQ KO not implemented |
|
121 MMU ? |
|
122 EXCP ? |
|
123 |
|
124 PowerPC 440x5: |
|
125 Checked: 440A5 440F5 440G5 440H6 440GRa |
|
126 INSN OK |
|
127 SPR OK |
|
128 MSR OK |
|
129 IRQ KO not implemented |
|
130 MMU ? |
|
131 EXCP ? |
|
132 |
|
133 To be checked: 440EPx 440GRx 440SPE |
|
134 |
|
135 *** |
|
136 PowerPC 460: (disabled: lack of detailed specifications) |
|
137 INSN KO |
|
138 SPR KO |
|
139 MSR KO |
|
140 IRQ KO |
|
141 MMU KO |
|
142 EXCP KO |
|
143 |
|
144 PowerPC 460F: (disabled: lack of detailed specifications) |
|
145 INSN KO |
|
146 SPR KO |
|
147 MSR KO |
|
148 IRQ KO |
|
149 MMU KO |
|
150 EXCP KO |
|
151 |
|
152 *** |
|
153 PowerPC e200: (not implemented) |
|
154 INSN KO |
|
155 SPR KO |
|
156 MSR KO |
|
157 IRQ KO |
|
158 MMU KO |
|
159 EXCP KO |
|
160 |
|
161 *** |
|
162 PowerPC e300: (not implemented) |
|
163 INSN KO |
|
164 SPR KO |
|
165 MSR KO |
|
166 IRQ KO |
|
167 MMU KO |
|
168 EXCP KO |
|
169 |
|
170 *** |
|
171 PowerPC e500: (not implemented) |
|
172 INSN KO |
|
173 SPR KO |
|
174 MSR KO |
|
175 IRQ KO |
|
176 MMU KO |
|
177 EXCP KO |
|
178 |
|
179 *** |
|
180 PowerPC e600: (not implemented) |
|
181 INSN KO |
|
182 SPR KO |
|
183 MSR KO |
|
184 IRQ KO |
|
185 MMU KO |
|
186 EXCP KO |
|
187 |
|
188 *** |
|
189 32 bits PowerPC |
|
190 PowerPC 601: (601 601v2) |
|
191 INSN OK |
|
192 SPR OK is HID15 only on 601v2 ? |
|
193 MSR OK |
|
194 IRQ KO not implemented |
|
195 MMU ? |
|
196 EXCP ? |
|
197 Remarks: some instructions should have a specific behavior (not implemented) |
|
198 |
|
199 PowerPC 602: 602 |
|
200 INSN OK |
|
201 SPR OK |
|
202 MSR OK |
|
203 IRQ OK |
|
204 MMU ? |
|
205 EXCP ? at least timer and external interrupt are OK |
|
206 Remarks: Linux 2.4 crashes when entering user-mode. |
|
207 Linux 2.6.22 boots on this CPU but does not recognize it. |
|
208 |
|
209 PowerPC 603: (603) |
|
210 INSN OK |
|
211 SPR OK |
|
212 MSR OK |
|
213 IRQ OK |
|
214 MMU OK |
|
215 EXCP OK |
|
216 Remarks: Linux 2.4 boots and properly recognizes the CPU |
|
217 Linux 2.6.22 idem. |
|
218 |
|
219 PowerPC 603e: (603e11) |
|
220 INSN OK |
|
221 SPR OK |
|
222 MSR OK |
|
223 IRQ OK |
|
224 MMU OK |
|
225 EXCP OK |
|
226 Remarks: Linux 2.4 boots and properly recognizes the CPU |
|
227 Linux 2.6.22 idem. |
|
228 |
|
229 PowerPC G2: |
|
230 INSN OK |
|
231 SPR OK |
|
232 MSR OK |
|
233 IRQ OK |
|
234 MMU OK |
|
235 EXCP OK |
|
236 Remarks: Linux 2.4 boots, recognizes the CPU as a 82xx. |
|
237 Linux 2.6.22 idem. |
|
238 |
|
239 PowerPC G2le: |
|
240 INSN OK |
|
241 SPR OK |
|
242 MSR OK |
|
243 IRQ OK |
|
244 MMU OK |
|
245 EXCP OK |
|
246 Remarks: Linux 2.4 does not boots. Same symptoms as 602. |
|
247 Linux 2.6.22 boots and properly recognizes the CPU. |
|
248 |
|
249 PowerPC 604: |
|
250 INSN OK |
|
251 SPR OK |
|
252 MSR OK |
|
253 IRQ OK |
|
254 MMU OK |
|
255 EXCP OK |
|
256 Remarks: Linux 2.4 boots and properly recognizes the CPU. |
|
257 Linux 2.6.22 idem. |
|
258 |
|
259 PowerPC 7x0: |
|
260 INSN OK |
|
261 SPR OK |
|
262 MSR OK |
|
263 IRQ OK |
|
264 MMU OK |
|
265 EXCP OK |
|
266 Remarks: Linux 2.4 boots and properly recognizes the CPU. |
|
267 Linux 2.6.22 idem. |
|
268 |
|
269 PowerPC 750fx: |
|
270 INSN OK |
|
271 SPR OK |
|
272 MSR OK |
|
273 IRQ OK |
|
274 MMU OK |
|
275 EXCP OK |
|
276 Remarks: Linux 2.4 boots but does not properly recognizes the CPU. |
|
277 Linux 2.6.22 boots and properly recognizes the CPU. |
|
278 |
|
279 PowerPC 7x5: |
|
280 INSN ? |
|
281 SPR ? |
|
282 MSR ? |
|
283 IRQ OK |
|
284 MMU ? |
|
285 EXCP OK |
|
286 Remarks: Linux 2.4 does not boot. |
|
287 Linux 2.6.22 idem. |
|
288 |
|
289 PowerPC 7400: |
|
290 INSN KO Altivec missing |
|
291 SPR OK |
|
292 MSR OK |
|
293 IRQ OK |
|
294 MMU OK |
|
295 EXCP ? Altivec, ... |
|
296 Remarks: Linux 2.4 boots and properly recognize the CPU. |
|
297 Linux 2.6.22 idem. |
|
298 |
|
299 PowerPC 7410: |
|
300 INSN KO Altivec missing |
|
301 SPR OK |
|
302 MSR OK |
|
303 IRQ OK |
|
304 MMU OK |
|
305 EXCP ? Altivec, ... |
|
306 Remarks: Linux 2.4 boots and properly recognize the CPU. |
|
307 Linux 2.6.22 idem. |
|
308 Note that UM says tlbld & tlbli are implemented but this may be a mistake |
|
309 as TLB loads are managed by the hardware and the CPU does not implement the |
|
310 needed registers. |
|
311 |
|
312 PowerPC 7441: |
|
313 INSN KO Altivec missing |
|
314 SPR OK |
|
315 MSR OK |
|
316 IRQ OK |
|
317 MMU OK |
|
318 EXCP ? Altivec, ... |
|
319 Remarks: Linux does not have the code to handle TLB miss on this CPU |
|
320 Linux 2.6.22 idem. |
|
321 |
|
322 PowerPC 7450/7451: |
|
323 INSN KO Altivec missing |
|
324 SPR OK |
|
325 MSR OK |
|
326 IRQ OK |
|
327 MMU OK |
|
328 EXCP ? Altivec, ... |
|
329 Remarks: Linux does not have the code to handle TLB miss on this CPU |
|
330 Linux 2.6.22 idem. |
|
331 |
|
332 PowerPC 7445/7447: |
|
333 INSN KO Altivec missing |
|
334 SPR OK |
|
335 MSR OK |
|
336 IRQ OK |
|
337 MMU OK |
|
338 EXCP ? Altivec, ... |
|
339 Remarks: Linux does not have the code to handle TLB miss on this CPU |
|
340 Linux 2.6.22 idem. |
|
341 |
|
342 PowerPC 7455/7457: |
|
343 INSN KO Altivec missing |
|
344 SPR OK |
|
345 MSR OK |
|
346 IRQ OK |
|
347 MMU OK |
|
348 EXCP ? Altivec, ... |
|
349 Remarks: Linux does not have the code to handle TLB miss on this CPU |
|
350 Linux 2.6.22 idem. |
|
351 |
|
352 64 bits PowerPC |
|
353 PowerPC 620: (disabled) |
|
354 INSN KO |
|
355 SPR KO |
|
356 MSR ? |
|
357 IRQ KO |
|
358 MMU KO |
|
359 EXCP KO |
|
360 Remarks: not much documentation for this implementation... |
|
361 |
|
362 PowerPC 970: |
|
363 INSN KO Altivec missing and more |
|
364 SPR KO |
|
365 MSR ? |
|
366 IRQ OK |
|
367 MMU OK |
|
368 EXCP KO partially implemented |
|
369 Remarks: Should be able to boot but there is no hw platform currently emulated. |
|
370 |
|
371 PowerPC 970FX: |
|
372 INSN KO Altivec missing and more |
|
373 SPR KO |
|
374 MSR ? |
|
375 IRQ OK |
|
376 MMU OK |
|
377 EXCP KO partially implemented |
|
378 Remarks: Should be able to boot but there is no hw platform currently emulated. |
|
379 |
|
380 PowerPC 970GX: |
|
381 INSN KO Altivec missing and more |
|
382 SPR KO |
|
383 MSR ? |
|
384 IRQ OK |
|
385 MMU OK |
|
386 EXCP KO partially implemented |
|
387 Remarks: Should be able to boot but there is no hw platform currently emulated. |
|
388 |
|
389 PowerPC Cell: |
|
390 INSN KO Altivec missing and more |
|
391 SPR KO |
|
392 MSR ? |
|
393 IRQ ? |
|
394 MMU ? |
|
395 EXCP ? partially implemented |
|
396 Remarks: As the core is mostly a 970, should be able to boot. |
|
397 SPE are not implemented. |
|
398 |
|
399 PowerPC 630: (disabled: lack of detailed specifications) |
|
400 INSN KO |
|
401 SPR KO |
|
402 MSR KO |
|
403 IRQ KO |
|
404 MMU KO |
|
405 EXCP KO |
|
406 |
|
407 PowerPC 631: (disabled: lack of detailed specifications) |
|
408 INSN KO |
|
409 SPR KO |
|
410 MSR KO |
|
411 IRQ KO |
|
412 MMU KO |
|
413 EXCP KO |
|
414 |
|
415 POWER4: (disabled: lack of detailed specifications) |
|
416 INSN KO |
|
417 SPR KO |
|
418 MSR KO |
|
419 IRQ KO |
|
420 MMU KO |
|
421 EXCP KO |
|
422 |
|
423 POWER4+: (disabled: lack of detailed specifications) |
|
424 INSN KO |
|
425 SPR KO |
|
426 MSR KO |
|
427 IRQ KO |
|
428 MMU KO |
|
429 EXCP KO |
|
430 |
|
431 POWER5: (disabled: lack of detailed specifications) |
|
432 INSN KO |
|
433 SPR KO |
|
434 MSR KO |
|
435 IRQ KO |
|
436 MMU KO |
|
437 EXCP KO |
|
438 |
|
439 POWER5+: (disabled: lack of detailed specifications) |
|
440 INSN KO |
|
441 SPR KO |
|
442 MSR KO |
|
443 IRQ KO |
|
444 MMU KO |
|
445 EXCP KO |
|
446 |
|
447 POWER6: (disabled: lack of detailed specifications) |
|
448 INSN KO |
|
449 SPR KO |
|
450 MSR KO |
|
451 IRQ KO |
|
452 MMU KO |
|
453 EXCP KO |
|
454 |
|
455 RS64: (disabled: lack of detailed specifications) |
|
456 INSN KO |
|
457 SPR KO |
|
458 MSR KO |
|
459 IRQ KO |
|
460 MMU KO |
|
461 EXCP KO |
|
462 |
|
463 RS64-II: (disabled: lack of detailed specifications) |
|
464 INSN KO |
|
465 SPR KO |
|
466 MSR KO |
|
467 IRQ KO |
|
468 MMU KO |
|
469 EXCP KO |
|
470 |
|
471 RS64-III: (disabled: lack of detailed specifications) |
|
472 INSN KO |
|
473 SPR KO |
|
474 MSR KO |
|
475 IRQ KO |
|
476 MMU KO |
|
477 EXCP KO |
|
478 |
|
479 RS64-IV: (disabled: lack of detailed specifications) |
|
480 INSN KO |
|
481 SPR KO |
|
482 MSR KO |
|
483 IRQ KO |
|
484 MMU KO |
|
485 EXCP KO |
|
486 |
|
487 Original POWER |
|
488 POWER: (disabled: lack of detailed specifications) |
|
489 INSN KO |
|
490 SPR KO |
|
491 MSR KO |
|
492 IRQ KO |
|
493 MMU KO |
|
494 EXCP KO |
|
495 |
|
496 POWER2: (disabled: lack of detailed specifications) |
|
497 INSN KO |
|
498 SPR KO |
|
499 MSR KO |
|
500 IRQ KO |
|
501 MMU KO |
|
502 EXCP KO |
|
503 |
|
504 =============================================================================== |
|
505 PowerPC microcontrollers emulation status |
|
506 |
|
507 Implemementation should be sufficient to boot Linux: |
|
508 (there seem to be problems with uboot freezing at some point) |
|
509 - PowerPC 405CR |
|
510 - PowerPC 405EP |
|
511 |
|
512 TODO: |
|
513 - PowerPC 401 microcontrollers emulation |
|
514 - PowerPC 403 microcontrollers emulation |
|
515 - more PowerPC 405 microcontrollers emulation |
|
516 - Fixes / more features for implemented PowerPC 405 microcontrollers emulation |
|
517 - PowerPC 440 microcontrollers emulation |
|
518 - e200 microcontrollers emulation |
|
519 - e300 microcontrollers emulation |
|
520 - e500 microcontrollers emulation |
|
521 - e600 microcontrollers emulation |
|
522 |
|
523 =============================================================================== |
|
524 PowerPC based platforms emulation status |
|
525 |
|
526 * PREP platform (RS/6000 7043...) - TO BE CHECKED (broken) |
|
527 - Gentoo Linux live CDROM 1.4 |
|
528 - Debian Linux 3.0 |
|
529 - Mandrake Linux 9 |
|
530 |
|
531 * heathrow PowerMac platform (beige PowerMac) - TO BE CHECKED (broken) |
|
532 - Gentoo Linux live CDROM 1.4 |
|
533 - Debian Linux 3.0 |
|
534 - Mandrake Linux 9 |
|
535 |
|
536 * mac99 platform (white and blue PowerMac, ...) |
|
537 - Gentoo Linux live CDROM 1.4 - boots, compiles linux kernel |
|
538 - Debian Linux woody - boots from CDROM and HDD |
|
539 - Mandrake Linux 9 - boots from CDROM, freezes during install |
|
540 - Knoppix 2003-07-13_4 boots from CDROM, pb with X configuration |
|
541 distribution bug: X runs with a properly hand-coded configuration. |
|
542 - rock Linux 2.0 runs from CDROM |
|
543 |
|
544 * Linux 2.6 support seems deadly broken (used to boot...). |
|
545 |
|
546 * PowerPC 405EP reference boards: |
|
547 - can boot Linux 2.4 & 2.6. |
|
548 Need to provide a flash image ready to boot for reproductible tests. |
|
549 |
|
550 TODO: |
|
551 - URGENT: fix PreP and heathrow platforms |
|
552 - PowerPC 64 reference platform |
|
553 - MCA based RS/6000 emulation |
|
554 - CHRP emulation (not PowerMac) |
|
555 - PPAR emulation |
|
556 - ePPAR emulation |
|
557 - misc PowerPC reference boards emulation |
|
558 |
|
559 =============================================================================== |