blob: 42868dbd29fd9037df97b91d3ce932fd11d20c1c [file] [log] [blame]
Thomas Gleixnercaab2772019-06-03 07:44:50 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Catalin Marinas272d01b2016-11-03 18:34:34 +00002/*
3 * arch/arm64/include/asm/cpucaps.h
4 *
5 * Copyright (C) 2016 ARM Ltd.
Catalin Marinas272d01b2016-11-03 18:34:34 +00006 */
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
Marc Zyngier71dcb8b2018-02-27 17:38:08 +000024#define ARM64_HARDEN_EL2_VECTORS 14
Will Deacon880f7cc2018-09-19 11:41:21 +010025#define ARM64_HAS_CNP 15
Linus Torvaldsf4000cd92016-12-13 16:39:21 -080026#define ARM64_HAS_NO_FPSIMD 16
Christopher Covingtond9ff80f2017-01-31 12:50:19 -050027#define ARM64_WORKAROUND_REPEAT_TLBI 17
Christopher Covington38fd94b2017-02-08 15:08:37 -050028#define ARM64_WORKAROUND_QCOM_FALKOR_E1003 18
Marc Zyngiereeb1efb2017-03-20 17:18:06 +000029#define ARM64_WORKAROUND_858921 19
David Daney690a3412017-06-09 12:49:48 +010030#define ARM64_WORKAROUND_CAVIUM_30115 20
Robin Murphyd50e0712017-07-25 11:55:42 +010031#define ARM64_HAS_DCPOP 21
Dave Martin43994d82017-10-31 15:51:19 +000032#define ARM64_SVE 22
Will Deaconea1e3de2017-11-14 14:38:19 +000033#define ARM64_UNMAP_KERNEL_AT_EL0 23
Will Deacon688f1e42020-09-15 23:00:31 +010034#define ARM64_SPECTRE_V2 24
Shanker Donthineni4bc352f2018-04-10 11:36:42 +010035#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
Will Deacon9b0955b2020-09-15 23:00:31 +010040#define ARM64_SPECTRE_V4 30
Suzuki K Poulose314d53d2018-07-04 23:07:46 +010041#define ARM64_MISMATCHED_CACHE_TYPE 31
Paolo Bonzini63198932018-08-22 14:07:56 +020042#define ARM64_HAS_STAGE2_FWB 32
Ard Biesheuvel86d0dd32018-08-27 13:02:43 +020043#define ARM64_HAS_CRC32 33
Will Deacond71be2b2018-06-15 11:37:34 +010044#define ARM64_SSBS 34
Marc Zyngiera5325082019-05-23 11:24:50 +010045#define ARM64_WORKAROUND_1418040 35
Will Deaconbd4fb6d2018-06-14 11:21:34 +010046#define ARM64_HAS_SB 36
Will Deaconc3507172020-05-28 18:02:51 +010047#define ARM64_WORKAROUND_SPECULATIVE_AT 37
Mark Rutland6984eb42018-12-07 18:39:24 +000048#define ARM64_HAS_ADDRESS_AUTH_ARCH 38
49#define ARM64_HAS_ADDRESS_AUTH_IMP_DEF 39
Will Deacona56005d2018-12-12 15:52:02 +000050#define ARM64_HAS_GENERIC_AUTH_ARCH 40
51#define ARM64_HAS_GENERIC_AUTH_IMP_DEF 41
Julien Thierryb90d2b22019-01-31 14:58:42 +000052#define ARM64_HAS_IRQ_PRIO_MASKING 42
Andrew Murrayb9585f52019-04-09 10:52:45 +010053#define ARM64_HAS_DCPODP 43
Will Deacon969f5ea2019-04-29 13:03:57 +010054#define ARM64_WORKAROUND_1463225 44
Marc Zyngierd3ec3a02019-02-07 16:01:21 +000055#define ARM64_WORKAROUND_CAVIUM_TX2_219_TVM 45
Marc Zyngier94054472019-04-09 16:22:24 +010056#define ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM 46
Catalin Marinas6a036af2019-10-28 16:12:40 +000057#define ARM64_WORKAROUND_1542419 47
Andrew Scull02ab1f52020-05-04 10:48:58 +010058#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
Will Deaconc3507172020-05-28 18:02:51 +010063#define ARM64_HAS_32BIT_EL1 53
64#define ARM64_BTI 54
Marc Zyngier552ae762018-12-22 12:00:10 +000065#define ARM64_HAS_ARMv8_4_TTL 55
Zhenyu Yeb620ba52020-07-15 15:19:43 +080066#define ARM64_HAS_TLB_RANGE 56
Vincenzo Frascino3b714d22019-09-06 10:58:01 +010067#define ARM64_MTE 57
Catalin Marinas272d01b2016-11-03 18:34:34 +000068
Vincenzo Frascino3b714d22019-09-06 10:58:01 +010069#define ARM64_NCAPS 58
Catalin Marinas272d01b2016-11-03 18:34:34 +000070
71#endif /* __ASM_CPUCAPS_H */