[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3] xen/arm: Allow QEMU platform to be built with GICv2



Trying to select PLATFORM_QEMU with NEW_VGIC will result to Kconfig
complain about unmet dependencies:

tools/kconfig/conf  --syncconfig Kconfig

WARNING: unmet direct dependencies detected for GICV3
   Depends on [n]: ARM_64 [=y] && !NEW_VGIC [=y]
   Selected by [y]:
   - QEMU [=y] && <choice> && ARM_64 [=y]

WARNING: unmet direct dependencies detected for GICV3
   Depends on [n]: ARM_64 [=y] && !NEW_VGIC [=y]
   Selected by [y]:
   - QEMU [=y] && <choice> && ARM_64 [=y]

WARNING: unmet direct dependencies detected for GICV3
   Depends on [n]: ARM_64 [=y] && !NEW_VGIC [=y]
   Selected by [y]:
   - QEMU [=y] && <choice> && ARM_64 [=y]

It turns out that QEMU has been supporting GICv2 virtualization since
v3.1.0. So an easy way to solve the issue and allow more custom support
is to remove the dependencies on GICv3.

Signed-off-by: Dongjiu Geng <gengdongjiu1@xxxxxxxxx>
---
change since v1:
1. Address Stefano's comments to add dependency

change since v2:
1. Address Julien's comments to update the commit messages.
2. enable GICV3 in arch/arm/configs/tiny64_defconfig
---
 xen/arch/arm/Kconfig                  | 5 +++--
 xen/arch/arm/configs/tiny64_defconfig | 2 +-
 xen/arch/arm/platforms/Kconfig        | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index ecfa6822e4..373c698018 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -35,7 +35,7 @@ config ACPI
 
 config GICV3
        bool "GICv3 driver"
-       depends on ARM_64 && !NEW_VGIC
+       depends on ARM_64
        default y
        ---help---
 
@@ -44,13 +44,14 @@ config GICV3
 
 config HAS_ITS
         bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORTED
-        depends on GICV3 && !NEW_VGIC
+        depends on GICV3
 
 config HVM
         def_bool y
 
 config NEW_VGIC
        bool "Use new VGIC implementation"
+       depends on !GICV3
        ---help---
 
        This is an alternative implementation of the ARM GIC interrupt
diff --git a/xen/arch/arm/configs/tiny64_defconfig 
b/xen/arch/arm/configs/tiny64_defconfig
index cc6d93f2f8..165603f7e0 100644
--- a/xen/arch/arm/configs/tiny64_defconfig
+++ b/xen/arch/arm/configs/tiny64_defconfig
@@ -4,7 +4,7 @@ CONFIG_ARM=y
 #
 # Architecture Features
 #
-# CONFIG_GICV3 is not set
+CONFIG_GICV3=y
 # CONFIG_MEM_ACCESS is not set
 # CONFIG_SBSA_VUART_CONSOLE is not set
 
diff --git a/xen/arch/arm/platforms/Kconfig b/xen/arch/arm/platforms/Kconfig
index c93a6b2756..925f6ef8da 100644
--- a/xen/arch/arm/platforms/Kconfig
+++ b/xen/arch/arm/platforms/Kconfig
@@ -15,7 +15,7 @@ config ALL_PLAT
 config QEMU
        bool "QEMU aarch virt machine support"
        depends on ARM_64
-       select GICV3
+       select GICv3 if !NEW_VGIC
        select HAS_PL011
        ---help---
        Enable all the required drivers for QEMU aarch64 virt emulated
-- 
2.25.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.