mirror of https://gitee.com/openkylin/qemu.git
551 lines
10 KiB
Plaintext
551 lines
10 KiB
Plaintext
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
|
|
|
|
===============================================================================
|