From: "Pali Rohár" <pali@kernel.org> To: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, jbglaw@lug-owl.de, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v1 1/5] powerpc/64: Set default CPU in Kconfig Date: Tue, 20 Dec 2022 21:13:53 +0100 [thread overview] Message-ID: <20221220201353.xhzdzmh5n2jwtv5w@pali> (raw) In-Reply-To: <38a8d765ed9149bc6b5484a7142e3bc59ffa3b1a.1671475543.git.christophe.leroy@csgroup.eu> On Monday 19 December 2022 19:45:56 Christophe Leroy wrote: > Since 0069f3d14e7a ("powerpc/64e: Tie PPC_BOOK3E_64 to PPC_E500MC"), the > only possible BOOK3E/64 are E500, so no need of a default CPU over the > E5500. > > When the user selects book3e, they must have an e500 compatible > compiler, and it won't work anymore with the default -mcpu=power64, see > commit d6b551b8f90c ("powerpc/64e: Fix build failure with GCC 12 > (unrecognized opcode: `wrteei')"). > > For book3s/64, replace GENERIC_CPU by POWERPC64_CPU to match the PPC32 > POWERPC_CPU, and set a default mpcu value in Kconfig directly. > > When a user selects a particular CPU, they must ensure the compiler has > the requested capability. Therefore, remove hidden fallback, instead > offer user the possibility to say they want to use the toolchain > default. > > It also fixes the non existing E5500_CPU which is a leftover of > commit d6b551b8f90c ("powerpc/64e: Fix build failure with GCC 12 > (unrecognized opcode: `wrteei')") > > Fixes: d6b551b8f90c ("powerpc/64e: Fix build failure with GCC 12 (unrecognized opcode: `wrteei')") > Reported-by: Pali Rohár <pali@kernel.org> > Tested-by: Pali Rohár <pali@kernel.org> > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Acked-by: Pali Rohár <pali@kernel.org> > --- > arch/powerpc/Makefile | 22 +++++----------------- > arch/powerpc/platforms/Kconfig.cputype | 12 +++++++----- > 2 files changed, 12 insertions(+), 22 deletions(-) > > diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile > index dc4cbf0a5ca9..bf5f0a998273 100644 > --- a/arch/powerpc/Makefile > +++ b/arch/powerpc/Makefile > @@ -146,19 +146,6 @@ CFLAGS-$(CONFIG_PPC32) += $(call cc-option, $(MULTIPLEWORD)) > > CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-mno-readonly-in-sdata) > > -ifdef CONFIG_PPC_BOOK3S_64 > -ifdef CONFIG_CPU_LITTLE_ENDIAN > -CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8 > -else > -CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power4 > -endif > -CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power10, \ > - $(call cc-option,-mtune=power9, \ > - $(call cc-option,-mtune=power8))) > -else ifdef CONFIG_PPC_BOOK3E_64 > -CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64 > -endif > - > ifdef CONFIG_FUNCTION_TRACER > CC_FLAGS_FTRACE := -pg > ifdef CONFIG_MPROFILE_KERNEL > @@ -166,11 +153,12 @@ CC_FLAGS_FTRACE += -mprofile-kernel > endif > endif > > -CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) > -AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) > +CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CONFIG_TARGET_CPU) > +AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CONFIG_TARGET_CPU) > > -CFLAGS-$(CONFIG_E5500_CPU) += $(call cc-option,-mcpu=e500mc64,-mcpu=powerpc64) > -CFLAGS-$(CONFIG_E6500_CPU) += $(call cc-option,-mcpu=e6500,$(E5500_CPU)) > +CFLAGS-$(CONFIG_POWERPC64_CPU) += $(call cc-option,-mtune=power10, \ > + $(call cc-option,-mtune=power9, \ > + $(call cc-option,-mtune=power8))) > > asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1) > > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index 9563336e3348..31cea2eeb59e 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -118,19 +118,18 @@ endchoice > > choice > prompt "CPU selection" > - 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 > +config POWERPC64_CPU > bool "Generic (POWER5 and PowerPC 970 and above)" > depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN > select PPC_64S_HASH_MMU > > -config GENERIC_CPU > +config POWERPC64_CPU > bool "Generic (POWER8 and above)" > depends on PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN > select ARCH_HAS_FAST_MULTIPLIER > @@ -233,13 +232,12 @@ config E500MC_CPU > > config TOOLCHAIN_DEFAULT_CPU > bool "Rely on the toolchain's implicit default CPU" > - depends on PPC32 > > endchoice > > config TARGET_CPU_BOOL > bool > - default !GENERIC_CPU && !TOOLCHAIN_DEFAULT_CPU > + default !TOOLCHAIN_DEFAULT_CPU > > config TARGET_CPU > string > @@ -251,6 +249,10 @@ config TARGET_CPU > default "power8" if POWER8_CPU > default "power9" if POWER9_CPU > default "power10" if POWER10_CPU > + default "e500mc64" if E5500_CPU > + default "e6500" if E6500_CPU > + default "power4" if POWERPC64_CPU && !CPU_LITTLE_ENDIAN > + default "power8" if POWERPC64_CPU && CPU_LITTLE_ENDIAN > default "405" if 405_CPU > default "440" if 440_CPU > default "464" if 464_CPU > -- > 2.38.1 >
WARNING: multiple messages have this Message-ID (diff)
From: "Pali Rohár" <pali@kernel.org> To: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: linuxppc-dev@lists.ozlabs.org, jbglaw@lug-owl.de, Nicholas Piggin <npiggin@gmail.com>, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 1/5] powerpc/64: Set default CPU in Kconfig Date: Tue, 20 Dec 2022 21:13:53 +0100 [thread overview] Message-ID: <20221220201353.xhzdzmh5n2jwtv5w@pali> (raw) In-Reply-To: <38a8d765ed9149bc6b5484a7142e3bc59ffa3b1a.1671475543.git.christophe.leroy@csgroup.eu> On Monday 19 December 2022 19:45:56 Christophe Leroy wrote: > Since 0069f3d14e7a ("powerpc/64e: Tie PPC_BOOK3E_64 to PPC_E500MC"), the > only possible BOOK3E/64 are E500, so no need of a default CPU over the > E5500. > > When the user selects book3e, they must have an e500 compatible > compiler, and it won't work anymore with the default -mcpu=power64, see > commit d6b551b8f90c ("powerpc/64e: Fix build failure with GCC 12 > (unrecognized opcode: `wrteei')"). > > For book3s/64, replace GENERIC_CPU by POWERPC64_CPU to match the PPC32 > POWERPC_CPU, and set a default mpcu value in Kconfig directly. > > When a user selects a particular CPU, they must ensure the compiler has > the requested capability. Therefore, remove hidden fallback, instead > offer user the possibility to say they want to use the toolchain > default. > > It also fixes the non existing E5500_CPU which is a leftover of > commit d6b551b8f90c ("powerpc/64e: Fix build failure with GCC 12 > (unrecognized opcode: `wrteei')") > > Fixes: d6b551b8f90c ("powerpc/64e: Fix build failure with GCC 12 (unrecognized opcode: `wrteei')") > Reported-by: Pali Rohár <pali@kernel.org> > Tested-by: Pali Rohár <pali@kernel.org> > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Acked-by: Pali Rohár <pali@kernel.org> > --- > arch/powerpc/Makefile | 22 +++++----------------- > arch/powerpc/platforms/Kconfig.cputype | 12 +++++++----- > 2 files changed, 12 insertions(+), 22 deletions(-) > > diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile > index dc4cbf0a5ca9..bf5f0a998273 100644 > --- a/arch/powerpc/Makefile > +++ b/arch/powerpc/Makefile > @@ -146,19 +146,6 @@ CFLAGS-$(CONFIG_PPC32) += $(call cc-option, $(MULTIPLEWORD)) > > CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-mno-readonly-in-sdata) > > -ifdef CONFIG_PPC_BOOK3S_64 > -ifdef CONFIG_CPU_LITTLE_ENDIAN > -CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8 > -else > -CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power4 > -endif > -CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power10, \ > - $(call cc-option,-mtune=power9, \ > - $(call cc-option,-mtune=power8))) > -else ifdef CONFIG_PPC_BOOK3E_64 > -CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64 > -endif > - > ifdef CONFIG_FUNCTION_TRACER > CC_FLAGS_FTRACE := -pg > ifdef CONFIG_MPROFILE_KERNEL > @@ -166,11 +153,12 @@ CC_FLAGS_FTRACE += -mprofile-kernel > endif > endif > > -CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) > -AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) > +CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CONFIG_TARGET_CPU) > +AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CONFIG_TARGET_CPU) > > -CFLAGS-$(CONFIG_E5500_CPU) += $(call cc-option,-mcpu=e500mc64,-mcpu=powerpc64) > -CFLAGS-$(CONFIG_E6500_CPU) += $(call cc-option,-mcpu=e6500,$(E5500_CPU)) > +CFLAGS-$(CONFIG_POWERPC64_CPU) += $(call cc-option,-mtune=power10, \ > + $(call cc-option,-mtune=power9, \ > + $(call cc-option,-mtune=power8))) > > asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1) > > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index 9563336e3348..31cea2eeb59e 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -118,19 +118,18 @@ endchoice > > choice > prompt "CPU selection" > - 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 > +config POWERPC64_CPU > bool "Generic (POWER5 and PowerPC 970 and above)" > depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN > select PPC_64S_HASH_MMU > > -config GENERIC_CPU > +config POWERPC64_CPU > bool "Generic (POWER8 and above)" > depends on PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN > select ARCH_HAS_FAST_MULTIPLIER > @@ -233,13 +232,12 @@ config E500MC_CPU > > config TOOLCHAIN_DEFAULT_CPU > bool "Rely on the toolchain's implicit default CPU" > - depends on PPC32 > > endchoice > > config TARGET_CPU_BOOL > bool > - default !GENERIC_CPU && !TOOLCHAIN_DEFAULT_CPU > + default !TOOLCHAIN_DEFAULT_CPU > > config TARGET_CPU > string > @@ -251,6 +249,10 @@ config TARGET_CPU > default "power8" if POWER8_CPU > default "power9" if POWER9_CPU > default "power10" if POWER10_CPU > + default "e500mc64" if E5500_CPU > + default "e6500" if E6500_CPU > + default "power4" if POWERPC64_CPU && !CPU_LITTLE_ENDIAN > + default "power8" if POWERPC64_CPU && CPU_LITTLE_ENDIAN > default "405" if 405_CPU > default "440" if 440_CPU > default "464" if 464_CPU > -- > 2.38.1 >
next prev parent reply other threads:[~2022-12-20 20:14 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-12-19 18:45 [PATCH v1 1/5] powerpc/64: Set default CPU in Kconfig Christophe Leroy 2022-12-19 18:45 ` Christophe Leroy 2022-12-19 18:45 ` [PATCH v1 2/5] powerpc: Pass correct CPU reference to assembler Christophe Leroy 2022-12-19 18:45 ` Christophe Leroy 2022-12-20 20:14 ` Pali Rohár 2022-12-20 20:14 ` Pali Rohár 2022-12-19 18:45 ` [PATCH v1 3/5] powerpc/64: Replace -mcpu=e500mc64 by -mcpu=e5500 Christophe Leroy 2022-12-19 18:45 ` Christophe Leroy 2022-12-20 20:15 ` Pali Rohár 2022-12-20 20:15 ` Pali Rohár 2023-02-01 23:46 ` Pali Rohár 2023-02-01 23:46 ` Pali Rohár 2023-02-03 18:23 ` Christophe Leroy 2023-02-03 18:23 ` Christophe Leroy 2022-12-19 18:45 ` [PATCH v1 4/5] powerpc: Remove cpu-as-y completely Christophe Leroy 2022-12-19 18:45 ` Christophe Leroy 2022-12-20 20:15 ` Pali Rohár 2022-12-20 20:15 ` Pali Rohár 2023-02-20 6:00 ` Michael Ellerman 2023-02-20 6:00 ` Michael Ellerman 2024-02-16 15:25 ` Christophe Leroy 2024-02-16 15:25 ` Christophe Leroy 2024-02-24 23:52 ` Michael Ellerman 2024-02-24 23:52 ` Michael Ellerman 2022-12-19 18:46 ` [PATCH v1 5/5] powerpc/epapr: Don't use wrteei on non booke Christophe Leroy 2022-12-19 18:46 ` Christophe Leroy 2022-12-20 20:21 ` Pali Rohár 2022-12-20 20:21 ` Pali Rohár 2023-02-15 23:15 ` Pali Rohár 2023-02-15 23:15 ` Pali Rohár 2022-12-20 20:13 ` Pali Rohár [this message] 2022-12-20 20:13 ` [PATCH v1 1/5] powerpc/64: Set default CPU in Kconfig Pali Rohár 2023-02-20 3:53 ` Michael Ellerman 2023-01-03 10:35 kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221220201353.xhzdzmh5n2jwtv5w@pali \ --to=pali@kernel.org \ --cc=christophe.leroy@csgroup.eu \ --cc=jbglaw@lug-owl.de \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=npiggin@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.