diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2019-02-06 02:22:11 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2019-09-13 06:19:14 -0400 |
commit | a0e2251132995b962281aa80ab54a9288f9e0b6b (patch) | |
tree | bf23cbba43986c2be02acf7e3bd3152539231489 | |
parent | 3c2eb6b76cabb7d90834798d6455f7f3431fc989 (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/Kconfig | 18 | ||||
-rw-r--r-- | arch/s390/Makefile | 2 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 4 | ||||
-rw-r--r-- | arch/s390/tools/gen_facilities.c | 3 |
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 | ||
240 | config HAVE_MARCH_Z15_FEATURES | ||
241 | def_bool n | ||
242 | select HAVE_MARCH_Z14_FEATURES | ||
243 | |||
240 | choice | 244 | choice |
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 | ||
315 | config 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 | |||
311 | endchoice | 323 | endchoice |
312 | 324 | ||
313 | config MARCH_Z900_TUNE | 325 | config MARCH_Z900_TUNE |
@@ -334,6 +346,9 @@ config MARCH_Z13_TUNE | |||
334 | config MARCH_Z14_TUNE | 346 | config MARCH_Z14_TUNE |
335 | def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT | 347 | def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT |
336 | 348 | ||
349 | config MARCH_Z15_TUNE | ||
350 | def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT | ||
351 | |||
337 | choice | 352 | choice |
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 | |||
378 | config TUNE_Z14 | 393 | config TUNE_Z14 |
379 | bool "IBM z14" | 394 | bool "IBM z14" |
380 | 395 | ||
396 | config TUNE_Z15 | ||
397 | bool "IBM z15" | ||
398 | |||
381 | endchoice | 399 | endchoice |
382 | 400 | ||
383 | config 64BIT | 401 | config 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 | |||
45 | mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12 | 45 | mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12 |
46 | mflags-$(CONFIG_MARCH_Z13) := -march=z13 | 46 | mflags-$(CONFIG_MARCH_Z13) := -march=z13 |
47 | mflags-$(CONFIG_MARCH_Z14) := -march=z14 | 47 | mflags-$(CONFIG_MARCH_Z14) := -march=z14 |
48 | mflags-$(CONFIG_MARCH_Z15) := -march=z15 | ||
48 | 49 | ||
49 | export CC_FLAGS_MARCH := $(mflags-y) | 50 | export CC_FLAGS_MARCH := $(mflags-y) |
50 | 51 | ||
@@ -59,6 +60,7 @@ cflags-$(CONFIG_MARCH_Z196_TUNE) += -mtune=z196 | |||
59 | cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12 | 60 | cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12 |
60 | cflags-$(CONFIG_MARCH_Z13_TUNE) += -mtune=z13 | 61 | cflags-$(CONFIG_MARCH_Z13_TUNE) += -mtune=z13 |
61 | cflags-$(CONFIG_MARCH_Z14_TUNE) += -mtune=z14 | 62 | cflags-$(CONFIG_MARCH_Z14_TUNE) += -mtune=z14 |
63 | cflags-$(CONFIG_MARCH_Z15_TUNE) += -mtune=z15 | ||
62 | 64 | ||
63 | cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include | 65 | cflags-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 | }, |