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

Commit 2583b848 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390: report new vector facilities



Add hardware capability bits and feature tags to /proc/cpuinfo for
the "Vector Packed Decimal Facility" (tag "vxd" / hwcap bit 2^12)
and the "Vector Enhancements Facility 1" (tag "vxe" / hwcap bit 2^13).

Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 4920e3cf
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@
#define HWCAP_S390_HIGH_GPRS	512
#define HWCAP_S390_TE		1024
#define HWCAP_S390_VXRS		2048
#define HWCAP_S390_VXRS_BCD	4096
#define HWCAP_S390_VXRS_EXT	8192

/* Internal bits, not exposed via elf */
#define HWCAP_INT_SIE		1UL
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ 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"
		"edat", "etf3eh", "highgprs", "te", "vx", "vxd", "vxe"
	};
	static const char * const int_hwcap_str[] = {
		"sie"
+7 −1
Original line number Diff line number Diff line
@@ -769,8 +769,14 @@ static int __init setup_hwcaps(void)
	 * can be disabled with the "novx" parameter. Use MACHINE_HAS_VX
	 * instead of facility bit 129.
	 */
	if (MACHINE_HAS_VX)
	if (MACHINE_HAS_VX) {
		elf_hwcap |= HWCAP_S390_VXRS;
		if (test_facility(134))
			elf_hwcap |= HWCAP_S390_VXRS_EXT;
		if (test_facility(135))
			elf_hwcap |= HWCAP_S390_VXRS_BCD;
	}

	get_cpu_id(&cpu_id);
	add_device_randomness(&cpu_id, sizeof(cpu_id));
	switch (cpu_id.machine) {