Commit a8fd6168 authored by Martin Schwidefsky's avatar Martin Schwidefsky

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
...@@ -107,6 +107,10 @@ ...@@ -107,6 +107,10 @@
#define HWCAP_S390_VXRS_BCD 4096 #define HWCAP_S390_VXRS_BCD 4096
#define HWCAP_S390_VXRS_EXT 8192 #define HWCAP_S390_VXRS_EXT 8192
#define HWCAP_S390_GS 16384 #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 */ /* Internal bits, not exposed via elf */
#define HWCAP_INT_SIE 1UL #define HWCAP_INT_SIE 1UL
......
...@@ -109,7 +109,8 @@ static void show_cpu_summary(struct seq_file *m, void *v) ...@@ -109,7 +109,8 @@ static void show_cpu_summary(struct seq_file *m, void *v)
{ {
static const char *hwcap_str[] = { static const char *hwcap_str[] = {
"esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "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[] = { static const char * const int_hwcap_str[] = {
"sie" "sie"
......
...@@ -919,7 +919,15 @@ static int __init setup_hwcaps(void) ...@@ -919,7 +919,15 @@ static int __init setup_hwcaps(void)
elf_hwcap |= HWCAP_S390_VXRS_EXT; elf_hwcap |= HWCAP_S390_VXRS_EXT;
if (test_facility(135)) if (test_facility(135))
elf_hwcap |= HWCAP_S390_VXRS_BCD; 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. * Guarded storage support HWCAP_S390_GS is bit 12.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment