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#define ARM64_HAS_32BIT_EL0			13
24#define ARM64_HARDEN_EL2_VECTORS		14
25#define ARM64_HAS_CNP				15
26#define ARM64_HAS_NO_FPSIMD			16
27#define ARM64_WORKAROUND_REPEAT_TLBI		17
28#define ARM64_WORKAROUND_QCOM_FALKOR_E1003	18
29#define ARM64_WORKAROUND_858921			19
30#define ARM64_WORKAROUND_CAVIUM_30115		20
31#define ARM64_HAS_DCPOP				21
32#define ARM64_SVE				22
33#define ARM64_UNMAP_KERNEL_AT_EL0		23
34#define ARM64_SPECTRE_V2			24
35#define ARM64_HAS_RAS_EXTN			25
36#define ARM64_WORKAROUND_843419			26
37#define ARM64_HAS_CACHE_IDC			27
38#define ARM64_HAS_CACHE_DIC			28
39#define ARM64_HW_DBM				29
40#define ARM64_SPECTRE_V4			30
41#define ARM64_MISMATCHED_CACHE_TYPE		31
42#define ARM64_HAS_STAGE2_FWB			32
43#define ARM64_HAS_CRC32				33
44#define ARM64_SSBS				34
45#define ARM64_WORKAROUND_1418040		35
46#define ARM64_HAS_SB				36
47#define ARM64_WORKAROUND_SPECULATIVE_AT		37
48#define ARM64_HAS_ADDRESS_AUTH_ARCH		38
49#define ARM64_HAS_ADDRESS_AUTH_IMP_DEF		39
50#define ARM64_HAS_GENERIC_AUTH_ARCH		40
51#define ARM64_HAS_GENERIC_AUTH_IMP_DEF		41
52#define ARM64_HAS_IRQ_PRIO_MASKING		42
53#define ARM64_HAS_DCPODP			43
54#define ARM64_WORKAROUND_1463225		44
55#define ARM64_WORKAROUND_CAVIUM_TX2_219_TVM	45
56#define ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM	46
57#define ARM64_WORKAROUND_1542419		47
58#define ARM64_HAS_E0PD				48
59#define ARM64_HAS_RNG				49
60#define ARM64_HAS_AMU_EXTN			50
61#define ARM64_HAS_ADDRESS_AUTH			51
62#define ARM64_HAS_GENERIC_AUTH			52
63#define ARM64_HAS_32BIT_EL1			53
64#define ARM64_BTI				54
65#define ARM64_HAS_ARMv8_4_TTL			55
66#define ARM64_HAS_TLB_RANGE			56
67#define ARM64_MTE				57
68#define ARM64_WORKAROUND_1508412		58
69#define ARM64_SPECTRE_BHB			59
70#define ARM64_WORKAROUND_2457168		60
71#define ARM64_WORKAROUND_1742098		61
72
73#define ARM64_NCAPS				62
74
75#endif /* __ASM_CPUCAPS_H */
76