Commit a0e22511 authored by Martin Schwidefsky's avatar Martin Schwidefsky Committed by Heiko Carstens
Browse files

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: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent 3c2eb6b7
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -237,6 +237,10 @@ config HAVE_MARCH_Z14_FEATURES
	def_bool n
	select HAVE_MARCH_Z13_FEATURES

config HAVE_MARCH_Z15_FEATURES
	def_bool n
	select HAVE_MARCH_Z14_FEATURES

choice
	prompt "Processor type"
	default MARCH_Z196
@@ -308,6 +312,14 @@ config MARCH_Z14
	  and 3906 series). The kernel will be slightly faster but will not
	  work on older machines.

config MARCH_Z15
	bool "IBM z15"
	select HAVE_MARCH_Z15_FEATURES
	help
	  Select this to enable optimizations for IBM z15 (8562
	  and 8561 series). The kernel will be slightly faster but will not
	  work on older machines.

endchoice

config MARCH_Z900_TUNE
@@ -334,6 +346,9 @@ config MARCH_Z13_TUNE
config MARCH_Z14_TUNE
	def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT

config MARCH_Z15_TUNE
	def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT

choice
	prompt "Tune code generation"
	default TUNE_DEFAULT
@@ -378,6 +393,9 @@ config TUNE_Z13
config TUNE_Z14
	bool "IBM z14"

config TUNE_Z15
	bool "IBM z15"

endchoice

config 64BIT
+2 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ mflags-$(CONFIG_MARCH_Z196) := -march=z196
mflags-$(CONFIG_MARCH_ZEC12)  := -march=zEC12
mflags-$(CONFIG_MARCH_Z13)    := -march=z13
mflags-$(CONFIG_MARCH_Z14)    := -march=z14
mflags-$(CONFIG_MARCH_Z15)    := -march=z15

export CC_FLAGS_MARCH := $(mflags-y)

@@ -59,6 +60,7 @@ cflags-$(CONFIG_MARCH_Z196_TUNE) += -mtune=z196
cflags-$(CONFIG_MARCH_ZEC12_TUNE)	+= -mtune=zEC12
cflags-$(CONFIG_MARCH_Z13_TUNE)		+= -mtune=z13
cflags-$(CONFIG_MARCH_Z14_TUNE)		+= -mtune=z14
cflags-$(CONFIG_MARCH_Z15_TUNE)		+= -mtune=z15

cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include

+4 −0
Original line number Diff line number Diff line
@@ -981,6 +981,10 @@ static int __init setup_hwcaps(void)
	case 0x3907:
		strcpy(elf_platform, "z14");
		break;
	case 0x8561:
	case 0x8562:
		strcpy(elf_platform, "z15");
		break;
	}

	/*
+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,9 @@ static struct facility_def facility_defs[] = {
#endif
#ifdef CONFIG_HAVE_MARCH_Z14_FEATURES
			58, /* miscellaneous-instruction-extension 2 */
#endif
#ifdef CONFIG_HAVE_MARCH_Z15_FEATURES
			61, /* miscellaneous-instruction-extension 3 */
#endif
			-1 /* END */
		}