Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8fd6168 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390: report new CPU capabilities



Add hardware capability bits and features tags to /proc/cpuinfo
for 4 new CPU features:
  "Vector-Enhancements Facility 2" (tag "vxe2", hwcap 2^15)
  "Vector-Packed-Decimal-Enhancement Facility" (tag "vxp", hwcap 2^16)
  "Enhanced-Sort Facility" (tag "sort", hwcap 2^17)
  "Deflate-Conversion Facility" (tag "dflt", hwcap 2^18)

Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 769f020b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -107,6 +107,10 @@
#define HWCAP_S390_VXRS_BCD	4096
#define HWCAP_S390_VXRS_EXT	8192
#define HWCAP_S390_GS		16384
#define HWCAP_S390_VXRS_EXT2	32768
#define HWCAP_S390_VXRS_PDE	65536
#define HWCAP_S390_SORT		131072
#define HWCAP_S390_DFLT		262144

/* Internal bits, not exposed via elf */
#define HWCAP_INT_SIE		1UL
+2 −1
Original line number Diff line number Diff line
@@ -109,7 +109,8 @@ static void show_cpu_summary(struct seq_file *m, void *v)
{
	static const char *hwcap_str[] = {
		"esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp",
		"edat", "etf3eh", "highgprs", "te", "vx", "vxd", "vxe", "gs"
		"edat", "etf3eh", "highgprs", "te", "vx", "vxd", "vxe", "gs",
		"vxe2", "vxp", "sort", "dflt"
	};
	static const char * const int_hwcap_str[] = {
		"sie"
+8 −0
Original line number Diff line number Diff line
@@ -919,7 +919,15 @@ static int __init setup_hwcaps(void)
			elf_hwcap |= HWCAP_S390_VXRS_EXT;
		if (test_facility(135))
			elf_hwcap |= HWCAP_S390_VXRS_BCD;
		if (test_facility(148))
			elf_hwcap |= HWCAP_S390_VXRS_EXT2;
		if (test_facility(152))
			elf_hwcap |= HWCAP_S390_VXRS_PDE;
	}
	if (test_facility(150))
		elf_hwcap |= HWCAP_S390_SORT;
	if (test_facility(151))
		elf_hwcap |= HWCAP_S390_DFLT;

	/*
	 * Guarded storage support HWCAP_S390_GS is bit 12.