svn commit: r365304 - head/sys/arm64/include

Mitchell Horne mhorne at FreeBSD.org
Thu Sep 3 17:07:59 UTC 2020


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_ */


More information about the svn-src-all mailing list