s390: add z13 code generation support
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 14 Jan 2015 16:50:19 +0000 (17:50 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 22 Jan 2015 11:15:57 +0000 (12:15 +0100)
Allow to generate code that only runs on z13 machines.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/Kconfig
arch/s390/Makefile
arch/s390/kernel/head.S
arch/s390/kernel/setup.c

index e79c3eab40b9e822ef2e511fa5abaaa1a076439b..06c6d9ab5a8da73c8ed08fbcf35843a743177299 100644 (file)
@@ -185,6 +185,10 @@ config HAVE_MARCH_ZEC12_FEATURES
        def_bool n
        select HAVE_MARCH_Z196_FEATURES
 
+config HAVE_MARCH_Z13_FEATURES
+       def_bool n
+       select HAVE_MARCH_ZEC12_FEATURES
+
 choice
        prompt "Processor type"
        default MARCH_G5
@@ -244,6 +248,14 @@ config MARCH_ZEC12
          2827 series). The kernel will be slightly faster but will not work on
          older machines.
 
+config MARCH_Z13
+       bool "IBM z13"
+       select HAVE_MARCH_Z13_FEATURES if 64BIT
+       help
+         Select this to enable optimizations for IBM z13 (2964 series).
+         The kernel will be slightly faster but will not work on older
+         machines.
+
 endchoice
 
 config MARCH_G5_TUNE
@@ -267,6 +279,9 @@ config MARCH_Z196_TUNE
 config MARCH_ZEC12_TUNE
        def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
 
+config MARCH_Z13_TUNE
+       def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
+
 choice
        prompt "Tune code generation"
        default TUNE_DEFAULT
@@ -305,6 +320,9 @@ config TUNE_Z196
 config TUNE_ZEC12
        bool "IBM zBC12 and zEC12"
 
+config TUNE_Z13
+       bool "IBM z13"
+
 endchoice
 
 config 64BIT
index 878e67973151b54c93c5eb078d53a4beef330f10..e742ec5de9a7e5217756151e6898e68179823edc 100644 (file)
@@ -42,6 +42,7 @@ mflags-$(CONFIG_MARCH_Z9_109) := -march=z9-109
 mflags-$(CONFIG_MARCH_Z10)    := -march=z10
 mflags-$(CONFIG_MARCH_Z196)   := -march=z196
 mflags-$(CONFIG_MARCH_ZEC12)  := -march=zEC12
+mflags-$(CONFIG_MARCH_Z13)   := -march=z13
 
 aflags-y += $(mflags-y)
 cflags-y += $(mflags-y)
@@ -53,6 +54,7 @@ cflags-$(CONFIG_MARCH_Z9_109_TUNE)    += -mtune=z9-109
 cflags-$(CONFIG_MARCH_Z10_TUNE)                += -mtune=z10
 cflags-$(CONFIG_MARCH_Z196_TUNE)       += -mtune=z196
 cflags-$(CONFIG_MARCH_ZEC12_TUNE)      += -mtune=zEC12
+cflags-$(CONFIG_MARCH_Z13_TUNE)        += -mtune=z13
 
 #KBUILD_IMAGE is necessary for make rpm
 KBUILD_IMAGE   :=arch/s390/boot/image
index d62eee11f0b54240339d898fbf95d4299c011545..132f4c9ade603002138b3075a8a7c16576b17fa2 100644 (file)
@@ -436,7 +436,9 @@ ENTRY(startup_kdump)
 # followed by the facility words.
 
 #if defined(CONFIG_64BIT)
-#if defined(CONFIG_MARCH_ZEC12)
+#if defined(CONFIG_MARCH_Z13)
+       .long 3, 0xc100eff2, 0xf46ce800, 0x00400000
+#elif defined(CONFIG_MARCH_ZEC12)
        .long 3, 0xc100eff2, 0xf46ce800, 0x00400000
 #elif defined(CONFIG_MARCH_Z196)
        .long 2, 0xc100eff2, 0xf46c0000
index 4e532c67832fddc904aa050f66370cec25c97a26..bfac77ada4f28137b5545d9268d37346eb3af0ff 100644 (file)
@@ -810,6 +810,9 @@ static void __init setup_hwcaps(void)
        case 0x2828:
                strcpy(elf_platform, "zEC12");
                break;
+       case 0x2964:
+               strcpy(elf_platform, "z13");
+               break;
        }
 }