aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2019-02-06 02:22:11 -0500
committerHeiko Carstens <heiko.carstens@de.ibm.com>2019-09-13 06:19:14 -0400
commita0e2251132995b962281aa80ab54a9288f9e0b6b (patch)
treebf23cbba43986c2be02acf7e3bd3152539231489
parent3c2eb6b76cabb7d90834798d6455f7f3431fc989 (diff)
s390: add support for IBM z15 machines
Add detection for machine types 0x8562 and 8x8561 and set the ELF platform name to z15. Add the miscellaneous-instruction-extension 3 facility to the list of facilities for z15. And allow to generate code that only runs on a z15 machine. Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r--arch/s390/Kconfig18
-rw-r--r--arch/s390/Makefile2
-rw-r--r--arch/s390/kernel/setup.c4
-rw-r--r--arch/s390/tools/gen_facilities.c3
4 files changed, 27 insertions, 0 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 3289cc243d92..8c5b05d91106 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -237,6 +237,10 @@ config HAVE_MARCH_Z14_FEATURES
237 def_bool n 237 def_bool n
238 select HAVE_MARCH_Z13_FEATURES 238 select HAVE_MARCH_Z13_FEATURES
239 239
240config HAVE_MARCH_Z15_FEATURES
241 def_bool n
242 select HAVE_MARCH_Z14_FEATURES
243
240choice 244choice
241 prompt "Processor type" 245 prompt "Processor type"
242 default MARCH_Z196 246 default MARCH_Z196
@@ -308,6 +312,14 @@ config MARCH_Z14
308 and 3906 series). The kernel will be slightly faster but will not 312 and 3906 series). The kernel will be slightly faster but will not
309 work on older machines. 313 work on older machines.
310 314
315config MARCH_Z15
316 bool "IBM z15"
317 select HAVE_MARCH_Z15_FEATURES
318 help
319 Select this to enable optimizations for IBM z15 (8562
320 and 8561 series). The kernel will be slightly faster but will not
321 work on older machines.
322
311endchoice 323endchoice
312 324
313config MARCH_Z900_TUNE 325config MARCH_Z900_TUNE
@@ -334,6 +346,9 @@ config MARCH_Z13_TUNE
334config MARCH_Z14_TUNE 346config MARCH_Z14_TUNE
335 def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT 347 def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
336 348
349config MARCH_Z15_TUNE
350 def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
351
337choice 352choice
338 prompt "Tune code generation" 353 prompt "Tune code generation"
339 default TUNE_DEFAULT 354 default TUNE_DEFAULT
@@ -378,6 +393,9 @@ config TUNE_Z13
378config TUNE_Z14 393config TUNE_Z14
379 bool "IBM z14" 394 bool "IBM z14"
380 395
396config TUNE_Z15
397 bool "IBM z15"
398
381endchoice 399endchoice
382 400
383config 64BIT 401config 64BIT
diff --git a/arch/s390/Makefile b/arch/s390/Makefile
index e0bab7ed4123..478b645b20dd 100644
--- a/arch/s390/Makefile
+++ b/arch/s390/Makefile
@@ -45,6 +45,7 @@ mflags-$(CONFIG_MARCH_Z196) := -march=z196
45mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12 45mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12
46mflags-$(CONFIG_MARCH_Z13) := -march=z13 46mflags-$(CONFIG_MARCH_Z13) := -march=z13
47mflags-$(CONFIG_MARCH_Z14) := -march=z14 47mflags-$(CONFIG_MARCH_Z14) := -march=z14
48mflags-$(CONFIG_MARCH_Z15) := -march=z15
48 49
49export CC_FLAGS_MARCH := $(mflags-y) 50export CC_FLAGS_MARCH := $(mflags-y)
50 51
@@ -59,6 +60,7 @@ cflags-$(CONFIG_MARCH_Z196_TUNE) += -mtune=z196
59cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12 60cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12
60cflags-$(CONFIG_MARCH_Z13_TUNE) += -mtune=z13 61cflags-$(CONFIG_MARCH_Z13_TUNE) += -mtune=z13
61cflags-$(CONFIG_MARCH_Z14_TUNE) += -mtune=z14 62cflags-$(CONFIG_MARCH_Z14_TUNE) += -mtune=z14
63cflags-$(CONFIG_MARCH_Z15_TUNE) += -mtune=z15
62 64
63cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include 65cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include
64 66
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 3e4b4a48a597..f63a9f378b37 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -981,6 +981,10 @@ static int __init setup_hwcaps(void)
981 case 0x3907: 981 case 0x3907:
982 strcpy(elf_platform, "z14"); 982 strcpy(elf_platform, "z14");
983 break; 983 break;
984 case 0x8561:
985 case 0x8562:
986 strcpy(elf_platform, "z15");
987 break;
984 } 988 }
985 989
986 /* 990 /*
diff --git a/arch/s390/tools/gen_facilities.c b/arch/s390/tools/gen_facilities.c
index cead9e0dcffb..61ce5b59b828 100644
--- a/arch/s390/tools/gen_facilities.c
+++ b/arch/s390/tools/gen_facilities.c
@@ -58,6 +58,9 @@ static struct facility_def facility_defs[] = {
58#ifdef CONFIG_HAVE_MARCH_Z14_FEATURES 58#ifdef CONFIG_HAVE_MARCH_Z14_FEATURES
59 58, /* miscellaneous-instruction-extension 2 */ 59 58, /* miscellaneous-instruction-extension 2 */
60#endif 60#endif
61#ifdef CONFIG_HAVE_MARCH_Z15_FEATURES
62 61, /* miscellaneous-instruction-extension 3 */
63#endif
61 -1 /* END */ 64 -1 /* END */
62 } 65 }
63 }, 66 },