aboutsummaryrefslogtreecommitdiff
path: root/target-sparc
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-07-22 07:07:34 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-07-22 07:07:34 +0000
commitc7ba218da1639a054b5ca1c259530305562fa571 (patch)
treecaf7b557b77356b875bd46dfb42efa7e328b1de6 /target-sparc
parentd406647966365b4ea505ef290825b257c678e764 (diff)
Add T1 and T2 CPUs, add a Sun4v machine
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4923 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc')
-rw-r--r--target-sparc/TODO4
-rw-r--r--target-sparc/helper.c22
-rw-r--r--target-sparc/machine.c1
3 files changed, 26 insertions, 1 deletions
diff --git a/target-sparc/TODO b/target-sparc/TODO
index 0d39994b20..70bdeeca71 100644
--- a/target-sparc/TODO
+++ b/target-sparc/TODO
@@ -86,4 +86,6 @@ Sun4u:
- A lot of real machine types
Sun4v:
-- To be added
+- A lot of unimplemented features
+ - A lot of real machine types
+
diff --git a/target-sparc/helper.c b/target-sparc/helper.c
index 06265dc6a4..85b9d5ca11 100644
--- a/target-sparc/helper.c
+++ b/target-sparc/helper.c
@@ -1116,6 +1116,28 @@ static const sparc_def_t sparc_defs[] = {
.features = CPU_DEFAULT_FEATURES,
},
{
+ .name = "Sun UltraSparc T1",
+ // defined in sparc_ifu_fdp.v and ctu.h
+ .iu_version = ((0x3eULL << 48) | (0x23ULL << 32) | (0x02ULL << 24)
+ | (MAXTL << 8)),
+ .fpu_version = 0x00000000,
+ .mmu_version = mmu_sun4v,
+ .nwindows = 8,
+ .features = CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
+ | CPU_FEATURE_GL,
+ },
+ {
+ .name = "Sun UltraSparc T2",
+ // defined in tlu_asi_ctl.v and n2_revid_cust.v
+ .iu_version = ((0x3eULL << 48) | (0x24ULL << 32) | (0x02ULL << 24)
+ | (MAXTL << 8)),
+ .fpu_version = 0x00000000,
+ .mmu_version = mmu_sun4v,
+ .nwindows = 8,
+ .features = CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
+ | CPU_FEATURE_GL,
+ },
+ {
.name = "NEC UltraSparc I",
.iu_version = ((0x22ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)
| (MAXTL << 8)),
diff --git a/target-sparc/machine.c b/target-sparc/machine.c
index aaac30b1e8..04a59da741 100644
--- a/target-sparc/machine.c
+++ b/target-sparc/machine.c
@@ -7,6 +7,7 @@ void register_machines(void)
{
#ifdef TARGET_SPARC64
qemu_register_machine(&sun4u_machine);
+ qemu_register_machine(&sun4v_machine);
#else
qemu_register_machine(&ss5_machine);
qemu_register_machine(&ss10_machine);