arm64: cpufeature: Mark existing PAuth architected algorithm as QARMA5
authorVladimir Murzin <vladimir.murzin@arm.com>
Thu, 24 Feb 2022 12:49:51 +0000 (12:49 +0000)
committerWill Deacon <will@kernel.org>
Fri, 25 Feb 2022 13:38:51 +0000 (13:38 +0000)
In preparation of supporting PAuth QARMA3 architected algorithm mark
existing one as QARMA5, so we can distingwish between two.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220224124952.119612-3-vladimir.murzin@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/cpufeature.c
arch/arm64/tools/cpucaps

index 3271770b60d6635a715d90e4e49b8f2ac246d6b6..1b955bea2856954bc0adfd5822a7b2bd98ffb5dc 100644 (file)
@@ -1835,15 +1835,19 @@ static bool has_address_auth_cpucap(const struct arm64_cpu_capabilities *entry,
 static bool has_address_auth_metacap(const struct arm64_cpu_capabilities *entry,
                                     int scope)
 {
-       return has_address_auth_cpucap(cpu_hwcaps_ptrs[ARM64_HAS_ADDRESS_AUTH_ARCH], scope) ||
-              has_address_auth_cpucap(cpu_hwcaps_ptrs[ARM64_HAS_ADDRESS_AUTH_IMP_DEF], scope);
+       bool api = has_address_auth_cpucap(cpu_hwcaps_ptrs[ARM64_HAS_ADDRESS_AUTH_IMP_DEF], scope);
+       bool apa = has_address_auth_cpucap(cpu_hwcaps_ptrs[ARM64_HAS_ADDRESS_AUTH_ARCH_QARMA5], scope);
+
+       return apa || api;
 }
 
 static bool has_generic_auth(const struct arm64_cpu_capabilities *entry,
                             int __unused)
 {
-       return __system_matches_cap(ARM64_HAS_GENERIC_AUTH_ARCH) ||
-              __system_matches_cap(ARM64_HAS_GENERIC_AUTH_IMP_DEF);
+       bool gpi = __system_matches_cap(ARM64_HAS_GENERIC_AUTH_IMP_DEF);
+       bool gpa = __system_matches_cap(ARM64_HAS_GENERIC_AUTH_ARCH_QARMA5);
+
+       return gpa || gpi;
 }
 #endif /* CONFIG_ARM64_PTR_AUTH */
 
@@ -2230,8 +2234,8 @@ static const struct arm64_cpu_capabilities arm64_features[] = {
        },
 #ifdef CONFIG_ARM64_PTR_AUTH
        {
-               .desc = "Address authentication (architected algorithm)",
-               .capability = ARM64_HAS_ADDRESS_AUTH_ARCH,
+               .desc = "Address authentication (architected QARMA5 algorithm)",
+               .capability = ARM64_HAS_ADDRESS_AUTH_ARCH_QARMA5,
                .type = ARM64_CPUCAP_BOOT_CPU_FEATURE,
                .sys_reg = SYS_ID_AA64ISAR1_EL1,
                .sign = FTR_UNSIGNED,
@@ -2255,8 +2259,8 @@ static const struct arm64_cpu_capabilities arm64_features[] = {
                .matches = has_address_auth_metacap,
        },
        {
-               .desc = "Generic authentication (architected algorithm)",
-               .capability = ARM64_HAS_GENERIC_AUTH_ARCH,
+               .desc = "Generic authentication (architected QARMA5 algorithm)",
+               .capability = ARM64_HAS_GENERIC_AUTH_ARCH_QARMA5,
                .type = ARM64_CPUCAP_SYSTEM_FEATURE,
                .sys_reg = SYS_ID_AA64ISAR1_EL1,
                .sign = FTR_UNSIGNED,
index 9c65b1e25a96506a874e578ece7bdce6ec52c309..4c39247581f646b40cdfabd7e20824f25461f233 100644 (file)
@@ -7,7 +7,7 @@ BTI
 HAS_32BIT_EL0_DO_NOT_USE
 HAS_32BIT_EL1
 HAS_ADDRESS_AUTH
-HAS_ADDRESS_AUTH_ARCH
+HAS_ADDRESS_AUTH_ARCH_QARMA5
 HAS_ADDRESS_AUTH_IMP_DEF
 HAS_AMU_EXTN
 HAS_ARMv8_4_TTL
@@ -21,7 +21,7 @@ HAS_E0PD
 HAS_ECV
 HAS_EPAN
 HAS_GENERIC_AUTH
-HAS_GENERIC_AUTH_ARCH
+HAS_GENERIC_AUTH_ARCH_QARMA5
 HAS_GENERIC_AUTH_IMP_DEF
 HAS_IRQ_PRIO_MASKING
 HAS_LDAPR