blob: ac1dbca3d0cd3db0dc5396d05d38eb7dfb679da0 [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 Deacon0f15adb2018-01-03 11:17:58 +000034#define ARM64_HARDEN_BRANCH_PREDICTOR 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
Marc Zyngiera725e3d2018-05-29 13:11:08 +010040#define ARM64_SSBD 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 Deaconbc84a2d2018-12-10 18:53:03 +000047#define ARM64_WORKAROUND_1165522 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 Marinas272d01b2016-11-03 18:34:34 +000057
Marc Zyngier94054472019-04-09 16:22:24 +010058#define ARM64_NCAPS 47
Catalin Marinas272d01b2016-11-03 18:34:34 +000059
60#endif /* __ASM_CPUCAPS_H */