summary refs log tree commit diff stats
path: root/target-sparc
diff options
context:
space:
mode:
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);