2017-11-01 22:09:13 +08:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
2012-03-05 19:49:27 +08:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2012 ARM Ltd.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
|
* published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
2012-10-11 18:05:13 +08:00
|
|
|
#ifndef _UAPI__ASM_HWCAP_H
|
|
|
|
#define _UAPI__ASM_HWCAP_H
|
2012-03-05 19:49:27 +08:00
|
|
|
|
2012-10-11 18:05:13 +08:00
|
|
|
/*
|
2019-04-09 17:52:40 +08:00
|
|
|
* HWCAP flags - for AT_HWCAP
|
2012-10-11 18:05:13 +08:00
|
|
|
*/
|
|
|
|
#define HWCAP_FP (1 << 0)
|
|
|
|
#define HWCAP_ASIMD (1 << 1)
|
2013-08-13 22:57:53 +08:00
|
|
|
#define HWCAP_EVTSTRM (1 << 2)
|
2013-12-17 05:04:36 +08:00
|
|
|
#define HWCAP_AES (1 << 3)
|
|
|
|
#define HWCAP_PMULL (1 << 4)
|
|
|
|
#define HWCAP_SHA1 (1 << 5)
|
|
|
|
#define HWCAP_SHA2 (1 << 6)
|
|
|
|
#define HWCAP_CRC32 (1 << 7)
|
2015-01-27 02:46:19 +08:00
|
|
|
#define HWCAP_ATOMICS (1 << 8)
|
2016-01-26 23:52:46 +08:00
|
|
|
#define HWCAP_FPHP (1 << 9)
|
|
|
|
#define HWCAP_ASIMDHP (1 << 10)
|
2017-01-10 01:28:31 +08:00
|
|
|
#define HWCAP_CPUID (1 << 11)
|
2017-01-13 00:37:28 +08:00
|
|
|
#define HWCAP_ASIMDRDM (1 << 12)
|
2017-03-15 02:13:25 +08:00
|
|
|
#define HWCAP_JSCVT (1 << 13)
|
2017-03-15 02:13:26 +08:00
|
|
|
#define HWCAP_FCMA (1 << 14)
|
2017-03-15 02:13:27 +08:00
|
|
|
#define HWCAP_LRCPC (1 << 15)
|
2017-07-25 18:55:40 +08:00
|
|
|
#define HWCAP_DCPOP (1 << 16)
|
2017-10-11 21:01:02 +08:00
|
|
|
#define HWCAP_SHA3 (1 << 17)
|
|
|
|
#define HWCAP_SM3 (1 << 18)
|
|
|
|
#define HWCAP_SM4 (1 << 19)
|
|
|
|
#define HWCAP_ASIMDDP (1 << 20)
|
|
|
|
#define HWCAP_SHA512 (1 << 21)
|
2017-10-31 23:51:19 +08:00
|
|
|
#define HWCAP_SVE (1 << 22)
|
2017-12-13 18:13:56 +08:00
|
|
|
#define HWCAP_ASIMDFHM (1 << 23)
|
2018-03-12 18:04:14 +08:00
|
|
|
#define HWCAP_DIT (1 << 24)
|
|
|
|
#define HWCAP_USCAT (1 << 25)
|
|
|
|
#define HWCAP_ILRCPC (1 << 26)
|
|
|
|
#define HWCAP_FLAGM (1 << 27)
|
2018-06-15 18:37:34 +08:00
|
|
|
#define HWCAP_SSBS (1 << 28)
|
2018-06-14 18:21:34 +08:00
|
|
|
#define HWCAP_SB (1 << 29)
|
arm64: add basic pointer authentication support
This patch adds basic support for pointer authentication, allowing
userspace to make use of APIAKey, APIBKey, APDAKey, APDBKey, and
APGAKey. The kernel maintains key values for each process (shared by all
threads within), which are initialised to random values at exec() time.
The ID_AA64ISAR1_EL1.{APA,API,GPA,GPI} fields are exposed to userspace,
to describe that pointer authentication instructions are available and
that the kernel is managing the keys. Two new hwcaps are added for the
same reason: PACA (for address authentication) and PACG (for generic
authentication).
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
Tested-by: Adam Wallis <awallis@codeaurora.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
[will: Fix sizeof() usage and unroll address key initialisation]
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-12-08 02:39:25 +08:00
|
|
|
#define HWCAP_PACA (1 << 30)
|
|
|
|
#define HWCAP_PACG (1UL << 31)
|
2012-03-05 19:49:27 +08:00
|
|
|
|
2019-04-09 17:52:43 +08:00
|
|
|
/*
|
|
|
|
* HWCAP2 flags - for AT_HWCAP2
|
|
|
|
*/
|
|
|
|
#define HWCAP2_DCPODP (1 << 0)
|
2019-04-19 01:41:38 +08:00
|
|
|
#define HWCAP2_SVE2 (1 << 1)
|
|
|
|
#define HWCAP2_SVEAES (1 << 2)
|
|
|
|
#define HWCAP2_SVEPMULL (1 << 3)
|
|
|
|
#define HWCAP2_SVEBITPERM (1 << 4)
|
|
|
|
#define HWCAP2_SVESHA3 (1 << 5)
|
|
|
|
#define HWCAP2_SVESM4 (1 << 6)
|
2019-06-19 02:10:54 +08:00
|
|
|
#define HWCAP2_FLAGM2 (1 << 7)
|
2019-06-19 02:10:55 +08:00
|
|
|
#define HWCAP2_FRINT (1 << 8)
|
2019-04-09 17:52:43 +08:00
|
|
|
|
2012-10-11 18:05:13 +08:00
|
|
|
#endif /* _UAPI__ASM_HWCAP_H */
|