Download raw body.
arm64: Add more HWCAP values
ping. On 2026-05-03 12:09 a.m., Brad Smith wrote: > More HWCAP values from Linux via FreeBSD. > > - arm64: add missing HWCAP and HWCAP2 values > > Update the HWCAP and HWCAP2 values to align with Linux v6.13 > > 94686b081fdb0c1bb0fc1dfeda14bd53f26ce7c5 > > - arm64: Add more HWCAP values > > 3a960425df759a7bb8f946d23f035c63f3a5de7a > > > Index: include/elf.h > =================================================================== > RCS file: /cvs/src/sys/arch/arm64/include/elf.h,v > retrieving revision 1.1 > diff -u -p -u -p -r1.1 elf.h > --- include/elf.h 14 Jul 2024 09:48:48 -0000 1.1 > +++ include/elf.h 27 Feb 2026 06:13:44 -0000 > @@ -38,84 +38,119 @@ extern unsigned long hwcap, hwcap2; > #endif /* _KERNEL */ > > /* HWCAP */ > -#define HWCAP_FP 0x00000001 > -#define HWCAP_ASIMD 0x00000002 > -#define HWCAP_EVTSTRM 0x00000004 > -#define HWCAP_AES 0x00000008 > -#define HWCAP_PMULL 0x00000010 > -#define HWCAP_SHA1 0x00000020 > -#define HWCAP_SHA2 0x00000040 > -#define HWCAP_CRC32 0x00000080 > -#define HWCAP_ATOMICS 0x00000100 > -#define HWCAP_FPHP 0x00000200 > -#define HWCAP_ASIMDHP 0x00000400 > -#define HWCAP_CPUID 0x00000800 > -#define HWCAP_ASIMDRDM 0x00001000 > -#define HWCAP_JSCVT 0x00002000 > -#define HWCAP_FCMA 0x00004000 > -#define HWCAP_LRCPC 0x00008000 > -#define HWCAP_DCPOP 0x00010000 > -#define HWCAP_SHA3 0x00020000 > -#define HWCAP_SM3 0x00040000 > -#define HWCAP_SM4 0x00080000 > -#define HWCAP_ASIMDDP 0x00100000 > -#define HWCAP_SHA512 0x00200000 > -#define HWCAP_SVE 0x00400000 > -#define HWCAP_ASIMDFHM 0x00800000 > -#define HWCAP_DIT 0x01000000 > -#define HWCAP_USCAT 0x02000000 > -#define HWCAP_ILRCPC 0x04000000 > -#define HWCAP_FLAGM 0x08000000 > -#define HWCAP_SSBS 0x10000000 > -#define HWCAP_SB 0x20000000 > -#define HWCAP_PACA 0x40000000 > -#define HWCAP_PACG 0x80000000 > +#define HWCAP_FP (1 << 0) > +#define HWCAP_ASIMD (1 << 1) > +#define HWCAP_EVTSTRM (1 << 2) > +#define HWCAP_AES (1 << 3) > +#define HWCAP_PMULL (1 << 4) > +#define HWCAP_SHA1 (1 << 5) > +#define HWCAP_SHA2 (1 << 6) > +#define HWCAP_CRC32 (1 << 7) > +#define HWCAP_ATOMICS (1 << 8) > +#define HWCAP_FPHP (1 << 9) > +#define HWCAP_ASIMDHP (1 << 10) > +#define HWCAP_CPUID (1 << 11) > +#define HWCAP_ASIMDRDM (1 << 12) > +#define HWCAP_JSCVT (1 << 13) > +#define HWCAP_FCMA (1 << 14) > +#define HWCAP_LRCPC (1 << 15) > +#define HWCAP_DCPOP (1 << 16) > +#define HWCAP_SHA3 (1 << 17) > +#define HWCAP_SM3 (1 << 18) > +#define HWCAP_SM4 (1 << 19) > +#define HWCAP_ASIMDDP (1 << 20) > +#define HWCAP_SHA512 (1 << 21) > +#define HWCAP_SVE (1 << 22) > +#define HWCAP_ASIMDFHM (1 << 23) > +#define HWCAP_DIT (1 << 24) > +#define HWCAP_USCAT (1 << 25) > +#define HWCAP_ILRCPC (1 << 26) > +#define HWCAP_FLAGM (1 << 27) > +#define HWCAP_SSBS (1 << 28) > +#define HWCAP_SB (1 << 29) > +#define HWCAP_PACA (1 << 30) > +#define HWCAP_PACG (1UL << 31) > +#define HWCAP_GCS (1UL << 32) > +#define HWCAP_CMPBR (1UL << 33) > +#define HWCAP_FPRCVT (1UL << 34) > +#define HWCAP_F8MM8 (1UL << 35) > +#define HWCAP_F8MM4 (1UL << 36) > +#define HWCAP_SVE_F16MM (1UL << 37) > +#define HWCAP_SVE_ELTPERM (1UL << 38) > +#define HWCAP_SVE_AES2 (1UL << 39) > +#define HWCAP_SVE_BFSCALE (1UL << 40) > +#define HWCAP_SVE2P2 (1UL << 41) > +#define HWCAP_SME2P2 (1UL << 42) > +#define HWCAP_SME_SBITPERM (1UL << 43) > +#define HWCAP_SME_AES (1UL << 44) > +#define HWCAP_SME_SFEXPA (1UL << 45) > +#define HWCAP_SME_STMOP (1UL << 46) > +#define HWCAP_SME_SMOP4 (1UL << 47) > > /* HWCAP2 */ > -#define HWCAP2_DCPODP 0x0000000000000001ul > -#define HWCAP2_SVE2 0x0000000000000002ul > -#define HWCAP2_SVEAES 0x0000000000000004ul > -#define HWCAP2_SVEPMULL 0x0000000000000008ul > -#define HWCAP2_SVEBITPERM 0x0000000000000010ul > -#define HWCAP2_SVESHA3 0x0000000000000020ul > -#define HWCAP2_SVESM4 0x0000000000000040ul > -#define HWCAP2_FLAGM2 0x0000000000000080ul > -#define HWCAP2_FRINT 0x0000000000000100ul > -#define HWCAP2_SVEI8MM 0x0000000000000200ul > -#define HWCAP2_SVEF32MM 0x0000000000000400ul > -#define HWCAP2_SVEF64MM 0x0000000000000800ul > -#define HWCAP2_SVEBF16 0x0000000000001000ul > -#define HWCAP2_I8MM 0x0000000000002000ul > -#define HWCAP2_BF16 0x0000000000004000ul > -#define HWCAP2_DGH 0x0000000000008000ul > -#define HWCAP2_RNG 0x0000000000010000ul > -#define HWCAP2_BTI 0x0000000000020000ul > -#define HWCAP2_MTE 0x0000000000040000ul > -#define HWCAP2_ECV 0x0000000000080000ul > -#define HWCAP2_AFP 0x0000000000100000ul > -#define HWCAP2_RPRES 0x0000000000200000ul > -#define HWCAP2_MTE3 0x0000000000400000ul > -#define HWCAP2_SME 0x0000000000800000ul > -#define HWCAP2_SME_I16I64 0x0000000001000000ul > -#define HWCAP2_SME_F64F64 0x0000000002000000ul > -#define HWCAP2_SME_I8I32 0x0000000004000000ul > -#define HWCAP2_SME_F16F32 0x0000000008000000ul > -#define HWCAP2_SME_B16F32 0x0000000010000000ul > -#define HWCAP2_SME_F32F32 0x0000000020000000ul > -#define HWCAP2_SME_FA64 0x0000000040000000ul > -#define HWCAP2_WFXT 0x0000000080000000ul > -#define HWCAP2_EBF16 0x0000000100000000ul > -#define HWCAP2_SVE_EBF16 0x0000000200000000ul > -#define HWCAP2_CSSC 0x0000000400000000ul > -#define HWCAP2_RPRFM 0x0000000800000000ul > -#define HWCAP2_SVE2P1 0x0000001000000000ul > -#define HWCAP2_SME2 0x0000002000000000ul > -#define HWCAP2_SME2P1 0x0000004000000000ul > -#define HWCAP2_SME_I16I32 0x0000008000000000ul > -#define HWCAP2_SME_BI32I32 0x0000010000000000ul > -#define HWCAP2_SME_B16B16 0x0000020000000000ul > -#define HWCAP2_SME_F16F16 0x0000040000000000ul > -#define HWCAP2_MOPS 0x0000080000000000ul > -#define HWCAP2_HBC 0x0000100000000000ul > +#define HWCAP2_DCPODP (1 << 0) > +#define HWCAP2_SVE2 (1 << 1) > +#define HWCAP2_SVEAES (1 << 2) > +#define HWCAP2_SVEPMULL (1 << 3) > +#define HWCAP2_SVEBITPERM (1 << 4) > +#define HWCAP2_SVESHA3 (1 << 5) > +#define HWCAP2_SVESM4 (1 << 6) > +#define HWCAP2_FLAGM2 (1 << 7) > +#define HWCAP2_FRINT (1 << 8) > +#define HWCAP2_SVEI8MM (1 << 9) > +#define HWCAP2_SVEF32MM (1 << 10) > +#define HWCAP2_SVEF64MM (1 << 11) > +#define HWCAP2_SVEBF16 (1 << 12) > +#define HWCAP2_I8MM (1 << 13) > +#define HWCAP2_BF16 (1 << 14) > +#define HWCAP2_DGH (1 << 15) > +#define HWCAP2_RNG (1 << 16) > +#define HWCAP2_BTI (1 << 17) > +#define HWCAP2_MTE (1 << 18) > +#define HWCAP2_ECV (1 << 19) > +#define HWCAP2_AFP (1 << 20) > +#define HWCAP2_RPRES (1 << 21) > +#define HWCAP2_MTE3 (1 << 22) > +#define HWCAP2_SME (1 << 23) > +#define HWCAP2_SME_I16I64 (1 << 24) > +#define HWCAP2_SME_F64F64 (1 << 25) > +#define HWCAP2_SME_I8I32 (1 << 26) > +#define HWCAP2_SME_F16F32 (1 << 27) > +#define HWCAP2_SME_B16F32 (1 << 28) > +#define HWCAP2_SME_F32F32 (1 << 29) > +#define HWCAP2_SME_FA64 (1 << 30) > +#define HWCAP2_WFXT (1UL << 31) > +#define HWCAP2_EBF16 (1UL << 32) > +#define HWCAP2_SVE_EBF16 (1UL << 33) > +#define HWCAP2_CSSC (1UL << 34) > +#define HWCAP2_RPRFM (1UL << 35) > +#define HWCAP2_SVE2P1 (1UL << 36) > +#define HWCAP2_SME2 (1UL << 37) > +#define HWCAP2_SME2P1 (1UL << 38) > +#define HWCAP2_SME_I16I32 (1UL << 39) > +#define HWCAP2_SME_BI32I32 (1UL << 40) > +#define HWCAP2_SME_B16B16 (1UL << 41) > +#define HWCAP2_SME_F16F16 (1UL << 42) > +#define HWCAP2_MOPS (1UL << 43) > +#define HWCAP2_HBC (1UL << 44) > +#define HWCAP2_SVE_B16B16 (1UL << 45) > +#define HWCAP2_LRCPC3 (1UL << 46) > +#define HWCAP2_LSE128 (1UL << 47) > +#define HWCAP2_FPMR (1UL << 48) > +#define HWCAP2_LUT (1UL << 49) > +#define HWCAP2_FAMINMAX (1UL << 50) > +#define HWCAP2_F8CVT (1UL << 51) > +#define HWCAP2_F8FMA (1UL << 52) > +#define HWCAP2_F8DP4 (1UL << 53) > +#define HWCAP2_F8DP2 (1UL << 54) > +#define HWCAP2_F8E4M3 (1UL << 55) > +#define HWCAP2_F8E5M2 (1UL << 56) > +#define HWCAP2_SME_LUTV2 (1UL << 57) > +#define HWCAP2_SME_F8F16 (1UL << 58) > +#define HWCAP2_SME_F8F32 (1UL << 59) > +#define HWCAP2_SME_SF8FMA (1UL << 60) > +#define HWCAP2_SME_SF8DP4 (1UL << 61) > +#define HWCAP2_SME_SF8DP2 (1UL << 62) > +#define HWCAP2_POE (1UL << 63) > > #endif /* !_MACHINE_ELF_H_ */
arm64: Add more HWCAP values