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

[XEN v2 12/12] xen/Arm: GICv3: Enable GICv3 for AArch32


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Ayan Kumar Halder <ayankuma@xxxxxxx>
  • Date: Mon, 31 Oct 2022 15:13:26 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=thswsDnEpoVXekQFz2ERdchgMy9LbS20QZGymqiADZU=; b=H8jThX7ffAPSHjX/JHx2y7eQUeVDD1tg18ArZVZe6jb49I6QThM8Wje687UkpK51lSCYsPhB0hGJwdUpqB1bkz48pxyD483WGuzHEsgN/fz1YF4pH8F06yyjLoQ7WpQqGGd9xB2YLtymMKHmnRpJttJBP+fWrrp+IhDs6tomYA8adi82FYXIYQkqQO1hmbbC7Tg/i9PGobf1SwlceZEy3q7nkTYRoYKVxL+akRZm8LYrwYs3lFfc3bOzrXZios85hmIKkAqGGM0rVNi9oNwDDgSRIFYgCZXh1pQP3VrJUnEUuGpfykdCLbnJ8alqTc2k9mDhwjS1yqBSfK7ezF9w/w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gzfLaBmB9hRMxjzUqTgLvUaZCKOkMk4+Bqa5VI6X/Qwbt2jJO/2A3Uekk5JJ8ia/G6BnqgfFE3Ef4LwpjPW24j2T3q+QpLjqZXAJMdzvdioJbruFG0kutOcOdkVaLY2q7L02J6/vzFUH4d9pXN3sNGEw/qkDTOc4nZ2BO1afDNWrHaxaS9sEbHK7pg04lDGs6GiYatRfBhIZXoJCRksPXlueu98nUQXIjP6epY6mkY1rA9yX1Tnw9cpsUEhVwcd3qeEnH2N/wjVZazTFSJ+jRwatIFjdEvH71WHfX26MzmdHG7DvsdmTTPVOR8vues4hO2tG6baPxQGaC0ouHFk4eA==
  • Cc: <sstabellini@xxxxxxxxxx>, <stefanos@xxxxxxxxxx>, <julien@xxxxxxx>, <Volodymyr_Babchuk@xxxxxxxx>, <bertrand.marquis@xxxxxxx>, <burzalodowa@xxxxxxxxx>, Ayan Kumar Halder <ayankuma@xxxxxxx>
  • Delivery-date: Mon, 31 Oct 2022 15:14:27 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Refer ARM DDI 0487G.b ID072021,
D13.2.86 -
ID_PFR1_EL1, AArch32 Processor Feature Register 1

GIC, bits[31:28] == 0b0001 for GIC3.0 on Aarch32

One can now enable GICv3 on AArch32 systems. However, ITS is not supported.
The reason being currently we are trying to validate GICv3 on an AArch32_v8R
system. Refer ARM DDI 0568A.c ID110520, B1.3.1,
"A Generic Interrupt Controller (GIC) implemented with an Armv8-R PE must not
implement LPI support."

Updated SUPPORT.md.

Signed-off-by: Ayan Kumar Halder <ayankuma@xxxxxxx>
---

Changed from :-
v1 - 1. Remove "ARM_64 || ARM_32" as it is always true.
2. Updated SUPPORT.md.

 SUPPORT.md                            | 6 ++++++
 xen/arch/arm/Kconfig                  | 4 ++--
 xen/arch/arm/include/asm/cpufeature.h | 1 +
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index cf2ddfacaf..0137855c66 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -82,6 +82,12 @@ Extension to the GICv3 interrupt controller to support MSI.
 
     Status: Experimental
 
+### ARM/GICv3 + AArch32 ARM v8
+
+GICv3 is supported on AArch32 ARMv8 (besides AArch64)
+
+    Status: Supported, not security supported
+
 ## Guest Type
 
 ### x86/PV
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 1fe5faf847..7c3c6eb3bd 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -41,7 +41,7 @@ config ARM_EFI
 
 config GICV3
        bool "GICv3 driver"
-       depends on ARM_64 && !NEW_VGIC
+       depends on !NEW_VGIC
        default y
        ---help---
 
@@ -50,7 +50,7 @@ config GICV3
 
 config HAS_ITS
         bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORTED
-        depends on GICV3 && !NEW_VGIC
+        depends on GICV3 && !NEW_VGIC && !ARM_32
 
 config HVM
         def_bool y
diff --git a/xen/arch/arm/include/asm/cpufeature.h 
b/xen/arch/arm/include/asm/cpufeature.h
index c86a2e7f29..c62cf6293f 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -33,6 +33,7 @@
 #define cpu_has_aarch32   (cpu_has_arm || cpu_has_thumb)
 
 #ifdef CONFIG_ARM_32
+#define cpu_has_gicv3     (boot_cpu_feature32(gic) >= 1)
 #define cpu_has_gentimer  (boot_cpu_feature32(gentimer) == 1)
 /*
  * On Armv7, the value 0 is used to indicate that PMUv2 is not
-- 
2.17.1




 


Rackspace

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