diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2015-01-14 11:50:19 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2015-01-22 06:15:57 -0500 |
commit | f8b2dcbd9e6d1479b9b5a9e9e78bbaf783bde819 (patch) | |
tree | 0752b6462bcee89772569a8fff515863ecec6521 /arch/s390 | |
parent | e982506730815f9e3bcd148d06b5b6d778d9c46c (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/Kconfig | 18 | ||||
-rw-r--r-- | arch/s390/Makefile | 2 | ||||
-rw-r--r-- | arch/s390/kernel/head.S | 4 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 3 |
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 | ||
188 | config HAVE_MARCH_Z13_FEATURES | ||
189 | def_bool n | ||
190 | select HAVE_MARCH_ZEC12_FEATURES | ||
191 | |||
188 | choice | 192 | choice |
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 | ||
251 | config 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 | |||
247 | endchoice | 259 | endchoice |
248 | 260 | ||
249 | config MARCH_G5_TUNE | 261 | config MARCH_G5_TUNE |
@@ -267,6 +279,9 @@ config MARCH_Z196_TUNE | |||
267 | config MARCH_ZEC12_TUNE | 279 | config MARCH_ZEC12_TUNE |
268 | def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT | 280 | def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT |
269 | 281 | ||
282 | config MARCH_Z13_TUNE | ||
283 | def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT | ||
284 | |||
270 | choice | 285 | choice |
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 | |||
305 | config TUNE_ZEC12 | 320 | config TUNE_ZEC12 |
306 | bool "IBM zBC12 and zEC12" | 321 | bool "IBM zBC12 and zEC12" |
307 | 322 | ||
323 | config TUNE_Z13 | ||
324 | bool "IBM z13" | ||
325 | |||
308 | endchoice | 326 | endchoice |
309 | 327 | ||
310 | config 64BIT | 328 | config 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 | |||
42 | mflags-$(CONFIG_MARCH_Z10) := -march=z10 | 42 | mflags-$(CONFIG_MARCH_Z10) := -march=z10 |
43 | mflags-$(CONFIG_MARCH_Z196) := -march=z196 | 43 | mflags-$(CONFIG_MARCH_Z196) := -march=z196 |
44 | mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12 | 44 | mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12 |
45 | mflags-$(CONFIG_MARCH_Z13) := -march=z13 | ||
45 | 46 | ||
46 | aflags-y += $(mflags-y) | 47 | aflags-y += $(mflags-y) |
47 | cflags-y += $(mflags-y) | 48 | cflags-y += $(mflags-y) |
@@ -53,6 +54,7 @@ cflags-$(CONFIG_MARCH_Z9_109_TUNE) += -mtune=z9-109 | |||
53 | cflags-$(CONFIG_MARCH_Z10_TUNE) += -mtune=z10 | 54 | cflags-$(CONFIG_MARCH_Z10_TUNE) += -mtune=z10 |
54 | cflags-$(CONFIG_MARCH_Z196_TUNE) += -mtune=z196 | 55 | cflags-$(CONFIG_MARCH_Z196_TUNE) += -mtune=z196 |
55 | cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12 | 56 | cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mtune=zEC12 |
57 | cflags-$(CONFIG_MARCH_Z13_TUNE) += -mtune=z13 | ||
56 | 58 | ||
57 | #KBUILD_IMAGE is necessary for make rpm | 59 | #KBUILD_IMAGE is necessary for make rpm |
58 | KBUILD_IMAGE :=arch/s390/boot/image | 60 | KBUILD_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 | ||