On 2023-12-29 21:07, Sam Ravnborg wrote: > Add support for selecting the CPU architecture. > The default is leon3 - which is the minimum required as the kernel uses > CAS instructions. > > Inspired by (from gaisler-buildroot-2023.02-1.0): > 0001-sparc32-leon-Build-with-mcpu-leon3-for-SPARC_LEON.patch > 0028-sparc32-leon-Make-what-mcpu-to-be-used-configurable-.patch > > Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx> > Cc: Andreas Larsson <andreas@xxxxxxxxxxx> > Cc: Arnd Bergmann <arnd@xxxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > --- > arch/sparc/Kconfig | 24 ++++++++++++++++++++++++ > arch/sparc/Makefile | 13 +++++-------- > 2 files changed, 29 insertions(+), 8 deletions(-) > > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 1b9cf7f3c500..e94783ceb409 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -161,6 +161,30 @@ config ARCH_SUPPORTS_UPROBES > > menu "Processor type and features" > > +choice > + prompt "LEON architecture" > + default SPARC_CPU_LEON3 > + help > + Select the architecture the kernel shall be built for > + > +config SPARC_CPU_LEON3 > + prompt "LEON 3" This should rather be bool than prompt... > + help > + Build the kernel for the LEON 3 architecture > + > +config SPARC_CPU_LEON5 > + prompt "LEON 5" ...and the same here. > + help > + Build the kernel for the LEON 5 architecture > + > +config SPARC_CPU_DEFAULT > + bool "Toolchain default" > + help > + Build the kernel with no -mcpu option, getting the default > + for the toolchain that is being used. > + > +endchoice > + > config SMP > bool "Symmetric multi-processing support" > help > diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile > index 5f6035936131..3c3a1fd8c873 100644 > --- a/arch/sparc/Makefile > +++ b/arch/sparc/Makefile > @@ -25,14 +25,11 @@ KBUILD_LDFLAGS := -m elf32_sparc > export BITS := 32 > UTS_MACHINE := sparc > > -# We are adding -Wa,-Av8 to KBUILD_CFLAGS to deal with a specs bug in some > -# versions of gcc. Some gcc versions won't pass -Av8 to binutils when you > -# give -mcpu=v8. This silently worked with older bintutils versions but > -# does not any more. > -KBUILD_CFLAGS += -m32 -mcpu=v8 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 > -KBUILD_CFLAGS += -Wa,-Av8 > - > -KBUILD_AFLAGS += -m32 -Wa,-Av8 > +cpuflags-$(CONFIG_SPARC_CPU_LEON3) := -mcpu=leon3 > +cpuflags-$(CONFIG_SPARC_CPU_LEON5) := -mcpu=leon5 > + > +KBUILD_CFLAGS += -m32 $(cpuflags-y) -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 > +KBUILD_AFLAGS += -m32 $(cpuflags-y) > > else > ##### As said in the sunset thread, more vetting is needed from my side, so no need to respin this series yet. Thanks, Andreas