[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/26] target/arm: Move '-cpu host' code to cpu64.c
From: |
Peter Maydell |
Subject: |
[PULL 07/26] target/arm: Move '-cpu host' code to cpu64.c |
Date: |
Mon, 21 Feb 2022 09:27:41 +0000 |
Now that KVM has dropped AArch32 host support, the 'host' CPU type is
always AArch64, and we can move it to cpu64.c. This move will allow
us to share code between it and '-cpu max', which should behave
the same as '-cpu host' when using KVM or HVF.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Alexander Graf <agraf@csgraf.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220204165506.2846058-2-peter.maydell@linaro.org
---
target/arm/cpu.c | 30 ------------------------------
target/arm/cpu64.c | 30 ++++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index 5a9c02a2561..a4a229a65be 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -39,7 +39,6 @@
#include "sysemu/tcg.h"
#include "sysemu/hw_accel.h"
#include "kvm_arm.h"
-#include "hvf_arm.h"
#include "disas/capstone.h"
#include "fpu/softfloat.h"
@@ -2079,31 +2078,6 @@ static void arm_cpu_class_init(ObjectClass *oc, void
*data)
#endif /* CONFIG_TCG */
}
-#if defined(CONFIG_KVM) || defined(CONFIG_HVF)
-static void arm_host_initfn(Object *obj)
-{
- ARMCPU *cpu = ARM_CPU(obj);
-
-#ifdef CONFIG_KVM
- kvm_arm_set_cpu_features_from_host(cpu);
- if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) {
- aarch64_add_sve_properties(obj);
- aarch64_add_pauth_properties(obj);
- }
-#else
- hvf_arm_set_cpu_features_from_host(cpu);
-#endif
- arm_cpu_post_init(obj);
-}
-
-static const TypeInfo host_arm_cpu_type_info = {
- .name = TYPE_ARM_HOST_CPU,
- .parent = TYPE_AARCH64_CPU,
- .instance_init = arm_host_initfn,
-};
-
-#endif
-
static void arm_cpu_instance_init(Object *obj)
{
ARMCPUClass *acc = ARM_CPU_GET_CLASS(obj);
@@ -2151,10 +2125,6 @@ static const TypeInfo arm_cpu_type_info = {
static void arm_cpu_register_types(void)
{
type_register_static(&arm_cpu_type_info);
-
-#if defined(CONFIG_KVM) || defined(CONFIG_HVF)
- type_register_static(&host_arm_cpu_type_info);
-#endif
}
type_init(arm_cpu_register_types)
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
index 8786be7783e..052666b819e 100644
--- a/target/arm/cpu64.c
+++ b/target/arm/cpu64.c
@@ -30,6 +30,7 @@
#endif
#include "sysemu/kvm.h"
#include "kvm_arm.h"
+#include "hvf_arm.h"
#include "qapi/visitor.h"
#include "hw/qdev-properties.h"
@@ -681,6 +682,31 @@ void aarch64_add_pauth_properties(Object *obj)
}
}
+#if defined(CONFIG_KVM) || defined(CONFIG_HVF)
+static void arm_host_initfn(Object *obj)
+{
+ ARMCPU *cpu = ARM_CPU(obj);
+
+#ifdef CONFIG_KVM
+ kvm_arm_set_cpu_features_from_host(cpu);
+ if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) {
+ aarch64_add_sve_properties(obj);
+ aarch64_add_pauth_properties(obj);
+ }
+#else
+ hvf_arm_set_cpu_features_from_host(cpu);
+#endif
+ arm_cpu_post_init(obj);
+}
+
+static const TypeInfo host_arm_cpu_type_info = {
+ .name = TYPE_ARM_HOST_CPU,
+ .parent = TYPE_AARCH64_CPU,
+ .instance_init = arm_host_initfn,
+};
+
+#endif
+
/* -cpu max: if KVM is enabled, like -cpu host (best possible with this host);
* otherwise, a CPU with as many features enabled as our emulation supports.
* The version of '-cpu max' for qemu-system-arm is defined in cpu.c;
@@ -1023,6 +1049,10 @@ static void aarch64_cpu_register_types(void)
for (i = 0; i < ARRAY_SIZE(aarch64_cpus); ++i) {
aarch64_cpu_register(&aarch64_cpus[i]);
}
+
+#if defined(CONFIG_KVM) || defined(CONFIG_HVF)
+ type_register_static(&host_arm_cpu_type_info);
+#endif
}
type_init(aarch64_cpu_register_types)
--
2.25.1
- [PULL 00/26] target-arm queue, Peter Maydell, 2022/02/21
- [PULL 01/26] MAINTAINERS: Adding myself as a reviewer of some components, Peter Maydell, 2022/02/21
- [PULL 02/26] tests/qtest: add qtests for npcm7xx sdhci, Peter Maydell, 2022/02/21
- [PULL 03/26] hvf: arm: Use macros for sysreg shift/masking, Peter Maydell, 2022/02/21
- [PULL 04/26] hvf: arm: Handle unknown ID registers as RES0, Peter Maydell, 2022/02/21
- [PULL 07/26] target/arm: Move '-cpu host' code to cpu64.c,
Peter Maydell <=
- [PULL 06/26] checkpatch: Ensure that TypeInfos are const, Peter Maydell, 2022/02/21
- [PULL 08/26] target/arm: Use aarch64_cpu_register() for 'host' CPU type, Peter Maydell, 2022/02/21
- [PULL 12/26] target/arm: Support PAuth extension for hvf, Peter Maydell, 2022/02/21
- [PULL 05/26] Mark remaining global TypeInfo instances as const, Peter Maydell, 2022/02/21
- [PULL 09/26] target/arm: Make KVM -cpu max exactly like -cpu host, Peter Maydell, 2022/02/21
- [PULL 11/26] target/arm: Fix '-cpu max' for HVF, Peter Maydell, 2022/02/21
- [PULL 14/26] Kconfig: Add 'imply I2C_DEVICES' on boards with available i2c bus, Peter Maydell, 2022/02/21
- [PULL 13/26] Kconfig: Add I2C_DEVICES device group, Peter Maydell, 2022/02/21
- [PULL 10/26] target/arm: Unindent unnecessary else-clause, Peter Maydell, 2022/02/21
- [PULL 15/26] hw/arm/armv7m: Handle disconnected clock inputs, Peter Maydell, 2022/02/21