aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBibo Mao <maobibo@loongson.cn>2025-02-14 16:30:50 +0800
committerBibo Mao <maobibo@loongson.cn>2025-02-25 16:05:31 +0800
commit3406b001e6e5992a8cc9b2442216de312b111c07 (patch)
treef5d207d331fb31c6cb31ffa669b4e49d6b762623
parent0262c8075e9dc62a53a4bd15ea8d92a4c9adf018 (diff)
downloadqemu-3406b001e6e5992a8cc9b2442216de312b111c07.zip
qemu-3406b001e6e5992a8cc9b2442216de312b111c07.tar.gz
qemu-3406b001e6e5992a8cc9b2442216de312b111c07.tar.bz2
target/loongarch: Add post init function for kvm mode
Some features such as LBT and PMU are implemented in kvm mode, With paravirt features in future, post init function is added for kvm mode, so that property for these features will be created in kvm post init function. Signed-off-by: Bibo Mao <maobibo@loongson.cn> Reviewed-by: Bibo Mao <maobibo@loongson.cn>
-rw-r--r--target/loongarch/cpu.c2
-rw-r--r--target/loongarch/cpu.h8
-rw-r--r--target/loongarch/kvm/kvm.c4
3 files changed, 13 insertions, 1 deletions
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index f203fcc..012fcfb 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -765,7 +765,7 @@ void loongarch_cpu_post_init(Object *obj)
loongarch_set_pmu);
object_property_set_description(obj, "pmu",
"Set off to performance monitor unit.");
-
+ kvm_loongarch_cpu_post_init(cpu);
} else {
cpu->lbt = ON_OFF_AUTO_OFF;
cpu->pmu = ON_OFF_AUTO_OFF;
diff --git a/target/loongarch/cpu.h b/target/loongarch/cpu.h
index f2a23b7..74dffcb 100644
--- a/target/loongarch/cpu.h
+++ b/target/loongarch/cpu.h
@@ -491,4 +491,12 @@ static inline void cpu_get_tb_cpu_state(CPULoongArchState *env, vaddr *pc,
void loongarch_cpu_post_init(Object *obj);
+#ifdef CONFIG_KVM
+void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu);
+#else
+static inline void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu)
+{
+}
+#endif
+
#endif /* LOONGARCH_CPU_H */
diff --git a/target/loongarch/kvm/kvm.c b/target/loongarch/kvm/kvm.c
index 27df02f..2d2fb1e 100644
--- a/target/loongarch/kvm/kvm.c
+++ b/target/loongarch/kvm/kvm.c
@@ -1016,6 +1016,10 @@ int kvm_arch_init_vcpu(CPUState *cs)
return ret;
}
+void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu)
+{
+}
+
int kvm_arch_destroy_vcpu(CPUState *cs)
{
return 0;