Author: mhorne
Date: Thu Sep  3 17:07:58 2020
New Revision: 365304
URL: https://svnweb.freebsd.org/changeset/base/365304

Log:
  arm64: update the set of HWCAP definitions
  
  This is in sync with what is defined for Linux 5.8. Note that all bits
  in HWCAP are exhausted, and HWCAP2 has been added.
  
  This also revealed an error in some of the existing definitions. We are
  missing HWCAP_ASIMDHP, and as a result a portion of the HWCAP values are
  shifted right by one bit. This will be fixed in an upcoming change, but
  the values being added now are compatible with what Linux defines.
  
  Reviewed by:  emaste, markj, manu
  MFC after:    1 week
  Sponsored by: The FreeBSD Foundation
  Differential Revision:        https://reviews.freebsd.org/D26030

Modified:
  head/sys/arm64/include/elf.h

Modified: head/sys/arm64/include/elf.h
==============================================================================
--- head/sys/arm64/include/elf.h        Thu Sep  3 15:57:37 2020        
(r365303)
+++ head/sys/arm64/include/elf.h        Thu Sep  3 17:07:58 2020        
(r365304)
@@ -92,33 +92,58 @@ __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
+/* XXX: The following bits don't match the Linux definitions */
+#define        HWCAP_CPUID             0x00000400
+#define        HWCAP_ASIMDRDM          0x00000800
+#define        HWCAP_JSCVT             0x00001000
+#define        HWCAP_FCMA              0x00002000
+#define        HWCAP_LRCPC             0x00004000
+#define        HWCAP_DCPOP             0x00008000
+#define        HWCAP_SHA3              0x00010000
+#define        HWCAP_SM3               0x00020000
+#define        HWCAP_SM4               0x00040000
+#define        HWCAP_ASIMDDP           0x00080000
+#define        HWCAP_SHA512            0x00100000
+#define        HWCAP_SVE               0x00200000
+#define        HWCAP_ASIMDFHM          0x00400000
+#define        HWCAP_DIT               0x00800000
+#define        HWCAP_USCAT             0x01000000
+#define        HWCAP_ILRCPC            0x02000000
+#define        HWCAP_FLAGM             0x04000000
+/* XXX: end of incorrect definitions */
+#define        HWCAP_SSBS              0x10000000
+#define        HWCAP_SB                0x20000000
+#define        HWCAP_PACA              0x40000000
+#define        HWCAP_PACG              0x80000000
 
-#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_CPUID     0x00000400
-#define        HWCAP_ASIMDRDM  0x00000800
-#define        HWCAP_JSCVT     0x00001000
-#define        HWCAP_FCMA      0x00002000
-#define        HWCAP_LRCPC     0x00004000
-#define        HWCAP_DCPOP     0x00008000
-#define        HWCAP_SHA3      0x00010000
-#define        HWCAP_SM3       0x00020000
-#define        HWCAP_SM4       0x00040000
-#define        HWCAP_ASIMDDP   0x00080000
-#define        HWCAP_SHA512    0x00100000
-#define        HWCAP_SVE       0x00200000
-#define        HWCAP_ASIMDFHM  0x00400000
-#define        HWCAP_DIT       0x00800000
-#define        HWCAP_USCAT     0x01000000
-#define        HWCAP_ILRCPC    0x02000000
-#define        HWCAP_FLAGM     0x04000000
+/* HWCAP2 */
+#define        HWCAP2_DCPODP           0x00000001
+#define        HWCAP2_SVE2             0x00000002
+#define        HWCAP2_SVEAES           0x00000004
+#define        HWCAP2_SVEPMULL         0x00000008
+#define        HWCAP2_SVEBITPERM       0x00000010
+#define        HWCAP2_SVESHA3          0x00000020
+#define        HWCAP2_SVESM4           0x00000040
+#define        HWCAP2_FLAGM2           0x00000080
+#define        HWCAP2_FRINT            0x00000100
+#define        HWCAP2_SVEI8MM          0x00000200
+#define        HWCAP2_SVEF32MM         0x00000400
+#define        HWCAP2_SVEF64MM         0x00000800
+#define        HWCAP2_SVEBF16          0x00001000
+#define        HWCAP2_I8MM             0x00002000
+#define        HWCAP2_BF16             0x00004000
+#define        HWCAP2_DGH              0x00008000
+#define        HWCAP2_RNG              0x00010000
+#define        HWCAP2_BTI              0x00020000
 
 #endif /* !_MACHINE_ELF_H_ */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to