[S390] Add config option for z196 code generation.
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 25 Oct 2010 14:10:17 +0000 (16:10 +0200)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Mon, 25 Oct 2010 14:10:15 +0000 (16:10 +0200)
Add a kernel config option for the IBM zEnterprise 196. This will
produce faster code on newer compilers using the -march=z196 option.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/Kconfig
arch/s390/Makefile
arch/s390/kernel/head.S

index 7afc173..21a7030 100644 (file)
@@ -287,6 +287,14 @@ config MARCH_Z10
          machines such as the z990, z890, z900, z800, z9-109, z9-ec
          and z9-bc.
 
+config MARCH_Z196
+       bool "IBM zEnterprise 196"
+       help
+         Select this to enable optimizations for IBM zEnterprise 196.
+         The kernel will be slightly faster but will not work on older
+         machines such as the z990, z890, z900, z800, z9-109, z9-ec,
+         z9-bc, z10-ec and z10-bc.
+
 endchoice
 
 config PACK_STACK
index 9d31847..d5b8a6a 100644 (file)
@@ -40,6 +40,7 @@ cflags-$(CONFIG_MARCH_Z900) += $(call cc-option,-march=z900)
 cflags-$(CONFIG_MARCH_Z990) += $(call cc-option,-march=z990)
 cflags-$(CONFIG_MARCH_Z9_109) += $(call cc-option,-march=z9-109)
 cflags-$(CONFIG_MARCH_Z10) += $(call cc-option,-march=z10)
+cflags-$(CONFIG_MARCH_Z196) += $(call cc-option,-march=z196)
 
 #KBUILD_IMAGE is necessary for make rpm
 KBUILD_IMAGE   :=arch/s390/boot/image
index db1696e..7061398 100644 (file)
@@ -488,7 +488,9 @@ startup:
        .align 16
 2:     .long   0x000a0000,0x8badcccc
 #if defined(CONFIG_64BIT)
-#if defined(CONFIG_MARCH_Z10)
+#if defined(CONFIG_MARCH_Z196)
+       .long 0xc100efe3, 0xf46c0000
+#elif defined(CONFIG_MARCH_Z10)
        .long 0xc100efe3, 0xf0680000
 #elif defined(CONFIG_MARCH_Z9_109)
        .long 0xc100efc3, 0x00000000
@@ -498,7 +500,9 @@ startup:
        .long 0xc0000000, 0x00000000
 #endif
 #else
-#if defined(CONFIG_MARCH_Z10)
+#if defined(CONFIG_MARCH_Z196)
+       .long 0x8100c880, 0x00000000
+#elif defined(CONFIG_MARCH_Z10)
        .long 0x8100c880, 0x00000000
 #elif defined(CONFIG_MARCH_Z9_109)
        .long 0x8100c880, 0x00000000