summaryrefslogtreecommitdiff
path: root/target-ppc/STATUS
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-09-26 23:54:22 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-09-26 23:54:22 +0000
commita750fc0b9184a520d00d9e949160a0c6d3232ecd (patch)
tree681734fa2531d1cb27efc89d2f4d7397f1f8eaee /target-ppc/STATUS
parent08fa4bab833f834e1511853dd2331fa3d6d5d469 (diff)
downloadqemu-a750fc0b9184a520d00d9e949160a0c6d3232ecd.tar.gz
Great rework and cleanups to ease PowerPC implementations definitions.
* cleanup cpu.h, removing definitions used only in translate.c/translate_init.c * add new flags to define instructions sets more precisely * various changes in MMU models definitions * add definitions for PowerPC 440/460 support (insns and SPRs). * add definitions for PowerPC 401/403 and 620 input pins model * Fix definitions for most PowerPC 401, 403, 405, 440, 601, 602, 603 and 7x0 * Preliminary support for PowerPC 74xx (aka G4) without altivec. * Code provision for other PowerPC support (7x5, 970, ...). * New SPR and PVR defined, from PowerPC 2.04 specification and other sources * Misc code bugs, error messages and styles fixes. * Update status files for PowerPC cores support. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3244 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/STATUS')
-rw-r--r--target-ppc/STATUS653
1 files changed, 424 insertions, 229 deletions
diff --git a/target-ppc/STATUS b/target-ppc/STATUS
index 190186562e..b4daa97afd 100644
--- a/target-ppc/STATUS
+++ b/target-ppc/STATUS
@@ -4,267 +4,462 @@ The goal of this file is to provide a reference status to avoid regressions.
===============================================================================
PowerPC core emulation status
-32 bits PowerPC
-PowerPC 601:
-INSN
-SPR
-MMU
-EXCP
-
-PowerPC 602:
-INSN
-SPR
-MMU
-EXCP
-
-PowerPC 603:
-INSN OK
-SPR OK
-MMU OK
-EXCP OK
-
-PowerPC 604:
-INSN OK
-SPR OK
-MMU OK
-EXCP OK
-
-PowerPC 740:
-INSN OK
-SPR OK
-MMU OK
-EXCP OK
-
-PowerPC 745:
-INSN
-SPR
-MMU
-EXCP
-
-PowerPC 750:
-INSN OK
-SPR OK
-MMU OK
-EXCP OK
-
-PowerPC 755:
-INSN
-SPR
-MMU
-EXCP
+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
-PowerPC 7400:
-INSN KO
-SPR KO
-MMU OK
-EXCP OK
+Embedded PowerPC cores
+***
+PowerPC 401:
+INSN OK
+SPR OK 401A1
+MSR OK
+IRQ KO partially implemented
+MMU OK
+EXCP ?
-PowerPC 7410:
-INSN KO
-SPR KO
-MMU OK
-EXCP OK
-
-PowerPC 7450:
-INSN KO
-SPR KO
-MMU OK
-EXCP OK
-
-PowerPC 7455:
-INSN KO
-SPR KO
-MMU OK
-EXCP OK
-
-PowerPC 7457:
-INSN KO
-SPR KO
-MMU OK
-EXCP OK
-
-PowerPC 7457A:
-INSN KO
-SPR KO
-MMU OK
-EXCP OK
+PowerPC 401x2:
+INSN OK
+SPR OK 401B2 401C2 401D2 401E2 401F2
+MSR OK
+IRQ KO partially implemented
+MMU OK
+EXCP ?
-64 bits PowerPC
-PowerPC 970:
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-PowerPC 620: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-PowerPC 630: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-PowerPC 631: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-POWER4: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-POWER4+: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-POWER5: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-POWER5+: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-POWER6: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-RS64: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-RS64-II: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-RS64-III: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
-
-RS64-IV: (lack of precise informations)
-INSN KO
-SPR KO
-MMU KO
-EXCP KO
+PowerPC IOP480:
+INSN OK
+SPR OK IOP480
+MSR OK
+IRQ KO partially implemented
+MMU OK
+EXCP ?
-Embedded PowerPC cores
-PowerPC 401:
-INSN OK
-SPR OK
-MMU OK
-EXCP ?
+To be checked: 401G2 401B3 Cobra
+***
PowerPC 403:
-INSN OK
-SPR OK
-MMU OK
-EXCP ?
+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:
-INSN OK
-SPR OK
-MMU OK
-EXCP OK
+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
+=> Linux 2.4 boots (at least 1 proprietary firmware).
+
+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 460: (lack of precise informations)
+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
-Freescale (to be completed) ...
+***
+PowerPC e200: (not implemented)
+INSN KO
+SPR KO
+MSR KO
+IRQ KO
+MMU KO
+EXCP KO
-Original POWER
-POWER: (lack of precise informations)
+***
+PowerPC e300: (not implemented)
INSN KO
SPR KO
+MSR KO
+IRQ KO
MMU KO
EXCP KO
-POWER2: (lack of precise informations)
+***
+PowerPC e500: (not implemented)
INSN KO
SPR KO
+MSR KO
+IRQ KO
MMU KO
EXCP KO
-PowerPC CPU known to work (ie booting at least Linux 2.4):
-* main stream PowerPC cores
-- PowerPC 603 & derivatives
-- PowerPC 604 & derivatives
-- PowerPC 740 & derivatives
-- PowerPC 750 & derivatives
-- PowerPC 405
-
-PowerPC that should work but are not supported by standard Linux kernel
-(then remain mostly untested)
-- PowerPC 745
-- PowerPC 755
-
-Work in progress:
-* embedded PowerPC cores
-- BookE PowerPC
-- e500 core (Freescale PowerQUICC)
-* main stream PowerPC cores
-- PowerPC 601
-- PowerPC 602
+***
+PowerPC e600: (not implemented)
+INSN KO
+SPR KO
+MSR KO
+IRQ KO
+MMU KO
+EXCP KO
-TODO:
-* embedded PowerPC cores
-- PowerPC 401
-- PowerPC 403
-- PowerPC 440
-- PowerPC 460
-* main stream PowerPC cores
-- PowerPC 7400 (aka G4)
-- PowerPC 7410
-- PowerPC 7450
-- PowerPC 7455
-- PowerPC 7457
-- PowerPC 7457A
-* original POWER
-- POWER
-- POWER2
-* 64 bits PowerPC cores
-- PowerPC 620
-- PowerPC 630 (aka POWER3)
-- PowerPC 631 (aka POWER3+)
-- POWER4
-- POWER4+
-- POWER5
-- POWER5+
-- PowerPC 970
-* RS64 series
-- RS64
-- RS64-II
-- RS64-III
-- RS64-IV
+***
+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 crashes when entering user-mode. But it seems it does not
+ know about this CPU. As this CPU is close to 603e, it should be OK.
+
+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
+
+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
+
+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.
+
+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.
+
+PowerPC 604:
+INSN OK
+SPR OK
+MSR OK
+IRQ OK
+MMU OK
+EXCP OK
+Remarks: Linux 2.4 boots and properly recognizes the CPU.
+
+PowerPC 7x0:
+INSN OK
+SPR OK
+MSR OK
+IRQ OK
+MMU OK
+EXCP OK
+Remarks: Linux 2.4 boots and properly recognizes the CPU.
+
+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.
+
+PowerPC 7x5:
+INSN ?
+SPR ?
+MSR ?
+IRQ OK
+MMU ?
+EXCP OK
+=> Linux 2.4 does not boot.
+
+PowerPC 7400:
+INSN KO Altivec missing
+SPR OK
+MSR OK
+IRQ OK
+MMU OK
+EXCP ? Altivec, ...
+=> Linux 2.4 boots and properly recognize the CPU.
+
+PowerPC 7410:
+INSN KO Altivec missing
+SPR OK
+MSR OK
+IRQ OK
+MMU OK
+EXCP ? Altivec, ...
+=> Linux 2.4 boots and properly recognize the CPU.
+ Note that UM says tlbld & tlbli are implemented bus this may be a mistake
+ as TLB load are managed by the hardware and it does not implement the
+ needed registers.
+
+PowerPC 7441:
+INSN KO Altivec missing + TLB load insns missing
+SPR OK
+MSR OK
+IRQ OK
+MMU KO not implemented
+EXCP ? Altivec, ...
+
+PowerPC 7450/7451:
+INSN KO Altivec missing + TLB load insns missing
+SPR OK
+MSR OK
+IRQ OK
+MMU KO not implemented
+EXCP ? Altivec, ...
+
+PowerPC 7445/7447:
+INSN KO Altivec missing + TLB load insns missing
+SPR OK
+MSR OK
+IRQ OK
+MMU KO not implemented
+EXCP ? Altivec, ...
+
+PowerPC 7455/7457:
+INSN KO Altivec missing + TLB load insns missing
+SPR OK
+MSR OK
+IRQ OK
+MMU KO not implemented
+EXCP ? Altivec, ...
+
+64 bits PowerPC
+PowerPC 620: (disabled)
+INSN KO
+SPR KO
+MSR ?
+IRQ KO
+MMU KO
+EXCP KO
+
+PowerPC 970: (disabled)
+INSN KO Altivec missing and more
+SPR KO
+MSR ?
+IRQ OK
+MMU KO partially implemented
+EXCP KO
+
+PowerPC 970FX: (disabled)
+INSN KO Altivec missing and more
+SPR KO
+MSR ?
+IRQ OK
+MMU KO partially implemented
+EXCP KO
+
+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