]>
Commit | Line | Data |
---|---|---|
76a66253 JM |
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 | ||
a750fc0b JM |
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 | |
a57d23e4 | 14 | ? => unchecked |
a750fc0b JM |
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 | |
2662a059 | 31 | |
a750fc0b JM |
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 ? | |
2662a059 | 41 | |
a750fc0b JM |
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 ? | |
2662a059 | 49 | |
a750fc0b JM |
50 | PowerPC IOP480: |
51 | INSN OK | |
52 | SPR OK IOP480 | |
53 | MSR OK | |
54 | IRQ KO partially implemented | |
55 | MMU OK | |
56 | EXCP ? | |
2662a059 | 57 | |
a750fc0b | 58 | To be checked: 401G2 401B3 Cobra |
2662a059 | 59 | |
a750fc0b | 60 | *** |
2662a059 | 61 | PowerPC 403: |
a750fc0b JM |
62 | INSN OK |
63 | SPR OK 403GA 403GB | |
64 | MMU OK | |
65 | MSR OK | |
66 | IRQ KO not implemented | |
67 | EXCP ? | |
2662a059 | 68 | |
a750fc0b JM |
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 | *** | |
2662a059 | 80 | PowerPC 405: |
a750fc0b JM |
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 | |
86f1d3ac JM |
89 | Remarks: Linux 2.4 boots (at least 1 proprietary firmware). |
90 | uboot seems to freeze at boot time. | |
a750fc0b JM |
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 | |
2662a059 | 95 | |
a750fc0b | 96 | *** |
2662a059 | 97 | PowerPC 440: |
a750fc0b JM |
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 | |
2662a059 JM |
117 | INSN OK |
118 | SPR OK | |
a750fc0b JM |
119 | MSR OK |
120 | IRQ KO not implemented | |
2662a059 JM |
121 | MMU ? |
122 | EXCP ? | |
123 | ||
a750fc0b JM |
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) | |
2662a059 JM |
145 | INSN KO |
146 | SPR KO | |
a750fc0b JM |
147 | MSR KO |
148 | IRQ KO | |
2662a059 JM |
149 | MMU KO |
150 | EXCP KO | |
151 | ||
a750fc0b JM |
152 | *** |
153 | PowerPC e200: (not implemented) | |
154 | INSN KO | |
155 | SPR KO | |
156 | MSR KO | |
157 | IRQ KO | |
158 | MMU KO | |
159 | EXCP KO | |
2662a059 | 160 | |
a750fc0b JM |
161 | *** |
162 | PowerPC e300: (not implemented) | |
2662a059 JM |
163 | INSN KO |
164 | SPR KO | |
a750fc0b JM |
165 | MSR KO |
166 | IRQ KO | |
2662a059 JM |
167 | MMU KO |
168 | EXCP KO | |
169 | ||
a750fc0b JM |
170 | *** |
171 | PowerPC e500: (not implemented) | |
2662a059 JM |
172 | INSN KO |
173 | SPR KO | |
a750fc0b JM |
174 | MSR KO |
175 | IRQ KO | |
2662a059 JM |
176 | MMU KO |
177 | EXCP KO | |
178 | ||
a750fc0b JM |
179 | *** |
180 | PowerPC e600: (not implemented) | |
181 | INSN KO | |
182 | SPR KO | |
183 | MSR KO | |
184 | IRQ KO | |
185 | MMU KO | |
186 | EXCP KO | |
76a66253 | 187 | |
a750fc0b JM |
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 | |
86f1d3ac JM |
206 | Remarks: Linux 2.4 crashes when entering user-mode. |
207 | Linux 2.6.22 boots on this CPU but does not recognize it. | |
a750fc0b JM |
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 | |
86f1d3ac | 217 | Linux 2.6.22 idem. |
a750fc0b JM |
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 | |
86f1d3ac | 227 | Linux 2.6.22 idem. |
a750fc0b JM |
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. | |
86f1d3ac | 237 | Linux 2.6.22 idem. |
a750fc0b JM |
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. | |
86f1d3ac | 247 | Linux 2.6.22 boots and properly recognizes the CPU. |
a750fc0b JM |
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. | |
86f1d3ac | 257 | Linux 2.6.22 idem. |
a750fc0b JM |
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. | |
86f1d3ac | 267 | Linux 2.6.22 idem. |
a750fc0b JM |
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. | |
86f1d3ac | 277 | Linux 2.6.22 boots and properly recognizes the CPU. |
a750fc0b JM |
278 | |
279 | PowerPC 7x5: | |
280 | INSN ? | |
281 | SPR ? | |
282 | MSR ? | |
283 | IRQ OK | |
284 | MMU ? | |
285 | EXCP OK | |
86f1d3ac JM |
286 | Remarks: Linux 2.4 does not boot. |
287 | Linux 2.6.22 idem. | |
a750fc0b JM |
288 | |
289 | PowerPC 7400: | |
290 | INSN KO Altivec missing | |
291 | SPR OK | |
292 | MSR OK | |
293 | IRQ OK | |
294 | MMU OK | |
295 | EXCP ? Altivec, ... | |
86f1d3ac JM |
296 | Remarks: Linux 2.4 boots and properly recognize the CPU. |
297 | Linux 2.6.22 idem. | |
a750fc0b JM |
298 | |
299 | PowerPC 7410: | |
300 | INSN KO Altivec missing | |
301 | SPR OK | |
302 | MSR OK | |
303 | IRQ OK | |
304 | MMU OK | |
305 | EXCP ? Altivec, ... | |
86f1d3ac JM |
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 | |
a750fc0b JM |
310 | needed registers. |
311 | ||
312 | PowerPC 7441: | |
9b22787c | 313 | INSN KO Altivec missing |
a750fc0b JM |
314 | SPR OK |
315 | MSR OK | |
316 | IRQ OK | |
9b22787c | 317 | MMU OK |
a750fc0b | 318 | EXCP ? Altivec, ... |
86f1d3ac JM |
319 | Remarks: Linux does not have the code to handle TLB miss on this CPU |
320 | Linux 2.6.22 idem. | |
a750fc0b JM |
321 | |
322 | PowerPC 7450/7451: | |
9b22787c | 323 | INSN KO Altivec missing |
a750fc0b JM |
324 | SPR OK |
325 | MSR OK | |
326 | IRQ OK | |
9b22787c | 327 | MMU OK |
a750fc0b | 328 | EXCP ? Altivec, ... |
86f1d3ac JM |
329 | Remarks: Linux does not have the code to handle TLB miss on this CPU |
330 | Linux 2.6.22 idem. | |
a750fc0b JM |
331 | |
332 | PowerPC 7445/7447: | |
9b22787c | 333 | INSN KO Altivec missing |
a750fc0b JM |
334 | SPR OK |
335 | MSR OK | |
336 | IRQ OK | |
9b22787c | 337 | MMU OK |
a750fc0b | 338 | EXCP ? Altivec, ... |
86f1d3ac JM |
339 | Remarks: Linux does not have the code to handle TLB miss on this CPU |
340 | Linux 2.6.22 idem. | |
a750fc0b JM |
341 | |
342 | PowerPC 7455/7457: | |
9b22787c | 343 | INSN KO Altivec missing |
a750fc0b JM |
344 | SPR OK |
345 | MSR OK | |
346 | IRQ OK | |
9b22787c | 347 | MMU OK |
a750fc0b | 348 | EXCP ? Altivec, ... |
86f1d3ac JM |
349 | Remarks: Linux does not have the code to handle TLB miss on this CPU |
350 | Linux 2.6.22 idem. | |
a750fc0b JM |
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 | |
86f1d3ac | 360 | Remarks: not much documentation for this implementation... |
a750fc0b | 361 | |
9b22787c | 362 | PowerPC 970: |
a750fc0b JM |
363 | INSN KO Altivec missing and more |
364 | SPR KO | |
365 | MSR ? | |
366 | IRQ OK | |
9b22787c JM |
367 | MMU OK |
368 | EXCP KO partially implemented | |
86f1d3ac | 369 | Remarks: Should be able to boot but there is no hw platform currently emulated. |
a750fc0b | 370 | |
9b22787c | 371 | PowerPC 970FX: |
a750fc0b JM |
372 | INSN KO Altivec missing and more |
373 | SPR KO | |
374 | MSR ? | |
375 | IRQ OK | |
9b22787c JM |
376 | MMU OK |
377 | EXCP KO partially implemented | |
86f1d3ac | 378 | Remarks: Should be able to boot but there is no hw platform currently emulated. |
9b22787c JM |
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 | |
86f1d3ac | 387 | Remarks: Should be able to boot but there is no hw platform currently emulated. |
9b22787c JM |
388 | |
389 | PowerPC Cell: | |
390 | INSN KO Altivec missing and more | |
391 | SPR KO | |
392 | MSR ? | |
393 | IRQ ? | |
394 | MMU ? | |
395 | EXCP ? partially implemented | |
86f1d3ac JM |
396 | Remarks: As the core is mostly a 970, should be able to boot. |
397 | SPE are not implemented. | |
a750fc0b JM |
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 | |
76a66253 JM |
503 | |
504 | =============================================================================== | |
505 | PowerPC microcontrollers emulation status | |
506 | ||
74563c16 | 507 | Implemementation should be sufficient to boot Linux: |
9b22787c | 508 | (there seem to be problems with uboot freezing at some point) |
74563c16 JM |
509 | - PowerPC 405CR |
510 | - PowerPC 405EP | |
511 | ||
76a66253 | 512 | TODO: |
86f1d3ac JM |
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 | |
9b22787c JM |
517 | - PowerPC 440 microcontrollers emulation |
518 | - e200 microcontrollers emulation | |
519 | - e300 microcontrollers emulation | |
520 | - e500 microcontrollers emulation | |
521 | - e600 microcontrollers emulation | |
76a66253 JM |
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 | |
74563c16 JM |
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. | |
76a66253 JM |
549 | |
550 | TODO: | |
86f1d3ac JM |
551 | - URGENT: fix PreP and heathrow platforms |
552 | - PowerPC 64 reference platform | |
76a66253 JM |
553 | - MCA based RS/6000 emulation |
554 | - CHRP emulation (not PowerMac) | |
555 | - PPAR emulation | |
74563c16 | 556 | - ePPAR emulation |
76a66253 JM |
557 | - misc PowerPC reference boards emulation |
558 | ||
559 | =============================================================================== |