]>
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 | |
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 | |
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 | |
89 | => Linux 2.4 boots (at least 1 proprietary firmware). | |
90 | ||
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 | |
206 | Remarks: Linux crashes when entering user-mode. But it seems it does not | |
207 | know about this CPU. As this CPU is close to 603e, it should be OK. | |
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 | ||
218 | PowerPC 603e: (603e11) | |
219 | INSN OK | |
220 | SPR OK | |
221 | MSR OK | |
222 | IRQ OK | |
223 | MMU OK | |
224 | EXCP OK | |
225 | Remarks: Linux 2.4 boots and properly recognizes the CPU | |
226 | ||
227 | PowerPC G2: | |
228 | INSN OK | |
229 | SPR OK | |
230 | MSR OK | |
231 | IRQ OK | |
232 | MMU OK | |
233 | EXCP OK | |
234 | Remarks: Linux 2.4 boots, recognizes the CPU as a 82xx. | |
235 | ||
236 | PowerPC G2le: | |
237 | INSN OK | |
238 | SPR OK | |
239 | MSR OK | |
240 | IRQ OK | |
241 | MMU OK | |
242 | EXCP OK | |
243 | Remarks: Linux 2.4 does not boots. Same symptoms as 602. | |
244 | ||
245 | PowerPC 604: | |
246 | INSN OK | |
247 | SPR OK | |
248 | MSR OK | |
249 | IRQ OK | |
250 | MMU OK | |
251 | EXCP OK | |
252 | Remarks: Linux 2.4 boots and properly recognizes the CPU. | |
253 | ||
254 | PowerPC 7x0: | |
255 | INSN OK | |
256 | SPR OK | |
257 | MSR OK | |
258 | IRQ OK | |
259 | MMU OK | |
260 | EXCP OK | |
261 | Remarks: Linux 2.4 boots and properly recognizes the CPU. | |
262 | ||
263 | PowerPC 750fx: | |
264 | INSN OK | |
265 | SPR OK | |
266 | MSR OK | |
267 | IRQ OK | |
268 | MMU OK | |
269 | EXCP OK | |
270 | Remarks: Linux 2.4 boots but does not properly recognizes the CPU. | |
271 | ||
272 | PowerPC 7x5: | |
273 | INSN ? | |
274 | SPR ? | |
275 | MSR ? | |
276 | IRQ OK | |
277 | MMU ? | |
278 | EXCP OK | |
279 | => Linux 2.4 does not boot. | |
280 | ||
281 | PowerPC 7400: | |
282 | INSN KO Altivec missing | |
283 | SPR OK | |
284 | MSR OK | |
285 | IRQ OK | |
286 | MMU OK | |
287 | EXCP ? Altivec, ... | |
288 | => Linux 2.4 boots and properly recognize the CPU. | |
289 | ||
290 | PowerPC 7410: | |
291 | INSN KO Altivec missing | |
292 | SPR OK | |
293 | MSR OK | |
294 | IRQ OK | |
295 | MMU OK | |
296 | EXCP ? Altivec, ... | |
297 | => Linux 2.4 boots and properly recognize the CPU. | |
298 | Note that UM says tlbld & tlbli are implemented bus this may be a mistake | |
299 | as TLB load are managed by the hardware and it does not implement the | |
300 | needed registers. | |
301 | ||
302 | PowerPC 7441: | |
303 | INSN KO Altivec missing + TLB load insns missing | |
304 | SPR OK | |
305 | MSR OK | |
306 | IRQ OK | |
307 | MMU KO not implemented | |
308 | EXCP ? Altivec, ... | |
309 | ||
310 | PowerPC 7450/7451: | |
311 | INSN KO Altivec missing + TLB load insns missing | |
312 | SPR OK | |
313 | MSR OK | |
314 | IRQ OK | |
315 | MMU KO not implemented | |
316 | EXCP ? Altivec, ... | |
317 | ||
318 | PowerPC 7445/7447: | |
319 | INSN KO Altivec missing + TLB load insns missing | |
320 | SPR OK | |
321 | MSR OK | |
322 | IRQ OK | |
323 | MMU KO not implemented | |
324 | EXCP ? Altivec, ... | |
325 | ||
326 | PowerPC 7455/7457: | |
327 | INSN KO Altivec missing + TLB load insns missing | |
328 | SPR OK | |
329 | MSR OK | |
330 | IRQ OK | |
331 | MMU KO not implemented | |
332 | EXCP ? Altivec, ... | |
333 | ||
334 | 64 bits PowerPC | |
335 | PowerPC 620: (disabled) | |
336 | INSN KO | |
337 | SPR KO | |
338 | MSR ? | |
339 | IRQ KO | |
340 | MMU KO | |
341 | EXCP KO | |
342 | ||
343 | PowerPC 970: (disabled) | |
344 | INSN KO Altivec missing and more | |
345 | SPR KO | |
346 | MSR ? | |
347 | IRQ OK | |
348 | MMU KO partially implemented | |
349 | EXCP KO | |
350 | ||
351 | PowerPC 970FX: (disabled) | |
352 | INSN KO Altivec missing and more | |
353 | SPR KO | |
354 | MSR ? | |
355 | IRQ OK | |
356 | MMU KO partially implemented | |
357 | EXCP KO | |
358 | ||
359 | PowerPC 630: (disabled: lack of detailed specifications) | |
360 | INSN KO | |
361 | SPR KO | |
362 | MSR KO | |
363 | IRQ KO | |
364 | MMU KO | |
365 | EXCP KO | |
366 | ||
367 | PowerPC 631: (disabled: lack of detailed specifications) | |
368 | INSN KO | |
369 | SPR KO | |
370 | MSR KO | |
371 | IRQ KO | |
372 | MMU KO | |
373 | EXCP KO | |
374 | ||
375 | POWER4: (disabled: lack of detailed specifications) | |
376 | INSN KO | |
377 | SPR KO | |
378 | MSR KO | |
379 | IRQ KO | |
380 | MMU KO | |
381 | EXCP KO | |
382 | ||
383 | POWER4+: (disabled: lack of detailed specifications) | |
384 | INSN KO | |
385 | SPR KO | |
386 | MSR KO | |
387 | IRQ KO | |
388 | MMU KO | |
389 | EXCP KO | |
390 | ||
391 | POWER5: (disabled: lack of detailed specifications) | |
392 | INSN KO | |
393 | SPR KO | |
394 | MSR KO | |
395 | IRQ KO | |
396 | MMU KO | |
397 | EXCP KO | |
398 | ||
399 | POWER5+: (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 | POWER6: (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 | RS64: (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 | RS64-II: (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 | RS64-III: (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 | RS64-IV: (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 | Original POWER | |
448 | POWER: (disabled: lack of detailed specifications) | |
449 | INSN KO | |
450 | SPR KO | |
451 | MSR KO | |
452 | IRQ KO | |
453 | MMU KO | |
454 | EXCP KO | |
455 | ||
456 | POWER2: (disabled: lack of detailed specifications) | |
457 | INSN KO | |
458 | SPR KO | |
459 | MSR KO | |
460 | IRQ KO | |
461 | MMU KO | |
462 | EXCP KO | |
76a66253 JM |
463 | |
464 | =============================================================================== | |
465 | PowerPC microcontrollers emulation status | |
466 | ||
74563c16 JM |
467 | Implemementation should be sufficient to boot Linux: |
468 | - PowerPC 405CR | |
469 | - PowerPC 405EP | |
470 | ||
76a66253 | 471 | TODO: |
74563c16 | 472 | - More PowerPC 40x microcontrollers emulation |
76a66253 JM |
473 | - PowerQUICC microcontrollers emulation |
474 | ||
475 | =============================================================================== | |
476 | PowerPC based platforms emulation status | |
477 | ||
478 | * PREP platform (RS/6000 7043...) - TO BE CHECKED (broken) | |
479 | - Gentoo Linux live CDROM 1.4 | |
480 | - Debian Linux 3.0 | |
481 | - Mandrake Linux 9 | |
482 | ||
483 | * heathrow PowerMac platform (beige PowerMac) - TO BE CHECKED (broken) | |
484 | - Gentoo Linux live CDROM 1.4 | |
485 | - Debian Linux 3.0 | |
486 | - Mandrake Linux 9 | |
487 | ||
488 | * mac99 platform (white and blue PowerMac, ...) | |
489 | - Gentoo Linux live CDROM 1.4 - boots, compiles linux kernel | |
490 | - Debian Linux woody - boots from CDROM and HDD | |
491 | - Mandrake Linux 9 - boots from CDROM, freezes during install | |
74563c16 JM |
492 | - Knoppix 2003-07-13_4 boots from CDROM, pb with X configuration |
493 | distribution bug: X runs with a properly hand-coded configuration. | |
494 | - rock Linux 2.0 runs from CDROM | |
495 | ||
496 | * Linux 2.6 support seems deadly broken (used to boot...). | |
497 | ||
498 | * PowerPC 405EP reference boards: | |
499 | - can boot Linux 2.4 & 2.6. | |
500 | Need to provide a flash image ready to boot for reproductible tests. | |
76a66253 JM |
501 | |
502 | TODO: | |
503 | - MCA based RS/6000 emulation | |
504 | - CHRP emulation (not PowerMac) | |
505 | - PPAR emulation | |
74563c16 | 506 | - ePPAR emulation |
76a66253 JM |
507 | - misc PowerPC reference boards emulation |
508 | ||
509 | =============================================================================== | |
510 | (to be completed) |