]> xenbits.xensource.com Git - people/dariof/xen.git/commitdiff
xen/arm: Hide Pointer Authentication (PAC)
authorVladimir Murzin <vladimir.murzin@arm.com>
Wed, 20 Jan 2021 11:27:12 +0000 (11:27 +0000)
committerJulien Grall <jgrall@amazon.com>
Wed, 20 Jan 2021 17:42:27 +0000 (17:42 +0000)
The ARMv8.3 Pointer Authentication extension is not supported by Xen
at the moment, so do not expose that via ID register.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
[julien: s/__res0/__res2/ to avoid name duplication]
Reviewed-by: Julien Grall <jgrall@amazon.com>
xen/arch/arm/cpufeature.c
xen/include/asm-arm/cpufeature.h

index 99fe4db2806348552d672cf8beb669ddbd184443..1d88783809e229b5b918563123d3138763728b06 100644 (file)
@@ -187,6 +187,12 @@ static int __init create_guest_cpuinfo(void)
 
     /* Hide MTE support as Xen does not support it */
     guest_cpuinfo.pfr64.mte = 0;
+
+    /* Hide PAC support as Xen does not support it */
+    guest_cpuinfo.isa64.apa = 0;
+    guest_cpuinfo.isa64.api = 0;
+    guest_cpuinfo.isa64.gpa = 0;
+    guest_cpuinfo.isa64.gpi = 0;
 #endif
 
     /* Hide AMU support */
index 13a2739a69b8e601caaf4290cd931ee0214e3412..70cb67301f74204623aef7ae74d30491ae7eed70 100644 (file)
@@ -212,8 +212,44 @@ struct cpuinfo_arm {
         };
     } mm64;
 
-    struct {
+    union {
         uint64_t bits[2];
+        struct {
+            /* ISAR0 */
+            unsigned long __res0:4;
+            unsigned long aes:4;
+            unsigned long sha1:4;
+            unsigned long sha2:4;
+            unsigned long crc32:4;
+            unsigned long atomic:4;
+            unsigned long __res1:4;
+            unsigned long rdm:4;
+            unsigned long sha3:4;
+            unsigned long sm3:4;
+            unsigned long sm4:4;
+            unsigned long dp:4;
+            unsigned long fhm:4;
+            unsigned long ts:4;
+            unsigned long tlb:4;
+            unsigned long rndr:4;
+
+            /* ISAR1 */
+            unsigned long dpb:4;
+            unsigned long apa:4;
+            unsigned long api:4;
+            unsigned long jscvt:4;
+            unsigned long fcma:4;
+            unsigned long lrcpc:4;
+            unsigned long gpa:4;
+            unsigned long gpi:4;
+            unsigned long frintts:4;
+            unsigned long sb:4;
+            unsigned long specres:4;
+            unsigned long bf16:4;
+            unsigned long dgh:4;
+            unsigned long i8mm:4;
+            unsigned long __res2:8;
+        };
     } isa64;
 
     struct {