arm64: Advertise ARM64_HAS_DCPODP cpu feature
authorAndrew Murray <andrew.murray@arm.com>
Tue, 9 Apr 2019 09:52:45 +0000 (10:52 +0100)
committerWill Deacon <will.deacon@arm.com>
Tue, 16 Apr 2019 15:27:59 +0000 (16:27 +0100)
Advertise ARM64_HAS_DCPODP when both DC CVAP and DC CVADP are supported.

Even though we don't use this feature now, we provide it for consistency
with DCPOP and anticipate it being used in the future.

Signed-off-by: Andrew Murray <andrew.murray@arm.com>
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/include/asm/cpucaps.h
arch/arm64/kernel/cpufeature.c

index f6a76e43f39ed434aad795378be444b0ce121474..defdc67d9ab49c8542e42e79203db5a9df1b0754 100644 (file)
@@ -61,7 +61,8 @@
 #define ARM64_HAS_GENERIC_AUTH_ARCH            40
 #define ARM64_HAS_GENERIC_AUTH_IMP_DEF         41
 #define ARM64_HAS_IRQ_PRIO_MASKING             42
+#define ARM64_HAS_DCPODP                       43
 
-#define ARM64_NCAPS                            43
+#define ARM64_NCAPS                            44
 
 #endif /* __ASM_CPUCAPS_H */
index f8b682a3a9f4fdd1250ed41ab69777a27f4e3d83..9d18e45311fd45aa2be8396b3334bf3fcde476bd 100644 (file)
@@ -1340,6 +1340,16 @@ static const struct arm64_cpu_capabilities arm64_features[] = {
                .field_pos = ID_AA64ISAR1_DPB_SHIFT,
                .min_field_value = 1,
        },
+       {
+               .desc = "Data cache clean to Point of Deep Persistence",
+               .capability = ARM64_HAS_DCPODP,
+               .type = ARM64_CPUCAP_SYSTEM_FEATURE,
+               .matches = has_cpuid_feature,
+               .sys_reg = SYS_ID_AA64ISAR1_EL1,
+               .sign = FTR_UNSIGNED,
+               .field_pos = ID_AA64ISAR1_DPB_SHIFT,
+               .min_field_value = 2,
+       },
 #endif
 #ifdef CONFIG_ARM64_SVE
        {