@@ -2779,40 +2779,40 @@ static const struct arm64_cpu_capabilities ptr_auth_hwcap_gen_matches[] = {
2779
2779
#endif
2780
2780
2781
2781
static const struct arm64_cpu_capabilities arm64_elf_hwcaps [] = {
2782
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_HWCAP , KERNEL_HWCAP_PMULL ),
2783
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_AES ),
2784
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA1_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_SHA1 ),
2785
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA2_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_SHA2 ),
2786
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA2_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_HWCAP , KERNEL_HWCAP_SHA512 ),
2787
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_CRC32_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_CRC32 ),
2788
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_ATOMIC_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_HWCAP , KERNEL_HWCAP_ATOMICS ),
2789
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_RDM_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_ASIMDRDM ),
2790
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA3_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_SHA3 ),
2791
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SM3_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_SM3 ),
2792
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SM4_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_SM4 ),
2793
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_DP_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_ASIMDDP ),
2794
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_FHM_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_ASIMDFHM ),
2795
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_TS_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_FLAGM ),
2796
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_TS_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_HWCAP , KERNEL_HWCAP_FLAGM2 ),
2797
- HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_RNDR_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_RNG ),
2798
- HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_FP_SHIFT , 4 , FTR_SIGNED , 0 , CAP_HWCAP , KERNEL_HWCAP_FP ),
2799
- HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_FP_SHIFT , 4 , FTR_SIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_FPHP ),
2800
- HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_AdvSIMD_SHIFT , 4 , FTR_SIGNED , 0 , CAP_HWCAP , KERNEL_HWCAP_ASIMD ),
2801
- HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_AdvSIMD_SHIFT , 4 , FTR_SIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_ASIMDHP ),
2802
- HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_DIT_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_DIT ),
2803
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_DPB_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_DCPOP ),
2804
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_DPB_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_HWCAP , KERNEL_HWCAP_DCPODP ),
2805
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_JSCVT_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_JSCVT ),
2806
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_FCMA_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_FCMA ),
2807
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_LRCPC_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_LRCPC ),
2808
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_LRCPC_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_HWCAP , KERNEL_HWCAP_ILRCPC ),
2809
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_FRINTTS_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_FRINT ),
2810
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_SB_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_SB ),
2811
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_BF16_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_BF16 ),
2812
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_BF16_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_HWCAP , KERNEL_HWCAP_EBF16 ),
2813
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_DGH_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_DGH ),
2814
- HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_I8MM_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_I8MM ),
2815
- HWCAP_CAP (SYS_ID_AA64MMFR2_EL1 , ID_AA64MMFR2_EL1_AT_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_USCAT ),
2782
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_AES_PMULL , CAP_HWCAP , KERNEL_HWCAP_PMULL ),
2783
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_AES_AES , CAP_HWCAP , KERNEL_HWCAP_AES ),
2784
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA1_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_SHA1_IMP , CAP_HWCAP , KERNEL_HWCAP_SHA1 ),
2785
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA2_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_SHA2_SHA256 , CAP_HWCAP , KERNEL_HWCAP_SHA2 ),
2786
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA2_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_SHA2_SHA512 , CAP_HWCAP , KERNEL_HWCAP_SHA512 ),
2787
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_CRC32_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_CRC32_IMP , CAP_HWCAP , KERNEL_HWCAP_CRC32 ),
2788
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_ATOMIC_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_ATOMIC_IMP , CAP_HWCAP , KERNEL_HWCAP_ATOMICS ),
2789
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_RDM_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_RDM_IMP , CAP_HWCAP , KERNEL_HWCAP_ASIMDRDM ),
2790
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SHA3_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_SHA3_IMP , CAP_HWCAP , KERNEL_HWCAP_SHA3 ),
2791
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SM3_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_SM3_IMP , CAP_HWCAP , KERNEL_HWCAP_SM3 ),
2792
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_SM4_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_SM4_IMP , CAP_HWCAP , KERNEL_HWCAP_SM4 ),
2793
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_DP_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_DP_IMP , CAP_HWCAP , KERNEL_HWCAP_ASIMDDP ),
2794
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_FHM_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_FHM_IMP , CAP_HWCAP , KERNEL_HWCAP_ASIMDFHM ),
2795
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_TS_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_TS_FLAGM , CAP_HWCAP , KERNEL_HWCAP_FLAGM ),
2796
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_TS_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_TS_FLAGM2 , CAP_HWCAP , KERNEL_HWCAP_FLAGM2 ),
2797
+ HWCAP_CAP (SYS_ID_AA64ISAR0_EL1 , ID_AA64ISAR0_EL1_RNDR_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR0_EL1_RNDR_IMP , CAP_HWCAP , KERNEL_HWCAP_RNG ),
2798
+ HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_FP_SHIFT , 4 , FTR_SIGNED , ID_AA64PFR0_EL1_FP_IMP , CAP_HWCAP , KERNEL_HWCAP_FP ),
2799
+ HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_FP_SHIFT , 4 , FTR_SIGNED , ID_AA64PFR0_EL1_FP_FP16 , CAP_HWCAP , KERNEL_HWCAP_FPHP ),
2800
+ HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_AdvSIMD_SHIFT , 4 , FTR_SIGNED , ID_AA64PFR0_EL1_AdvSIMD_IMP , CAP_HWCAP , KERNEL_HWCAP_ASIMD ),
2801
+ HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_AdvSIMD_SHIFT , 4 , FTR_SIGNED , ID_AA64PFR0_EL1_AdvSIMD_FP16 , CAP_HWCAP , KERNEL_HWCAP_ASIMDHP ),
2802
+ HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_DIT_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR0_EL1_DIT_IMP , CAP_HWCAP , KERNEL_HWCAP_DIT ),
2803
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_DPB_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_DPB_IMP , CAP_HWCAP , KERNEL_HWCAP_DCPOP ),
2804
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_DPB_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_DPB_DPB2 , CAP_HWCAP , KERNEL_HWCAP_DCPODP ),
2805
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_JSCVT_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_JSCVT_IMP , CAP_HWCAP , KERNEL_HWCAP_JSCVT ),
2806
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_FCMA_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_FCMA_IMP , CAP_HWCAP , KERNEL_HWCAP_FCMA ),
2807
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_LRCPC_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_LRCPC_IMP , CAP_HWCAP , KERNEL_HWCAP_LRCPC ),
2808
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_LRCPC_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_LRCPC_LRCPC2 , CAP_HWCAP , KERNEL_HWCAP_ILRCPC ),
2809
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_FRINTTS_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_FRINTTS_IMP , CAP_HWCAP , KERNEL_HWCAP_FRINT ),
2810
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_SB_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_SB_IMP , CAP_HWCAP , KERNEL_HWCAP_SB ),
2811
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_BF16_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_BF16_IMP , CAP_HWCAP , KERNEL_HWCAP_BF16 ),
2812
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_BF16_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_BF16_EBF16 , CAP_HWCAP , KERNEL_HWCAP_EBF16 ),
2813
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_DGH_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_DGH_IMP , CAP_HWCAP , KERNEL_HWCAP_DGH ),
2814
+ HWCAP_CAP (SYS_ID_AA64ISAR1_EL1 , ID_AA64ISAR1_EL1_I8MM_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR1_EL1_I8MM_IMP , CAP_HWCAP , KERNEL_HWCAP_I8MM ),
2815
+ HWCAP_CAP (SYS_ID_AA64MMFR2_EL1 , ID_AA64MMFR2_EL1_AT_SHIFT , 4 , FTR_UNSIGNED , ID_AA64MMFR2_EL1_AT_IMP , CAP_HWCAP , KERNEL_HWCAP_USCAT ),
2816
2816
#ifdef CONFIG_ARM64_SVE
2817
2817
HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_SVE_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR0_EL1_SVE_IMP , CAP_HWCAP , KERNEL_HWCAP_SVE ),
2818
2818
HWCAP_CAP (SYS_ID_AA64ZFR0_EL1 , ID_AA64ZFR0_EL1_SVEver_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ZFR0_EL1_SVEver_SVE2p1 , CAP_HWCAP , KERNEL_HWCAP_SVE2P1 ),
@@ -2840,11 +2840,11 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = {
2840
2840
HWCAP_CAP (SYS_ID_AA64PFR1_EL1 , ID_AA64PFR1_EL1_MTE_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR1_EL1_MTE_MTE2 , CAP_HWCAP , KERNEL_HWCAP_MTE ),
2841
2841
HWCAP_CAP (SYS_ID_AA64PFR1_EL1 , ID_AA64PFR1_EL1_MTE_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR1_EL1_MTE_MTE3 , CAP_HWCAP , KERNEL_HWCAP_MTE3 ),
2842
2842
#endif /* CONFIG_ARM64_MTE */
2843
- HWCAP_CAP (SYS_ID_AA64MMFR0_EL1 , ID_AA64MMFR0_EL1_ECV_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_ECV ),
2844
- HWCAP_CAP (SYS_ID_AA64MMFR1_EL1 , ID_AA64MMFR1_EL1_AFP_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_AFP ),
2843
+ HWCAP_CAP (SYS_ID_AA64MMFR0_EL1 , ID_AA64MMFR0_EL1_ECV_SHIFT , 4 , FTR_UNSIGNED , ID_AA64MMFR0_EL1_ECV_IMP , CAP_HWCAP , KERNEL_HWCAP_ECV ),
2844
+ HWCAP_CAP (SYS_ID_AA64MMFR1_EL1 , ID_AA64MMFR1_EL1_AFP_SHIFT , 4 , FTR_UNSIGNED , ID_AA64MMFR1_EL1_AFP_IMP , CAP_HWCAP , KERNEL_HWCAP_AFP ),
2845
2845
HWCAP_CAP (SYS_ID_AA64ISAR2_EL1 , ID_AA64ISAR2_EL1_CSSC_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR2_EL1_CSSC_IMP , CAP_HWCAP , KERNEL_HWCAP_CSSC ),
2846
2846
HWCAP_CAP (SYS_ID_AA64ISAR2_EL1 , ID_AA64ISAR2_EL1_RPRFM_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR2_EL1_RPRFM_IMP , CAP_HWCAP , KERNEL_HWCAP_RPRFM ),
2847
- HWCAP_CAP (SYS_ID_AA64ISAR2_EL1 , ID_AA64ISAR2_EL1_RPRES_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_HWCAP , KERNEL_HWCAP_RPRES ),
2847
+ HWCAP_CAP (SYS_ID_AA64ISAR2_EL1 , ID_AA64ISAR2_EL1_RPRES_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR2_EL1_RPRES_IMP , CAP_HWCAP , KERNEL_HWCAP_RPRES ),
2848
2848
HWCAP_CAP (SYS_ID_AA64ISAR2_EL1 , ID_AA64ISAR2_EL1_WFxT_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR2_EL1_WFxT_IMP , CAP_HWCAP , KERNEL_HWCAP_WFXT ),
2849
2849
#ifdef CONFIG_ARM64_SME
2850
2850
HWCAP_CAP (SYS_ID_AA64PFR1_EL1 , ID_AA64PFR1_EL1_SME_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR1_EL1_SME_IMP , CAP_HWCAP , KERNEL_HWCAP_SME ),
@@ -2890,23 +2890,23 @@ static bool compat_has_neon(const struct arm64_cpu_capabilities *cap, int scope)
2890
2890
static const struct arm64_cpu_capabilities compat_elf_hwcaps [] = {
2891
2891
#ifdef CONFIG_COMPAT
2892
2892
HWCAP_CAP_MATCH (compat_has_neon , CAP_COMPAT_HWCAP , COMPAT_HWCAP_NEON ),
2893
- HWCAP_CAP (SYS_MVFR1_EL1 , MVFR1_EL1_SIMDFMAC_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_VFPv4 ),
2893
+ HWCAP_CAP (SYS_MVFR1_EL1 , MVFR1_EL1_SIMDFMAC_SHIFT , 4 , FTR_UNSIGNED , MVFR1_EL1_SIMDFMAC_IMP , CAP_COMPAT_HWCAP , COMPAT_HWCAP_VFPv4 ),
2894
2894
/* Arm v8 mandates MVFR0.FPDP == {0, 2}. So, piggy back on this for the presence of VFP support */
2895
- HWCAP_CAP (SYS_MVFR0_EL1 , MVFR0_EL1_FPDP_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_VFP ),
2896
- HWCAP_CAP (SYS_MVFR0_EL1 , MVFR0_EL1_FPDP_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_VFPv3 ),
2897
- HWCAP_CAP (SYS_MVFR1_EL1 , MVFR1_EL1_FPHP_SHIFT , 4 , FTR_UNSIGNED , 3 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_FPHP ),
2898
- HWCAP_CAP (SYS_MVFR1_EL1 , MVFR1_EL1_SIMDHP_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDHP ),
2899
- HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , 2 , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_PMULL ),
2900
- HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_AES ),
2901
- HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_SHA1_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SHA1 ),
2902
- HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_SHA2_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SHA2 ),
2903
- HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_CRC32_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_CRC32 ),
2904
- HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_DP_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDDP ),
2905
- HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_FHM_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDFHM ),
2906
- HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_SB_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SB ),
2907
- HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_BF16_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDBF16 ),
2908
- HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_I8MM_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_I8MM ),
2909
- HWCAP_CAP (SYS_ID_PFR2_EL1 , ID_PFR2_EL1_SSBS_SHIFT , 4 , FTR_UNSIGNED , 1 , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SSBS ),
2895
+ HWCAP_CAP (SYS_MVFR0_EL1 , MVFR0_EL1_FPDP_SHIFT , 4 , FTR_UNSIGNED , MVFR0_EL1_FPDP_VFPv3 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_VFP ),
2896
+ HWCAP_CAP (SYS_MVFR0_EL1 , MVFR0_EL1_FPDP_SHIFT , 4 , FTR_UNSIGNED , MVFR0_EL1_FPDP_VFPv3 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_VFPv3 ),
2897
+ HWCAP_CAP (SYS_MVFR1_EL1 , MVFR1_EL1_FPHP_SHIFT , 4 , FTR_UNSIGNED , MVFR1_EL1_FPHP_FP16 , CAP_COMPAT_HWCAP , COMPAT_HWCAP_FPHP ),
2898
+ HWCAP_CAP (SYS_MVFR1_EL1 , MVFR1_EL1_SIMDHP_SHIFT , 4 , FTR_UNSIGNED , MVFR1_EL1_SIMDHP_SIMDHP_FLOAT , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDHP ),
2899
+ HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR5_EL1_AES_VMULL , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_PMULL ),
2900
+ HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_AES_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR5_EL1_AES_IMP , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_AES ),
2901
+ HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_SHA1_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR5_EL1_SHA1_IMP , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SHA1 ),
2902
+ HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_SHA2_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR5_EL1_SHA2_IMP , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SHA2 ),
2903
+ HWCAP_CAP (SYS_ID_ISAR5_EL1 , ID_ISAR5_EL1_CRC32_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR5_EL1_CRC32_IMP , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_CRC32 ),
2904
+ HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_DP_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR6_EL1_DP_IMP , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDDP ),
2905
+ HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_FHM_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR6_EL1_FHM_IMP , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDFHM ),
2906
+ HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_SB_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR6_EL1_SB_IMP , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SB ),
2907
+ HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_BF16_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR6_EL1_BF16_IMP , CAP_COMPAT_HWCAP , COMPAT_HWCAP_ASIMDBF16 ),
2908
+ HWCAP_CAP (SYS_ID_ISAR6_EL1 , ID_ISAR6_EL1_I8MM_SHIFT , 4 , FTR_UNSIGNED , ID_ISAR6_EL1_I8MM_IMP , CAP_COMPAT_HWCAP , COMPAT_HWCAP_I8MM ),
2909
+ HWCAP_CAP (SYS_ID_PFR2_EL1 , ID_PFR2_EL1_SSBS_SHIFT , 4 , FTR_UNSIGNED , ID_PFR2_EL1_SSBS_IMP , CAP_COMPAT_HWCAP2 , COMPAT_HWCAP2_SSBS ),
2910
2910
#endif
2911
2911
{},
2912
2912
};
0 commit comments