| PowerPC emulation status. |
| The goal of this file is to provide a reference status to avoid regressions. |
| |
| =============================================================================== |
| PowerPC core emulation status |
| |
| INSN: instruction set. |
| OK => all instructions are emulated |
| KO => some insns are missing or some should be removed |
| ? => unchecked |
| SPR: special purpose registers set |
| OK => all SPR registered (but some may be fake) |
| KO => some SPR are missing or should be removed |
| ? => uncheked |
| MSR: MSR bits definitions |
| OK => all MSR bits properly defined |
| KO => MSR definition is incorrect |
| ? => unchecked |
| IRQ: input signals definitions (mostly interrupts) |
| OK => input signals are properly defined |
| KO => input signals are not implemented (system emulation does not work) |
| ? => input signals definitions may be incorrect |
| MMU: MMU model implementation |
| OK => MMU model is implemented and Linux is able to boot |
| KO => MMU model not implemented or bugged |
| ? => MMU model not tested |
| EXCP: exceptions model implementation |
| OK => exception model is implemented and Linux is able to boot |
| KO => exception model not implemented or known to be buggy |
| ? => exception model may be incorrect or is untested |
| |
| Embedded PowerPC cores |
| *** |
| PowerPC 401: |
| INSN OK |
| SPR OK 401A1 |
| MSR OK |
| IRQ KO partially implemented |
| MMU OK |
| EXCP ? |
| |
| PowerPC 401x2: |
| INSN OK |
| SPR OK 401B2 401C2 401D2 401E2 401F2 |
| MSR OK |
| IRQ KO partially implemented |
| MMU OK |
| EXCP ? |
| |
| PowerPC IOP480: |
| INSN OK |
| SPR OK IOP480 |
| MSR OK |
| IRQ KO partially implemented |
| MMU OK |
| EXCP ? |
| |
| To be checked: 401G2 401B3 Cobra |
| |
| *** |
| PowerPC 403: |
| INSN OK |
| SPR OK 403GA 403GB |
| MMU OK |
| MSR OK |
| IRQ KO not implemented |
| EXCP ? |
| |
| PowerPC 403GCX: |
| INSN OK |
| SPR OK 403GCX |
| MMU OK |
| MSR OK |
| IRQ KO not implemented |
| EXCP ? |
| |
| To be checked: 403GC |
| |
| *** |
| PowerPC 405: |
| Checked: 405CRa 405CRb 405CRc 405EP 405GPa 405GPb 405GPc 405GPd 405GPe 405GPR |
| Npe405H Npe405H2 Npe405L |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 boots (at least 1 proprietary firmware). |
| uboot seems to freeze at boot time. |
| To be checked: 405D2 405D4 405EZ 405LP Npe4GS3 STB03 STB04 STB25 |
| x2vp4 x2vp7 x2vp20 x2vp50 |
| |
| XXX: find what is IBM e407b4 |
| |
| *** |
| PowerPC 440: |
| Checked: 440EPa 440EPb 440GXa 440GXb 440GXc 440GXf 440SP 440SP2 |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ KO not implemented |
| MMU ? |
| EXCP ? |
| |
| PowerPC 440GP: |
| Checked: 440GPb 440GPc |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ KO not implemented |
| MMU ? |
| EXCP ? |
| |
| PowerPC 440x4: |
| Checked: 440A4 440B4 440G4 440H4 |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ KO not implemented |
| MMU ? |
| EXCP ? |
| |
| PowerPC 440x5: |
| Checked: 440A5 440F5 440G5 440H6 440GRa |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ KO not implemented |
| MMU ? |
| EXCP ? |
| |
| To be checked: 440EPx 440GRx 440SPE |
| |
| *** |
| PowerPC 460: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| PowerPC 460F: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| *** |
| PowerPC e200: (not implemented) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| *** |
| PowerPC e300: (not implemented) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| *** |
| PowerPC e500: (not implemented) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| *** |
| PowerPC e600: (not implemented) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| *** |
| 32 bits PowerPC |
| PowerPC 601: (601 601v2) |
| INSN OK |
| SPR OK is HID15 only on 601v2 ? |
| MSR OK |
| IRQ KO not implemented |
| MMU ? |
| EXCP ? |
| Remarks: some instructions should have a specific behavior (not implemented) |
| |
| PowerPC 602: 602 |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU ? |
| EXCP ? at least timer and external interrupt are OK |
| Remarks: Linux 2.4 crashes when entering user-mode. |
| Linux 2.6.22 boots on this CPU but does not recognize it. |
| |
| PowerPC 603: (603) |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 boots and properly recognizes the CPU |
| Linux 2.6.22 idem. |
| |
| PowerPC 603e: (603e11) |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 boots and properly recognizes the CPU |
| Linux 2.6.22 idem. |
| |
| PowerPC G2: |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 boots, recognizes the CPU as a 82xx. |
| Linux 2.6.22 idem. |
| |
| PowerPC G2le: |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 does not boots. Same symptoms as 602. |
| Linux 2.6.22 boots and properly recognizes the CPU. |
| |
| PowerPC 604: |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 boots and properly recognizes the CPU. |
| Linux 2.6.22 idem. |
| |
| PowerPC 7x0: |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 boots and properly recognizes the CPU. |
| Linux 2.6.22 idem. |
| |
| PowerPC 750fx: |
| INSN OK |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP OK |
| Remarks: Linux 2.4 boots but does not properly recognizes the CPU. |
| Linux 2.6.22 boots and properly recognizes the CPU. |
| |
| PowerPC 7x5: |
| INSN ? |
| SPR ? |
| MSR ? |
| IRQ OK |
| MMU ? |
| EXCP OK |
| Remarks: Linux 2.4 does not boot. |
| Linux 2.6.22 idem. |
| |
| PowerPC 7400: |
| INSN KO Altivec missing |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP ? Altivec, ... |
| Remarks: Linux 2.4 boots and properly recognize the CPU. |
| Linux 2.6.22 idem. |
| |
| PowerPC 7410: |
| INSN KO Altivec missing |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP ? Altivec, ... |
| Remarks: Linux 2.4 boots and properly recognize the CPU. |
| Linux 2.6.22 idem. |
| Note that UM says tlbld & tlbli are implemented but this may be a mistake |
| as TLB loads are managed by the hardware and the CPU does not implement the |
| needed registers. |
| |
| PowerPC 7441: |
| INSN KO Altivec missing |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP ? Altivec, ... |
| Remarks: Linux does not have the code to handle TLB miss on this CPU |
| Linux 2.6.22 idem. |
| |
| PowerPC 7450/7451: |
| INSN KO Altivec missing |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP ? Altivec, ... |
| Remarks: Linux does not have the code to handle TLB miss on this CPU |
| Linux 2.6.22 idem. |
| |
| PowerPC 7445/7447: |
| INSN KO Altivec missing |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP ? Altivec, ... |
| Remarks: Linux does not have the code to handle TLB miss on this CPU |
| Linux 2.6.22 idem. |
| |
| PowerPC 7455/7457: |
| INSN KO Altivec missing |
| SPR OK |
| MSR OK |
| IRQ OK |
| MMU OK |
| EXCP ? Altivec, ... |
| Remarks: Linux does not have the code to handle TLB miss on this CPU |
| Linux 2.6.22 idem. |
| |
| 64 bits PowerPC |
| PowerPC 620: (disabled) |
| INSN KO |
| SPR KO |
| MSR ? |
| IRQ KO |
| MMU KO |
| EXCP KO |
| Remarks: not much documentation for this implementation... |
| |
| PowerPC 970: |
| INSN KO Altivec missing and more |
| SPR KO |
| MSR ? |
| IRQ OK |
| MMU OK |
| EXCP KO partially implemented |
| Remarks: Should be able to boot but there is no hw platform currently emulated. |
| |
| PowerPC 970FX: |
| INSN KO Altivec missing and more |
| SPR KO |
| MSR ? |
| IRQ OK |
| MMU OK |
| EXCP KO partially implemented |
| Remarks: Should be able to boot but there is no hw platform currently emulated. |
| |
| PowerPC 970GX: |
| INSN KO Altivec missing and more |
| SPR KO |
| MSR ? |
| IRQ OK |
| MMU OK |
| EXCP KO partially implemented |
| Remarks: Should be able to boot but there is no hw platform currently emulated. |
| |
| PowerPC Cell: |
| INSN KO Altivec missing and more |
| SPR KO |
| MSR ? |
| IRQ ? |
| MMU ? |
| EXCP ? partially implemented |
| Remarks: As the core is mostly a 970, should be able to boot. |
| SPE are not implemented. |
| |
| PowerPC 630: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| PowerPC 631: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| POWER4: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| POWER4+: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| POWER5: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| POWER5+: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| POWER6: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| RS64: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| RS64-II: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| RS64-III: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| RS64-IV: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| Original POWER |
| POWER: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| POWER2: (disabled: lack of detailed specifications) |
| INSN KO |
| SPR KO |
| MSR KO |
| IRQ KO |
| MMU KO |
| EXCP KO |
| |
| =============================================================================== |
| PowerPC microcontrollers emulation status |
| |
| Implemementation should be sufficient to boot Linux: |
| (there seem to be problems with uboot freezing at some point) |
| - PowerPC 405CR |
| - PowerPC 405EP |
| |
| TODO: |
| - PowerPC 401 microcontrollers emulation |
| - PowerPC 403 microcontrollers emulation |
| - more PowerPC 405 microcontrollers emulation |
| - Fixes / more features for implemented PowerPC 405 microcontrollers emulation |
| - PowerPC 440 microcontrollers emulation |
| - e200 microcontrollers emulation |
| - e300 microcontrollers emulation |
| - e500 microcontrollers emulation |
| - e600 microcontrollers emulation |
| |
| =============================================================================== |
| PowerPC based platforms emulation status |
| |
| * PREP platform (RS/6000 7043...) - TO BE CHECKED (broken) |
| - Gentoo Linux live CDROM 1.4 |
| - Debian Linux 3.0 |
| - Mandrake Linux 9 |
| |
| * heathrow PowerMac platform (beige PowerMac) - TO BE CHECKED (broken) |
| - Gentoo Linux live CDROM 1.4 |
| - Debian Linux 3.0 |
| - Mandrake Linux 9 |
| |
| * mac99 platform (white and blue PowerMac, ...) |
| - Gentoo Linux live CDROM 1.4 - boots, compiles linux kernel |
| - Debian Linux woody - boots from CDROM and HDD |
| - Mandrake Linux 9 - boots from CDROM, freezes during install |
| - Knoppix 2003-07-13_4 boots from CDROM, pb with X configuration |
| distribution bug: X runs with a properly hand-coded configuration. |
| - rock Linux 2.0 runs from CDROM |
| |
| * Linux 2.6 support seems deadly broken (used to boot...). |
| |
| * PowerPC 405EP reference boards: |
| - can boot Linux 2.4 & 2.6. |
| Need to provide a flash image ready to boot for reproductible tests. |
| |
| TODO: |
| - URGENT: fix PreP and heathrow platforms |
| - PowerPC 64 reference platform |
| - MCA based RS/6000 emulation |
| - CHRP emulation (not PowerMac) |
| - PPAR emulation |
| - ePPAR emulation |
| - misc PowerPC reference boards emulation |
| |
| =============================================================================== |