@@ -2779,40 +2779,40 @@ static const struct arm64_cpu_capabilities ptr_auth_hwcap_gen_matches[] = {
27792779#endif
27802780
27812781static 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 ),
28162816#ifdef CONFIG_ARM64_SVE
28172817 HWCAP_CAP (SYS_ID_AA64PFR0_EL1 , ID_AA64PFR0_EL1_SVE_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR0_EL1_SVE_IMP , CAP_HWCAP , KERNEL_HWCAP_SVE ),
28182818 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[] = {
28402840 HWCAP_CAP (SYS_ID_AA64PFR1_EL1 , ID_AA64PFR1_EL1_MTE_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR1_EL1_MTE_MTE2 , CAP_HWCAP , KERNEL_HWCAP_MTE ),
28412841 HWCAP_CAP (SYS_ID_AA64PFR1_EL1 , ID_AA64PFR1_EL1_MTE_SHIFT , 4 , FTR_UNSIGNED , ID_AA64PFR1_EL1_MTE_MTE3 , CAP_HWCAP , KERNEL_HWCAP_MTE3 ),
28422842#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 ),
28452845 HWCAP_CAP (SYS_ID_AA64ISAR2_EL1 , ID_AA64ISAR2_EL1_CSSC_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR2_EL1_CSSC_IMP , CAP_HWCAP , KERNEL_HWCAP_CSSC ),
28462846 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 ),
28482848 HWCAP_CAP (SYS_ID_AA64ISAR2_EL1 , ID_AA64ISAR2_EL1_WFxT_SHIFT , 4 , FTR_UNSIGNED , ID_AA64ISAR2_EL1_WFxT_IMP , CAP_HWCAP , KERNEL_HWCAP_WFXT ),
28492849#ifdef CONFIG_ARM64_SME
28502850 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)
28902890static const struct arm64_cpu_capabilities compat_elf_hwcaps [] = {
28912891#ifdef CONFIG_COMPAT
28922892 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 ),
28942894 /* 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 ),
29102910#endif
29112911 {},
29122912};
0 commit comments