On Mon, May 18, 2026 at 04:07:29PM +0100, Mark Brown wrote:
> The features added by the 2025 dpISA are all straightforward instruction
> only features so there is no state to manage, we can just expose hwcaps to
> let userspace know they are available.
> 
> F16MM is slightly odd in that the feature is FEAT_F16MM but it is discovered
> via ID_AA64FPFR0_EL1.F16MM2. We follow the feature name.
> 
> Signed-off-by: Mark Brown <[email protected]>
> ---
>  Documentation/arch/arm64/elf_hwcaps.rst | 24 ++++++++++++++++++++++++
>  arch/arm64/include/uapi/asm/hwcap.h     |  8 ++++++++
>  arch/arm64/kernel/cpufeature.c          | 11 +++++++++++
>  arch/arm64/kernel/cpuinfo.c             |  8 ++++++++
>  4 files changed, 51 insertions(+)
> 
> diff --git a/Documentation/arch/arm64/elf_hwcaps.rst 
> b/Documentation/arch/arm64/elf_hwcaps.rst
> index 97315ae6c0da..07ff9ea1d605 100644
> --- a/Documentation/arch/arm64/elf_hwcaps.rst
> +++ b/Documentation/arch/arm64/elf_hwcaps.rst
> @@ -451,6 +451,30 @@ HWCAP3_LS64
>      of CPU. User should only use ld64b/st64b on supported target (device)
>      memory location, otherwise fallback to the non-atomic alternatives.
>  
> +HWCAP3_SVE_B16MM
> +    Functionality implied by ID_AA64ZFR0_EL1.B16B16 == 0b0011
> +
> +HWCAP3_SVE2P3
> +    Functionality implied by ID_AA64ZFR0_EL1.SVEver == 0b0100
> +
> +HWCAP3_SME_LUT6
> +    Functionality implied by ID_AA64SMFR0_EL1.LUT6 == 0b1
> +
> +HWCAP3_SME2P3
> +    Functionality implied by ID_AA64SMFR0_EL1.SMEver == 0b0100
> +
> +HWCAP3_F16MM
> +    Functionality implied by ID_AA64FPFR0_EL1.F16MM2 == 0b1
> +
> +HWCAP3_F16F32DOT
> +    Functionality implied by ID_AA64ISAR0_EL1.FHM == 0b0010
> +
> +HWCAP3_F16F32MM
> +    Functionality implied by ID_AA64ISAR0_EL1.FHM == 0b0011
> +
> +HWCAP3_SVE_LUT6
> +    Functionality implied by ID_AA64ISAR2_EL1.LUT == 0b0010 and
> +    ID_AA64PFR0_EL1.SVE == 0b0001.

I've queued this, but I'm curious why you've called out the
'ID_AA64PFR0_EL1.SVE == 0b0001' part here and not for any of the other
SVE caps you're adding? It's also formatted inconsistently from
pre-existing entries (such as HWCAP2_SVE_B16B16) which put the
ID_AA64PFR0_EL1.SVE part of the antecedent first.

Will

Reply via email to