mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
5a4332062e
* arm64/for-next/perf: perf: Switch back to struct platform_driver::remove() perf: arm_pmuv3: Add support for Samsung Mongoose PMU dt-bindings: arm: pmu: Add Samsung Mongoose core compatible perf/dwc_pcie: Fix typos in event names perf/dwc_pcie: Add support for Ampere SoCs ARM: pmuv3: Add missing write_pmuacr() perf/marvell: Marvell PEM performance monitor support perf/arm_pmuv3: Add PMUv3.9 per counter EL0 access control perf/dwc_pcie: Convert the events with mixed case to lowercase perf/cxlpmu: Support missing events in 3.1 spec perf: imx_perf: add support for i.MX91 platform dt-bindings: perf: fsl-imx-ddr: Add i.MX91 compatible drivers perf: remove unused field pmu_node * for-next/gcs: (42 commits) : arm64 Guarded Control Stack user-space support kselftest/arm64: Fix missing printf() argument in gcs/gcs-stress.c arm64/gcs: Fix outdated ptrace documentation kselftest/arm64: Ensure stable names for GCS stress test results kselftest/arm64: Validate that GCS push and write permissions work kselftest/arm64: Enable GCS for the FP stress tests kselftest/arm64: Add a GCS stress test kselftest/arm64: Add GCS signal tests kselftest/arm64: Add test coverage for GCS mode locking kselftest/arm64: Add a GCS test program built with the system libc kselftest/arm64: Add very basic GCS test program kselftest/arm64: Always run signals tests with GCS enabled kselftest/arm64: Allow signals tests to specify an expected si_code kselftest/arm64: Add framework support for GCS to signal handling tests kselftest/arm64: Add GCS as a detected feature in the signal tests kselftest/arm64: Verify the GCS hwcap arm64: Add Kconfig for Guarded Control Stack (GCS) arm64/ptrace: Expose GCS via ptrace and core files arm64/signal: Expose GCS state in signal frames arm64/signal: Set up and restore the GCS context for signal handlers arm64/mm: Implement map_shadow_stack() ... * for-next/probes: : Various arm64 uprobes/kprobes cleanups arm64: insn: Simulate nop instruction for better uprobe performance arm64: probes: Remove probe_opcode_t arm64: probes: Cleanup kprobes endianness conversions arm64: probes: Move kprobes-specific fields arm64: probes: Fix uprobes for big-endian kernels arm64: probes: Fix simulate_ldr*_literal() arm64: probes: Remove broken LDR (literal) uprobe support * for-next/asm-offsets: : arm64 asm-offsets.c cleanup (remove unused offsets) arm64: asm-offsets: remove PREEMPT_DISABLE_OFFSET arm64: asm-offsets: remove DMA_{TO,FROM}_DEVICE arm64: asm-offsets: remove VM_EXEC and PAGE_SZ arm64: asm-offsets: remove MM_CONTEXT_ID arm64: asm-offsets: remove COMPAT_{RT_,SIGFRAME_REGS_OFFSET arm64: asm-offsets: remove VMA_VM_* arm64: asm-offsets: remove TSK_ACTIVE_MM * for-next/tlb: : TLB flushing optimisations arm64: optimize flush tlb kernel range arm64: tlbflush: add __flush_tlb_range_limit_excess() * for-next/misc: : Miscellaneous patches arm64: tls: Fix context-switching of tpidrro_el0 when kpti is enabled arm64/ptrace: Clarify documentation of VL configuration via ptrace acpi/arm64: remove unnecessary cast arm64/mm: Change protval as 'pteval_t' in map_range() arm64: uprobes: Optimize cache flushes for xol slot acpi/arm64: Adjust error handling procedure in gtdt_parse_timer_block() arm64: fix .data.rel.ro size assertion when CONFIG_LTO_CLANG arm64/ptdump: Test both PTE_TABLE_BIT and PTE_VALID for block mappings arm64/mm: Sanity check PTE address before runtime P4D/PUD folding arm64/mm: Drop setting PTE_TYPE_PAGE in pte_mkcont() ACPI: GTDT: Tighten the check for the array of platform timer structures arm64/fpsimd: Fix a typo arm64: Expose ID_AA64ISAR1_EL1.XS to sanitised feature consumers arm64: Return early when break handler is found on linked-list arm64/mm: Re-organize arch_make_huge_pte() arm64/mm: Drop _PROT_SECT_DEFAULT arm64: Add command-line override for ID_AA64MMFR0_EL1.ECV arm64: head: Drop SWAPPER_TABLE_SHIFT arm64: cpufeature: add POE to cpucap_is_possible() arm64/mm: Change pgattr_change_is_safe() arguments as pteval_t * for-next/mte: : Various MTE improvements selftests: arm64: add hugetlb mte tests hugetlb: arm64: add mte support * for-next/sysreg: : arm64 sysreg updates arm64/sysreg: Update ID_AA64MMFR1_EL1 to DDI0601 2024-09 * for-next/stacktrace: : arm64 stacktrace improvements arm64: preserve pt_regs::stackframe during exec*() arm64: stacktrace: unwind exception boundaries arm64: stacktrace: split unwind_consume_stack() arm64: stacktrace: report recovered PCs arm64: stacktrace: report source of unwind data arm64: stacktrace: move dump_backtrace() to kunwind_stack_walk() arm64: use a common struct frame_record arm64: pt_regs: swap 'unused' and 'pmr' fields arm64: pt_regs: rename "pmr_save" -> "pmr" arm64: pt_regs: remove stale big-endian layout arm64: pt_regs: assert pt_regs is a multiple of 16 bytes * for-next/hwcap3: : Add AT_HWCAP3 support for arm64 (also wire up AT_HWCAP4) arm64: Support AT_HWCAP3 binfmt_elf: Wire up AT_HWCAP3 at AT_HWCAP4 * for-next/kselftest: (30 commits) : arm64 kselftest fixes/cleanups kselftest/arm64: Try harder to generate different keys during PAC tests kselftest/arm64: Don't leak pipe fds in pac.exec_sign_all() kselftest/arm64: Corrupt P0 in the irritator when testing SSVE kselftest/arm64: Add FPMR coverage to fp-ptrace kselftest/arm64: Expand the set of ZA writes fp-ptrace does kselftets/arm64: Use flag bits for features in fp-ptrace assembler code kselftest/arm64: Enable build of PAC tests with LLVM=1 kselftest/arm64: Check that SVCR is 0 in signal handlers kselftest/arm64: Fix printf() compiler warnings in the arm64 syscall-abi.c tests kselftest/arm64: Fix printf() warning in the arm64 MTE prctl() test kselftest/arm64: Fix printf() compiler warnings in the arm64 fp tests kselftest/arm64: Fix build with stricter assemblers kselftest/arm64: Test signal handler state modification in fp-stress kselftest/arm64: Provide a SIGUSR1 handler in the kernel mode FP stress test kselftest/arm64: Implement irritators for ZA and ZT kselftest/arm64: Remove unused ADRs from irritator handlers kselftest/arm64: Correct misleading comments on fp-stress irritators kselftest/arm64: Poll less often while waiting for fp-stress children kselftest/arm64: Increase frequency of signal delivery in fp-stress kselftest/arm64: Fix encoding for SVE B16B16 test ... * for-next/crc32: : Optimise CRC32 using PMULL instructions arm64/crc32: Implement 4-way interleave using PMULL arm64/crc32: Reorganize bit/byte ordering macros arm64/lib: Handle CRC-32 alternative in C code * for-next/guest-cca: : Support for running Linux as a guest in Arm CCA arm64: Document Arm Confidential Compute virt: arm-cca-guest: TSM_REPORT support for realms arm64: Enable memory encrypt for Realms arm64: mm: Avoid TLBI when marking pages as valid arm64: Enforce bounce buffers for realm DMA efi: arm64: Map Device with Prot Shared arm64: rsi: Map unprotected MMIO as decrypted arm64: rsi: Add support for checking whether an MMIO is protected arm64: realm: Query IPA size from the RMM arm64: Detect if in a realm and set RIPAS RAM arm64: rsi: Add RSI definitions * for-next/haft: : Support for arm64 FEAT_HAFT arm64: pgtable: Warn unexpected pmdp_test_and_clear_young() arm64: Enable ARCH_HAS_NONLEAF_PMD_YOUNG arm64: Add support for FEAT_HAFT arm64: setup: name 'tcr2' register arm64/sysreg: Update ID_AA64MMFR1_EL1 register * for-next/scs: : Dynamic shadow call stack fixes arm64/scs: Drop unused prototype __pi_scs_patch_vmlinux() arm64/scs: Deal with 64-bit relative offsets in FDE frames arm64/scs: Fix handling of DWARF augmentation data in CIE/FDE frames
380 lines
10 KiB
ReStructuredText
380 lines
10 KiB
ReStructuredText
.. _elf_hwcaps_index:
|
|
|
|
================
|
|
ARM64 ELF hwcaps
|
|
================
|
|
|
|
This document describes the usage and semantics of the arm64 ELF hwcaps.
|
|
|
|
|
|
1. Introduction
|
|
---------------
|
|
|
|
Some hardware or software features are only available on some CPU
|
|
implementations, and/or with certain kernel configurations, but have no
|
|
architected discovery mechanism available to userspace code at EL0. The
|
|
kernel exposes the presence of these features to userspace through a set
|
|
of flags called hwcaps, exposed in the auxiliary vector.
|
|
|
|
Userspace software can test for features by acquiring the AT_HWCAP,
|
|
AT_HWCAP2 or AT_HWCAP3 entry of the auxiliary vector, and testing
|
|
whether the relevant flags are set, e.g.::
|
|
|
|
bool floating_point_is_present(void)
|
|
{
|
|
unsigned long hwcaps = getauxval(AT_HWCAP);
|
|
if (hwcaps & HWCAP_FP)
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
Where software relies on a feature described by a hwcap, it should check
|
|
the relevant hwcap flag to verify that the feature is present before
|
|
attempting to make use of the feature.
|
|
|
|
Features cannot be probed reliably through other means. When a feature
|
|
is not available, attempting to use it may result in unpredictable
|
|
behaviour, and is not guaranteed to result in any reliable indication
|
|
that the feature is unavailable, such as a SIGILL.
|
|
|
|
|
|
2. Interpretation of hwcaps
|
|
---------------------------
|
|
|
|
The majority of hwcaps are intended to indicate the presence of features
|
|
which are described by architected ID registers inaccessible to
|
|
userspace code at EL0. These hwcaps are defined in terms of ID register
|
|
fields, and should be interpreted with reference to the definition of
|
|
these fields in the ARM Architecture Reference Manual (ARM ARM).
|
|
|
|
Such hwcaps are described below in the form::
|
|
|
|
Functionality implied by idreg.field == val.
|
|
|
|
Such hwcaps indicate the availability of functionality that the ARM ARM
|
|
defines as being present when idreg.field has value val, but do not
|
|
indicate that idreg.field is precisely equal to val, nor do they
|
|
indicate the absence of functionality implied by other values of
|
|
idreg.field.
|
|
|
|
Other hwcaps may indicate the presence of features which cannot be
|
|
described by ID registers alone. These may be described without
|
|
reference to ID registers, and may refer to other documentation.
|
|
|
|
|
|
3. The hwcaps exposed in AT_HWCAP
|
|
---------------------------------
|
|
|
|
HWCAP_FP
|
|
Functionality implied by ID_AA64PFR0_EL1.FP == 0b0000.
|
|
|
|
HWCAP_ASIMD
|
|
Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0000.
|
|
|
|
HWCAP_EVTSTRM
|
|
The generic timer is configured to generate events at a frequency of
|
|
approximately 10KHz.
|
|
|
|
HWCAP_AES
|
|
Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0001.
|
|
|
|
HWCAP_PMULL
|
|
Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0010.
|
|
|
|
HWCAP_SHA1
|
|
Functionality implied by ID_AA64ISAR0_EL1.SHA1 == 0b0001.
|
|
|
|
HWCAP_SHA2
|
|
Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0001.
|
|
|
|
HWCAP_CRC32
|
|
Functionality implied by ID_AA64ISAR0_EL1.CRC32 == 0b0001.
|
|
|
|
HWCAP_ATOMICS
|
|
Functionality implied by ID_AA64ISAR0_EL1.Atomic == 0b0010.
|
|
|
|
HWCAP_FPHP
|
|
Functionality implied by ID_AA64PFR0_EL1.FP == 0b0001.
|
|
|
|
HWCAP_ASIMDHP
|
|
Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0001.
|
|
|
|
HWCAP_CPUID
|
|
EL0 access to certain ID registers is available, to the extent
|
|
described by Documentation/arch/arm64/cpu-feature-registers.rst.
|
|
|
|
These ID registers may imply the availability of features.
|
|
|
|
HWCAP_ASIMDRDM
|
|
Functionality implied by ID_AA64ISAR0_EL1.RDM == 0b0001.
|
|
|
|
HWCAP_JSCVT
|
|
Functionality implied by ID_AA64ISAR1_EL1.JSCVT == 0b0001.
|
|
|
|
HWCAP_FCMA
|
|
Functionality implied by ID_AA64ISAR1_EL1.FCMA == 0b0001.
|
|
|
|
HWCAP_LRCPC
|
|
Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0001.
|
|
|
|
HWCAP_DCPOP
|
|
Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0001.
|
|
|
|
HWCAP_SHA3
|
|
Functionality implied by ID_AA64ISAR0_EL1.SHA3 == 0b0001.
|
|
|
|
HWCAP_SM3
|
|
Functionality implied by ID_AA64ISAR0_EL1.SM3 == 0b0001.
|
|
|
|
HWCAP_SM4
|
|
Functionality implied by ID_AA64ISAR0_EL1.SM4 == 0b0001.
|
|
|
|
HWCAP_ASIMDDP
|
|
Functionality implied by ID_AA64ISAR0_EL1.DP == 0b0001.
|
|
|
|
HWCAP_SHA512
|
|
Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0010.
|
|
|
|
HWCAP_SVE
|
|
Functionality implied by ID_AA64PFR0_EL1.SVE == 0b0001.
|
|
|
|
HWCAP_ASIMDFHM
|
|
Functionality implied by ID_AA64ISAR0_EL1.FHM == 0b0001.
|
|
|
|
HWCAP_DIT
|
|
Functionality implied by ID_AA64PFR0_EL1.DIT == 0b0001.
|
|
|
|
HWCAP_USCAT
|
|
Functionality implied by ID_AA64MMFR2_EL1.AT == 0b0001.
|
|
|
|
HWCAP_ILRCPC
|
|
Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0010.
|
|
|
|
HWCAP_FLAGM
|
|
Functionality implied by ID_AA64ISAR0_EL1.TS == 0b0001.
|
|
|
|
HWCAP_SSBS
|
|
Functionality implied by ID_AA64PFR1_EL1.SSBS == 0b0010.
|
|
|
|
HWCAP_SB
|
|
Functionality implied by ID_AA64ISAR1_EL1.SB == 0b0001.
|
|
|
|
HWCAP_PACA
|
|
Functionality implied by ID_AA64ISAR1_EL1.APA == 0b0001 or
|
|
ID_AA64ISAR1_EL1.API == 0b0001, as described by
|
|
Documentation/arch/arm64/pointer-authentication.rst.
|
|
|
|
HWCAP_PACG
|
|
Functionality implied by ID_AA64ISAR1_EL1.GPA == 0b0001 or
|
|
ID_AA64ISAR1_EL1.GPI == 0b0001, as described by
|
|
Documentation/arch/arm64/pointer-authentication.rst.
|
|
|
|
HWCAP_GCS
|
|
Functionality implied by ID_AA64PFR1_EL1.GCS == 0b1, as
|
|
described by Documentation/arch/arm64/gcs.rst.
|
|
|
|
HWCAP2_DCPODP
|
|
Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0010.
|
|
|
|
HWCAP2_SVE2
|
|
Functionality implied by ID_AA64ZFR0_EL1.SVEver == 0b0001.
|
|
|
|
HWCAP2_SVEAES
|
|
Functionality implied by ID_AA64ZFR0_EL1.AES == 0b0001.
|
|
|
|
HWCAP2_SVEPMULL
|
|
Functionality implied by ID_AA64ZFR0_EL1.AES == 0b0010.
|
|
|
|
HWCAP2_SVEBITPERM
|
|
Functionality implied by ID_AA64ZFR0_EL1.BitPerm == 0b0001.
|
|
|
|
HWCAP2_SVESHA3
|
|
Functionality implied by ID_AA64ZFR0_EL1.SHA3 == 0b0001.
|
|
|
|
HWCAP2_SVESM4
|
|
Functionality implied by ID_AA64ZFR0_EL1.SM4 == 0b0001.
|
|
|
|
HWCAP2_FLAGM2
|
|
Functionality implied by ID_AA64ISAR0_EL1.TS == 0b0010.
|
|
|
|
HWCAP2_FRINT
|
|
Functionality implied by ID_AA64ISAR1_EL1.FRINTTS == 0b0001.
|
|
|
|
HWCAP2_SVEI8MM
|
|
Functionality implied by ID_AA64ZFR0_EL1.I8MM == 0b0001.
|
|
|
|
HWCAP2_SVEF32MM
|
|
Functionality implied by ID_AA64ZFR0_EL1.F32MM == 0b0001.
|
|
|
|
HWCAP2_SVEF64MM
|
|
Functionality implied by ID_AA64ZFR0_EL1.F64MM == 0b0001.
|
|
|
|
HWCAP2_SVEBF16
|
|
Functionality implied by ID_AA64ZFR0_EL1.BF16 == 0b0001.
|
|
|
|
HWCAP2_I8MM
|
|
Functionality implied by ID_AA64ISAR1_EL1.I8MM == 0b0001.
|
|
|
|
HWCAP2_BF16
|
|
Functionality implied by ID_AA64ISAR1_EL1.BF16 == 0b0001.
|
|
|
|
HWCAP2_DGH
|
|
Functionality implied by ID_AA64ISAR1_EL1.DGH == 0b0001.
|
|
|
|
HWCAP2_RNG
|
|
Functionality implied by ID_AA64ISAR0_EL1.RNDR == 0b0001.
|
|
|
|
HWCAP2_BTI
|
|
Functionality implied by ID_AA64PFR1_EL1.BT == 0b0001.
|
|
|
|
HWCAP2_MTE
|
|
Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0010, as described
|
|
by Documentation/arch/arm64/memory-tagging-extension.rst.
|
|
|
|
HWCAP2_ECV
|
|
Functionality implied by ID_AA64MMFR0_EL1.ECV == 0b0001.
|
|
|
|
HWCAP2_AFP
|
|
Functionality implied by ID_AA64MMFR1_EL1.AFP == 0b0001.
|
|
|
|
HWCAP2_RPRES
|
|
Functionality implied by ID_AA64ISAR2_EL1.RPRES == 0b0001.
|
|
|
|
HWCAP2_MTE3
|
|
Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0011, as described
|
|
by Documentation/arch/arm64/memory-tagging-extension.rst.
|
|
|
|
HWCAP2_SME
|
|
Functionality implied by ID_AA64PFR1_EL1.SME == 0b0001, as described
|
|
by Documentation/arch/arm64/sme.rst.
|
|
|
|
HWCAP2_SME_I16I64
|
|
Functionality implied by ID_AA64SMFR0_EL1.I16I64 == 0b1111.
|
|
|
|
HWCAP2_SME_F64F64
|
|
Functionality implied by ID_AA64SMFR0_EL1.F64F64 == 0b1.
|
|
|
|
HWCAP2_SME_I8I32
|
|
Functionality implied by ID_AA64SMFR0_EL1.I8I32 == 0b1111.
|
|
|
|
HWCAP2_SME_F16F32
|
|
Functionality implied by ID_AA64SMFR0_EL1.F16F32 == 0b1.
|
|
|
|
HWCAP2_SME_B16F32
|
|
Functionality implied by ID_AA64SMFR0_EL1.B16F32 == 0b1.
|
|
|
|
HWCAP2_SME_F32F32
|
|
Functionality implied by ID_AA64SMFR0_EL1.F32F32 == 0b1.
|
|
|
|
HWCAP2_SME_FA64
|
|
Functionality implied by ID_AA64SMFR0_EL1.FA64 == 0b1.
|
|
|
|
HWCAP2_WFXT
|
|
Functionality implied by ID_AA64ISAR2_EL1.WFXT == 0b0010.
|
|
|
|
HWCAP2_EBF16
|
|
Functionality implied by ID_AA64ISAR1_EL1.BF16 == 0b0010.
|
|
|
|
HWCAP2_SVE_EBF16
|
|
Functionality implied by ID_AA64ZFR0_EL1.BF16 == 0b0010.
|
|
|
|
HWCAP2_CSSC
|
|
Functionality implied by ID_AA64ISAR2_EL1.CSSC == 0b0001.
|
|
|
|
HWCAP2_RPRFM
|
|
Functionality implied by ID_AA64ISAR2_EL1.RPRFM == 0b0001.
|
|
|
|
HWCAP2_SVE2P1
|
|
Functionality implied by ID_AA64ZFR0_EL1.SVEver == 0b0010.
|
|
|
|
HWCAP2_SME2
|
|
Functionality implied by ID_AA64SMFR0_EL1.SMEver == 0b0001.
|
|
|
|
HWCAP2_SME2P1
|
|
Functionality implied by ID_AA64SMFR0_EL1.SMEver == 0b0010.
|
|
|
|
HWCAP2_SMEI16I32
|
|
Functionality implied by ID_AA64SMFR0_EL1.I16I32 == 0b0101
|
|
|
|
HWCAP2_SMEBI32I32
|
|
Functionality implied by ID_AA64SMFR0_EL1.BI32I32 == 0b1
|
|
|
|
HWCAP2_SMEB16B16
|
|
Functionality implied by ID_AA64SMFR0_EL1.B16B16 == 0b1
|
|
|
|
HWCAP2_SMEF16F16
|
|
Functionality implied by ID_AA64SMFR0_EL1.F16F16 == 0b1
|
|
|
|
HWCAP2_MOPS
|
|
Functionality implied by ID_AA64ISAR2_EL1.MOPS == 0b0001.
|
|
|
|
HWCAP2_HBC
|
|
Functionality implied by ID_AA64ISAR2_EL1.BC == 0b0001.
|
|
|
|
HWCAP2_SVE_B16B16
|
|
Functionality implied by ID_AA64ZFR0_EL1.B16B16 == 0b0001.
|
|
|
|
HWCAP2_LRCPC3
|
|
Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0011.
|
|
|
|
HWCAP2_LSE128
|
|
Functionality implied by ID_AA64ISAR0_EL1.Atomic == 0b0011.
|
|
|
|
HWCAP2_FPMR
|
|
Functionality implied by ID_AA64PFR2_EL1.FMR == 0b0001.
|
|
|
|
HWCAP2_LUT
|
|
Functionality implied by ID_AA64ISAR2_EL1.LUT == 0b0001.
|
|
|
|
HWCAP2_FAMINMAX
|
|
Functionality implied by ID_AA64ISAR3_EL1.FAMINMAX == 0b0001.
|
|
|
|
HWCAP2_F8CVT
|
|
Functionality implied by ID_AA64FPFR0_EL1.F8CVT == 0b1.
|
|
|
|
HWCAP2_F8FMA
|
|
Functionality implied by ID_AA64FPFR0_EL1.F8FMA == 0b1.
|
|
|
|
HWCAP2_F8DP4
|
|
Functionality implied by ID_AA64FPFR0_EL1.F8DP4 == 0b1.
|
|
|
|
HWCAP2_F8DP2
|
|
Functionality implied by ID_AA64FPFR0_EL1.F8DP2 == 0b1.
|
|
|
|
HWCAP2_F8E4M3
|
|
Functionality implied by ID_AA64FPFR0_EL1.F8E4M3 == 0b1.
|
|
|
|
HWCAP2_F8E5M2
|
|
Functionality implied by ID_AA64FPFR0_EL1.F8E5M2 == 0b1.
|
|
|
|
HWCAP2_SME_LUTV2
|
|
Functionality implied by ID_AA64SMFR0_EL1.LUTv2 == 0b1.
|
|
|
|
HWCAP2_SME_F8F16
|
|
Functionality implied by ID_AA64SMFR0_EL1.F8F16 == 0b1.
|
|
|
|
HWCAP2_SME_F8F32
|
|
Functionality implied by ID_AA64SMFR0_EL1.F8F32 == 0b1.
|
|
|
|
HWCAP2_SME_SF8FMA
|
|
Functionality implied by ID_AA64SMFR0_EL1.SF8FMA == 0b1.
|
|
|
|
HWCAP2_SME_SF8DP4
|
|
Functionality implied by ID_AA64SMFR0_EL1.SF8DP4 == 0b1.
|
|
|
|
HWCAP2_SME_SF8DP2
|
|
Functionality implied by ID_AA64SMFR0_EL1.SF8DP2 == 0b1.
|
|
|
|
HWCAP2_SME_SF8DP4
|
|
Functionality implied by ID_AA64SMFR0_EL1.SF8DP4 == 0b1.
|
|
|
|
HWCAP2_POE
|
|
Functionality implied by ID_AA64MMFR3_EL1.S1POE == 0b0001.
|
|
|
|
4. Unused AT_HWCAP bits
|
|
-----------------------
|
|
|
|
For interoperation with userspace, the kernel guarantees that bits 62
|
|
and 63 of AT_HWCAP will always be returned as 0.
|