1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * arch/arm64/include/asm/cpucaps.h 4 * 5 * Copyright (C) 2016 ARM Ltd. 6 */ 7 #ifndef __ASM_CPUCAPS_H 8 #define __ASM_CPUCAPS_H 9 10 #define ARM64_WORKAROUND_CLEAN_CACHE 0 11 #define ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE 1 12 #define ARM64_WORKAROUND_845719 2 13 #define ARM64_HAS_SYSREG_GIC_CPUIF 3 14 #define ARM64_HAS_PAN 4 15 #define ARM64_HAS_LSE_ATOMICS 5 16 #define ARM64_WORKAROUND_CAVIUM_23154 6 17 #define ARM64_WORKAROUND_834220 7 18 #define ARM64_HAS_NO_HW_PREFETCH 8 19 #define ARM64_HAS_UAO 9 20 #define ARM64_ALT_PAN_NOT_UAO 10 21 #define ARM64_HAS_VIRT_HOST_EXTN 11 22 #define ARM64_WORKAROUND_CAVIUM_27456 12 23 /* Unreliable: use system_supports_32bit_el0() instead. */ 24 #define ARM64_HAS_32BIT_EL0_DO_NOT_USE 13 25 #define ARM64_SPECTRE_V3A 14 26 #define ARM64_HAS_CNP 15 27 #define ARM64_HAS_NO_FPSIMD 16 28 #define ARM64_WORKAROUND_REPEAT_TLBI 17 29 #define ARM64_WORKAROUND_QCOM_FALKOR_E1003 18 30 #define ARM64_WORKAROUND_858921 19 31 #define ARM64_WORKAROUND_CAVIUM_30115 20 32 #define ARM64_HAS_DCPOP 21 33 #define ARM64_SVE 22 34 #define ARM64_UNMAP_KERNEL_AT_EL0 23 35 #define ARM64_SPECTRE_V2 24 36 #define ARM64_HAS_RAS_EXTN 25 37 #define ARM64_WORKAROUND_843419 26 38 #define ARM64_HAS_CACHE_IDC 27 39 #define ARM64_HAS_CACHE_DIC 28 40 #define ARM64_HW_DBM 29 41 #define ARM64_SPECTRE_V4 30 42 #define ARM64_MISMATCHED_CACHE_TYPE 31 43 #define ARM64_HAS_STAGE2_FWB 32 44 #define ARM64_HAS_CRC32 33 45 #define ARM64_SSBS 34 46 #define ARM64_WORKAROUND_1418040 35 47 #define ARM64_HAS_SB 36 48 #define ARM64_WORKAROUND_SPECULATIVE_AT 37 49 #define ARM64_HAS_ADDRESS_AUTH_ARCH 38 50 #define ARM64_HAS_ADDRESS_AUTH_IMP_DEF 39 51 #define ARM64_HAS_GENERIC_AUTH_ARCH 40 52 #define ARM64_HAS_GENERIC_AUTH_IMP_DEF 41 53 #define ARM64_HAS_IRQ_PRIO_MASKING 42 54 #define ARM64_HAS_DCPODP 43 55 #define ARM64_WORKAROUND_1463225 44 56 #define ARM64_WORKAROUND_CAVIUM_TX2_219_TVM 45 57 #define ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM 46 58 #define ARM64_WORKAROUND_1542419 47 59 #define ARM64_HAS_E0PD 48 60 #define ARM64_HAS_RNG 49 61 #define ARM64_HAS_AMU_EXTN 50 62 #define ARM64_HAS_ADDRESS_AUTH 51 63 #define ARM64_HAS_GENERIC_AUTH 52 64 #define ARM64_HAS_32BIT_EL1 53 65 #define ARM64_BTI 54 66 #define ARM64_HAS_ARMv8_4_TTL 55 67 #define ARM64_HAS_TLB_RANGE 56 68 #define ARM64_MTE 57 69 #define ARM64_WORKAROUND_1508412 58 70 #define ARM64_HAS_LDAPR 59 71 #define ARM64_KVM_PROTECTED_MODE 60 72 #define ARM64_WORKAROUND_TSB_FLUSH_FAILURE 61 73 #define ARM64_SPECTRE_BHB 62 74 #define ARM64_WORKAROUND_2457168 63 75 #define ARM64_WORKAROUND_1742098 64 76 77 /* kabi: reserve 65 - 76 for future cpu capabilities */ 78 #define ARM64_NCAPS 76 79 80 #endif /* __ASM_CPUCAPS_H */ 81