aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2015-01-14 11:50:19 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-01-22 06:15:57 -0500
commitf8b2dcbd9e6d1479b9b5a9e9e78bbaf783bde819 (patch)
tree0752b6462bcee89772569a8fff515863ecec6521 /arch/s390
parente982506730815f9e3bcd148d06b5b6d778d9c46c (diff)
s390: add z13 code generation support
Allow to generate code that only runs on z13 machines. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/Kconfig18
-rw-r--r--arch/s390/Makefile2
-rw-r--r--arch/s390/kernel/head.S4
-rw-r--r--arch/s390/kernel/setup.c3
4 files changed, 26 insertions, 1 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index e79c3eab40b9..06c6d9ab5a8d 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -185,6 +185,10 @@ config HAVE_MARCH_ZEC12_FEATURES
185 def_bool n 185 def_bool n
186 select HAVE_MARCH_Z196_FEATURES 186 select HAVE_MARCH_Z196_FEATURES
187 187
188config HAVE_MARCH_Z13_FEATURES
189 def_bool n
190 select HAVE_MARCH_ZEC12_FEATURES
191
188choice 192choice
189 prompt "Processor type" 193 prompt "Processor type"
190 default MARCH_G5 194 default MARCH_G5
@@ -244,6 +248,14 @@ config MARCH_ZEC12
244 2827 series). The kernel will be slightly faster but will not work on 248 2827 series). The kernel will be slightly faster but will not work on
245 older machines. 249 older machines.
246 250
251config MARCH_Z13
252 bool "IBM z13"
253 select HAVE_MARCH_Z13_FEATURES if 64BIT
254 help
255 Select this to enable optimizations for IBM z13 (2964 series).
256 The kernel will be slightly faster but will not work on older
257 machines.
258
247endchoice 259endchoice
248 260
249config MARCH_G5_TUNE 261config MARCH_G5_TUNE
@@ -267,6 +279,9 @@ config MARCH_Z196_TUNE
267config MARCH_ZEC12_TUNE 279config MARCH_ZEC12_TUNE
268 def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT 280 def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
269 281
282config MARCH_Z13_TUNE
283 def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
284
270choice 285choice
271 prompt "Tune code generation" 286 prompt "Tune code generation"
272 default TUNE_DEFAULT 287 default TUNE_DEFAULT
@@ -305,6 +320,9 @@ config TUNE_Z196
305config TUNE_ZEC12 320config TUNE_ZEC12
306 bool "IBM zBC12 and zEC12" 321 bool "IBM zBC12 and zEC12"
307 322
323config TUNE_Z13
324 bool "IBM z13"
325
308endchoice 326endchoice
309 327
310config 64BIT 328config 64BIT
diff --git a/arch/s390/Makefile b/arch/s390/Makefile
index 878e67973151..e742ec5de9a7 100644
--- a/arch/s390/Makefile
+++ b/arch/s390/Makefile
@@ -42,6 +42,7 @@ mflags-$(CONFIG_MARCH_Z9_109) := -march=z9-109
42mflags-$(CONFIG_MARCH_Z10) := -march=z10 42mflags-$(CONFIG_MARCH_Z10) := -march=z10
43mflags-$(CONFIG_MARCH_Z196) := -march=z196 43mflags-$(CONFIG_MARCH_Z196) := -march=z196
44mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12 44mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12
45mflags-$(CONFIG_MARCH_Z13) := -march=z13
45 46
46aflags-y += $(mflags-y) 47aflags-y += $(mflags-y)
47cflags-y += $(mflags-y) 48cflags-y += $(mflags-y)
@@ -53,6 +54,7 @@ cflags-$(CONFIG_MARCH_Z9_109_TUNE) += -mtune=z9-109
53cflags-$(CONFIG_MARCH_Z10_TUNE) += -mtune=z10 54cflags-$(CONFIG_MARCH_Z10_TUNE) += -mtune=z10
54cflags-$(CONFIG_MARCH_Z196_TUNE) += -mtune=z196 55cflags-$(CONFIG_MARCH_Z196_TUNE) += -mtune=z196
55cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12 56cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12
57cflags-$(CONFIG_MARCH_Z13_TUNE) += -mtune=z13
56 58
57#KBUILD_IMAGE is necessary for make rpm 59#KBUILD_IMAGE is necessary for make rpm
58KBUILD_IMAGE :=arch/s390/boot/image 60KBUILD_IMAGE :=arch/s390/boot/image
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index d62eee11f0b5..132f4c9ade60 100644
--- a/arch/s390/kernel/head.S
+++ b/arch/s390/kernel/head.S
@@ -436,7 +436,9 @@ ENTRY(startup_kdump)
436# followed by the facility words. 436# followed by the facility words.
437 437
438#if defined(CONFIG_64BIT) 438#if defined(CONFIG_64BIT)
439#if defined(CONFIG_MARCH_ZEC12) 439#if defined(CONFIG_MARCH_Z13)
440 .long 3, 0xc100eff2, 0xf46ce800, 0x00400000
441#elif defined(CONFIG_MARCH_ZEC12)
440 .long 3, 0xc100eff2, 0xf46ce800, 0x00400000 442 .long 3, 0xc100eff2, 0xf46ce800, 0x00400000
441#elif defined(CONFIG_MARCH_Z196) 443#elif defined(CONFIG_MARCH_Z196)
442 .long 2, 0xc100eff2, 0xf46c0000 444 .long 2, 0xc100eff2, 0xf46c0000
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 4e532c67832f..bfac77ada4f2 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -810,6 +810,9 @@ static void __init setup_hwcaps(void)
810 case 0x2828: 810 case 0x2828:
811 strcpy(elf_platform, "zEC12"); 811 strcpy(elf_platform, "zEC12");
812 break; 812 break;
813 case 0x2964:
814 strcpy(elf_platform, "z13");
815 break;
813 } 816 }
814} 817}
815 818