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),