[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 19/25] hw/arm/virt: Support -machine gic-version=max
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 19/25] hw/arm/virt: Support -machine gic-version=max |
Date: |
Fri, 9 Mar 2018 17:26:16 +0000 |
Add support for passing 'max' to -machine gic-version. By analogy
with the -cpu max option, this picks the "best available" GIC version
whether you're using KVM or TCG, so it behaves like 'host' when
using KVM, and gives you GICv3 when using TCG.
Also like '-cpu host', using -machine gic-version=max' means there
is no guarantee of migration compatibility between QEMU versions;
in future 'max' might mean '4'.
Signed-off-by: Peter Maydell <address@hidden>
Message-id: address@hidden
Reviewed-by: Alex Bennée <address@hidden>
---
hw/arm/virt.c | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index cda4b83586..2c07245047 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -1207,16 +1207,23 @@ static void machvirt_init(MachineState *machine)
/* We can probe only here because during property set
* KVM is not available yet
*/
- if (!vms->gic_version) {
+ if (vms->gic_version <= 0) {
+ /* "host" or "max" */
if (!kvm_enabled()) {
- error_report("gic-version=host requires KVM");
- exit(1);
- }
-
- vms->gic_version = kvm_arm_vgic_probe();
- if (!vms->gic_version) {
- error_report("Unable to determine GIC version supported by host");
- exit(1);
+ if (vms->gic_version == 0) {
+ error_report("gic-version=host requires KVM");
+ exit(1);
+ } else {
+ /* "max": currently means 3 for TCG */
+ vms->gic_version = 3;
+ }
+ } else {
+ vms->gic_version = kvm_arm_vgic_probe();
+ if (!vms->gic_version) {
+ error_report(
+ "Unable to determine GIC version supported by host");
+ exit(1);
+ }
}
}
@@ -1480,9 +1487,11 @@ static void virt_set_gic_version(Object *obj, const char
*value, Error **errp)
vms->gic_version = 2;
} else if (!strcmp(value, "host")) {
vms->gic_version = 0; /* Will probe later */
+ } else if (!strcmp(value, "max")) {
+ vms->gic_version = -1; /* Will probe later */
} else {
error_setg(errp, "Invalid gic-version value");
- error_append_hint(errp, "Valid values are 3, 2, host.\n");
+ error_append_hint(errp, "Valid values are 3, 2, host, max.\n");
}
}
--
2.16.2
- [Qemu-devel] [PULL 00/25] target-arm queue, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 11/25] hw/arm: Use more CONFIG switches for the object files, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 12/25] arm: fix load ELF error leak, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 13/25] arm: avoid heap-buffer-overflow in load_aarch64_image, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 10/25] aarch64-linux-user: Add support for SVE signal frame records, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 15/25] target/arm: Move definition of 'host' cpu type into cpu.c, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 09/25] aarch64-linux-user: Add support for EXTRA signal frame records, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 19/25] hw/arm/virt: Support -machine gic-version=max,
Peter Maydell <=
- [Qemu-devel] [PULL 16/25] target/arm: Add "-cpu max" support, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 08/25] aarch64-linux-user: Remove struct target_aux_context, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 06/25] linux-user: Implement aarch64 PR_SVE_SET/GET_VL, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 07/25] aarch64-linux-user: Split out helpers for guest signal handling, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 02/25] hw/arm: Set the core count for Xilinx's ZynqMP, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 22/25] sdcard: Display which protocol is used when tracing (SD or SPI), Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 21/25] sdcard: Display command name when tracing CMD/ACMD, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 01/25] target/arm: Add a core count property, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 14/25] target/arm: Query host CPU features on-demand at instance init, Peter Maydell, 2018/03/09
- [Qemu-devel] [PULL 05/25] Implement support for i.MX7 Sabre board, Peter Maydell, 2018/03/09