diff -urp a/linux-user/sparc/target_proc.h b/linux-user/sparc/target_proc.h --- a/linux-user/sparc/target_proc.h 2023-03-27 15:41:42.000000000 +0200 +++ b/linux-user/sparc/target_proc.h 2023-04-01 13:54:14.709136932 +0200 @@ -8,7 +8,11 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd) { +#if defined(TARGET_SPARC64) dprintf(fd, "type\t\t: sun4u\n"); +#else + dprintf(fd, "type\t\t: sun4m\n"); +#endif return 0; } #define HAVE_ARCH_PROC_CPUINFO diff -urp a/target/sparc/cpu.c b/target/sparc/cpu.c --- a/target/sparc/cpu.c 2023-03-27 15:41:42.000000000 +0200 +++ b/target/sparc/cpu.c 2023-03-31 21:32:54.927008782 +0200 @@ -557,6 +557,11 @@ static const char * const feature_name[] [CPU_FEATURE_BIT_MUL] = "mul", [CPU_FEATURE_BIT_DIV] = "div", [CPU_FEATURE_BIT_FSMULD] = "fsmuld", + [CPU_FEATURE_BIT_TA0_SHUTDOWN] = "ta0shdn", + [CPU_FEATURE_BIT_ASR17] = "asr17", + [CPU_FEATURE_BIT_CACHE_CTRL] = "cachectrl", + [CPU_FEATURE_BIT_POWERDOWN] = "powerdown", + [CPU_FEATURE_BIT_CASA] = "casa", #endif }; @@ -896,6 +901,16 @@ static Property sparc_cpu_properties[] = CPU_FEATURE_BIT_DIV, false), DEFINE_PROP_BIT("fsmuld", SPARCCPU, env.def.features, CPU_FEATURE_BIT_FSMULD, false), + DEFINE_PROP_BIT("ta0shdn", SPARCCPU, env.def.features, + CPU_FEATURE_BIT_TA0_SHUTDOWN, false), + DEFINE_PROP_BIT("asr17", SPARCCPU, env.def.features, + CPU_FEATURE_BIT_ASR17, false), + DEFINE_PROP_BIT("cachectrl",SPARCCPU, env.def.features, + CPU_FEATURE_BIT_CACHE_CTRL, false), + DEFINE_PROP_BIT("powerdown",SPARCCPU, env.def.features, + CPU_FEATURE_BIT_POWERDOWN, false), + DEFINE_PROP_BIT("casa", SPARCCPU, env.def.features, + CPU_FEATURE_BIT_CASA, false), #endif DEFINE_PROP_UNSIGNED("iu-version", SPARCCPU, env.def.iu_version, 0, qdev_prop_uint64, target_ulong),