Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d23c6fb4 authored by Anton Blanchard's avatar Anton Blanchard Committed by Benjamin Herrenschmidt
Browse files

powerpc: Add 64-bit CPU targets for gcc



Add a menu to select various 64-bit CPU targets for gcc. We
default to -mtune=power7 and if gcc doesn't understand that we
fallback to -mtune=power4.

Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 894a65c8
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
@@ -69,6 +69,16 @@ LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y)

CFLAGS-$(CONFIG_PPC64)	:= -mminimal-toc -mtraceback=no -mcall-aixdesc
CFLAGS-$(CONFIG_PPC32)	:= -ffixed-r2 -mmultiple

CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,-mtune=power4)
CFLAGS-$(CONFIG_CELL_CPU) += $(call cc-option,-mcpu=cell)
CFLAGS-$(CONFIG_POWER4_CPU) += $(call cc-option,-mcpu=power4)
CFLAGS-$(CONFIG_POWER5_CPU) += $(call cc-option,-mcpu=power5)
CFLAGS-$(CONFIG_POWER6_CPU) += $(call cc-option,-mcpu=power6)
CFLAGS-$(CONFIG_POWER7_CPU) += $(call cc-option,-mcpu=power7)

CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell)

KBUILD_CPPFLAGS	+= -Iarch/$(ARCH)
KBUILD_AFLAGS	+= -Iarch/$(ARCH)
KBUILD_CFLAGS	+= -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y)
@@ -76,22 +86,11 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)

CHECKFLAGS	+= -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__

ifeq ($(CONFIG_PPC64),y)
ifeq ($(CONFIG_POWER4_ONLY),y)
	KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
else
	KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
endif
endif

KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o

ifeq ($(CONFIG_TUNE_CELL),y)
	KBUILD_CFLAGS += $(call cc-option,-mtune=cell)
endif

# No AltiVec instruction when building kernel
# No AltiVec or VSX instructions when building kernel
KBUILD_CFLAGS += $(call cc-option,-mno-altivec)
KBUILD_CFLAGS += $(call cc-option,-mno-vsx)

# No SPE instruction when building kernel
# (We use all available options to help semi-broken compilers)
+30 −0
Original line number Diff line number Diff line
@@ -78,6 +78,36 @@ config PPC_BOOK3E_64

endchoice

choice
	prompt "CPU selection"
	depends on PPC64
	default GENERIC_CPU
	help
	  This will create a kernel which is optimised for a particular CPU.
	  The resulting kernel may not run on other CPUs, so use this with care.

	  If unsure, select Generic.

config GENERIC_CPU
	bool "Generic"

config CELL_CPU
	bool "Cell Broadband Engine"

config POWER4_CPU
	bool "POWER4"

config POWER5_CPU
	bool "POWER5"

config POWER6_CPU
	bool "POWER6"

config POWER7_CPU
	bool "POWER7"

endchoice

config PPC_BOOK3S
	def_bool y
	depends on PPC_BOOK3S_32 || PPC_BOOK3S_64