The branch main has been updated by andrew:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=94686b081fdb0c1bb0fc1dfeda14bd53f26ce7c5

commit 94686b081fdb0c1bb0fc1dfeda14bd53f26ce7c5
Author:     Harry Moulton <harry.moul...@arm.com>
AuthorDate: 2025-02-17 16:00:03 +0000
Commit:     Andrew Turner <and...@freebsd.org>
CommitDate: 2025-02-17 16:07:35 +0000

    arm64: add missing HWCAP and HWCAP2 values
    
    Update the HWCAP and HWCAP2 values to align with Linux v6.13
    
    Reviewed by:    andrew
    Sponsored by:   Arm Ltd
    Differential Revision:  https://reviews.freebsd.org/D48814
    Signed-off-by: Harry Moulton <harry.moul...@arm.com>
---
 sys/arm64/include/elf.h | 174 +++++++++++++++++++++++++++---------------------
 1 file changed, 97 insertions(+), 77 deletions(-)

diff --git a/sys/arm64/include/elf.h b/sys/arm64/include/elf.h
index 9f9cd44ac9f7..d6328c143585 100644
--- a/sys/arm64/include/elf.h
+++ b/sys/arm64/include/elf.h
@@ -94,90 +94,110 @@ __ElfType(Auxinfo);
 #endif
 
 /* 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_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)
 /*
  * XXX: The following bits (from CPUID to FLAGM) were originally incorrect,
  * but later changed to match the Linux definitions. No compatibility code is
  * provided, as the fix was expected to result in near-zero fallout.
  */
-#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_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)
 
 /* 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)
 
 #ifdef COMPAT_FREEBSD32
 /* ARM HWCAP */

Reply via email to