Most features about LA664 CPU hardware is finished in TCG and KVM mode,
add la664 CPU type and it is similar with max CPU type.

Signed-off-by: Bibo Mao <[email protected]>
---
 target/loongarch/cpu.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index f4d3d75e16..759fee0b26 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -457,12 +457,11 @@ static void loongarch_la132_initfn(Object *obj)
     cpu->ptw = ON_OFF_AUTO_OFF;
 }
 
-static void loongarch_max_initfn(Object *obj)
+static void loongarch_la664_initfn(Object *obj)
 {
     LoongArchCPU *cpu = LOONGARCH_CPU(obj);
     uint32_t data;
 
-    /* '-cpu max': use it for max supported CPU features */
     loongarch_la464_initfn(obj);
 
     cpu->env.cpucfg[2] = FIELD_DP32(cpu->env.cpucfg[2], CPUCFG2, HPTW, 1);
@@ -484,6 +483,12 @@ static void loongarch_max_initfn(Object *obj)
     cpu->env.cpucfg[3] = data;
 }
 
+static void loongarch_max_initfn(Object *obj)
+{
+    /* '-cpu max': use it for max supported CPU features */
+    loongarch_la664_initfn(obj);
+}
+
 #if defined(CONFIG_KVM)
 static int read_cpuinfo(const char *field, char *value, int len)
 {
@@ -940,6 +945,8 @@ static const TypeInfo loongarch_cpu_type_infos[] = {
         .abstract = true,
         .class_init = loongarch64_cpu_class_init,
     },
+
+    DEFINE_LOONGARCH_CPU_TYPE(64, "la664", loongarch_la664_initfn),
     DEFINE_LOONGARCH_CPU_TYPE(64, "la464", loongarch_la464_initfn),
     DEFINE_LOONGARCH_CPU_TYPE(32, "la132", loongarch_la132_initfn),
     DEFINE_LOONGARCH_CPU_TYPE(64, "max", loongarch_max_initfn),
-- 
2.54.0


Reply via email to