Commit 92867739 authored by Will Deacon's avatar Will Deacon
Browse files

Merge branch 'for-next/cpufeature' into for-next/core

* for-next/cpufeature:
  arm64/hwcap: Support FEAT_EBF16
  arm64/cpufeature: Store elf_hwcaps as a bitmap rather than unsigned long
  arm64/hwcap: Document allocation of upper bits of AT_HWCAP
  arm64: trap implementation defined functionality in userspace
parents e8da08fc a6a468f5
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -301,6 +301,10 @@ HWCAP2_WFXT

    Functionality implied by ID_AA64ISAR2_EL1.WFXT == 0b0010.

HWCAP2_EBF16

    Functionality implied by ID_AA64ISAR1_EL1.BF16 == 0b0010.

4. Unused AT_HWCAP bits
-----------------------

+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
#include <asm/hwcap.h>
#include <asm/sysreg.h>

#define MAX_CPU_FEATURES	64
#define MAX_CPU_FEATURES	128
#define cpu_feature(x)		KERNEL_HWCAP_ ## x

#ifndef __ASSEMBLY__
+2 −1
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@
#define KERNEL_HWCAP_PACA		__khwcap_feature(PACA)
#define KERNEL_HWCAP_PACG		__khwcap_feature(PACG)

#define __khwcap2_feature(x)		(const_ilog2(HWCAP2_ ## x) + 32)
#define __khwcap2_feature(x)		(const_ilog2(HWCAP2_ ## x) + 64)
#define KERNEL_HWCAP_DCPODP		__khwcap2_feature(DCPODP)
#define KERNEL_HWCAP_SVE2		__khwcap2_feature(SVE2)
#define KERNEL_HWCAP_SVEAES		__khwcap2_feature(SVEAES)
@@ -118,6 +118,7 @@
#define KERNEL_HWCAP_SME_F32F32		__khwcap2_feature(SME_F32F32)
#define KERNEL_HWCAP_SME_FA64		__khwcap2_feature(SME_FA64)
#define KERNEL_HWCAP_WFXT		__khwcap2_feature(WFXT)
#define KERNEL_HWCAP_EBF16		__khwcap2_feature(EBF16)

/*
 * This yields a mask that user programs can use to figure out what
+4 −0
Original line number Diff line number Diff line
@@ -788,6 +788,7 @@

/* id_aa64mmfr1 */
#define ID_AA64MMFR1_ECBHB_SHIFT	60
#define ID_AA64MMFR1_TIDCP1_SHIFT	52
#define ID_AA64MMFR1_HCX_SHIFT		40
#define ID_AA64MMFR1_AFP_SHIFT		44
#define ID_AA64MMFR1_ETS_SHIFT		36
@@ -804,6 +805,9 @@
#define ID_AA64MMFR1_VMIDBITS_8		0
#define ID_AA64MMFR1_VMIDBITS_16	2

#define ID_AA64MMFR1_TIDCP1_NI		0
#define ID_AA64MMFR1_TIDCP1_IMP		1

/* id_aa64mmfr2 */
#define ID_AA64MMFR2_E0PD_SHIFT		60
#define ID_AA64MMFR2_EVT_SHIFT		56
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@

/*
 * HWCAP flags - for AT_HWCAP
 *
 * Bits 62 and 63 are reserved for use by libc.
 * Bits 32-61 are unallocated for potential use by libc.
 */
#define HWCAP_FP		(1 << 0)
#define HWCAP_ASIMD		(1 << 1)
@@ -88,5 +91,6 @@
#define HWCAP2_SME_F32F32	(1 << 29)
#define HWCAP2_SME_FA64		(1 << 30)
#define HWCAP2_WFXT		(1UL << 31)
#define HWCAP2_EBF16		(1UL << 32)

#endif /* _UAPI__ASM_HWCAP_H */
Loading