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 ? => unchecked 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 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 ===============================================================================