aboutsummaryrefslogtreecommitdiff
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);