Commit 2dfba02c30 for qemu.org
commit 2dfba02c30509a8c36a3bf10ccac5519495a811d
Author: Bibo Mao <maobibo@loongson.cn>
Date: Mon Sep 14 10:14:20 2026 +0800
target/loongarch: Add la664 CPU type
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 <maobibo@loongson.cn>
Reviewed-by: Song Gao <17746591750@163.com>
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index 4a75d53f7e..f22f64efb8 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -464,12 +464,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);
@@ -491,6 +490,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)
{
@@ -954,6 +959,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),