Message ID | 1344461278-28245-10-git-send-email-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Aug 08, 2012 at 11:27:57PM +0200, Arnd Bergmann wrote: > ARMv3 support was removed in 357c9c1f07 "ARM: Remove support for ARMv3 > ARM610 and ARM710 CPUs", which explicitly left parts of the CPU32v3 > support in place for building RiscPC. However, this does not actually > build in my test setup. > > This is probably not the right solution, but maybe someone has a better > idea for how to deal with this. This isn't the right solution. The RiscPC bus does not support half-word load/stores, so we must continue to build that target for the 32v3 architecture (which is why I carefully left that stuff behind.) The mistake is in what I did with arch/arm/lib - the armv3 code in there needs to be resurected instead.
On Thursday 09 August 2012, Russell King - ARM Linux wrote: > On Wed, Aug 08, 2012 at 11:27:57PM +0200, Arnd Bergmann wrote: > > ARMv3 support was removed in 357c9c1f07 "ARM: Remove support for ARMv3 > > ARM610 and ARM710 CPUs", which explicitly left parts of the CPU32v3 > > support in place for building RiscPC. However, this does not actually > > build in my test setup. > > > > This is probably not the right solution, but maybe someone has a better > > idea for how to deal with this. > > This isn't the right solution. The RiscPC bus does not support half-word > load/stores, so we must continue to build that target for the 32v3 > architecture (which is why I carefully left that stuff behind.) > > The mistake is in what I did with arch/arm/lib - the armv3 code in there > needs to be resurected instead. Ok, I'll drop my patch from the series then and wait for you to fix this properly. Arnd
On Fri, Aug 10, 2012 at 11:03:58AM +0000, Arnd Bergmann wrote: > On Thursday 09 August 2012, Russell King - ARM Linux wrote: > > On Wed, Aug 08, 2012 at 11:27:57PM +0200, Arnd Bergmann wrote: > > > ARMv3 support was removed in 357c9c1f07 "ARM: Remove support for ARMv3 > > > ARM610 and ARM710 CPUs", which explicitly left parts of the CPU32v3 > > > support in place for building RiscPC. However, this does not actually > > > build in my test setup. > > > > > > This is probably not the right solution, but maybe someone has a better > > > idea for how to deal with this. > > > > This isn't the right solution. The RiscPC bus does not support half-word > > load/stores, so we must continue to build that target for the 32v3 > > architecture (which is why I carefully left that stuff behind.) > > > > The mistake is in what I did with arch/arm/lib - the armv3 code in there > > needs to be resurected instead. > > Ok, I'll drop my patch from the series then and wait for you to > fix this properly. I've just reverted the arch/arm/lib part of 357c9c1f07d4546bc3fbc0fd1044d96b114d14ed (ARM: Remove support for ARMv3 ARM610 and ARM710 CPUs) so when I push my fixes branch this should resolve your build error.
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e91c7cd..1e435185 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -2259,7 +2259,7 @@ config FPE_NWFPE_XP config FPE_FASTFPE bool "FastFPE math emulation (EXPERIMENTAL)" - depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL + depends on (!AEABI || OABI_COMPAT) && EXPERIMENTAL ---help--- Say Y here to include the FAST floating point emulator in the kernel. This is an experimental much faster emulator which now also has full diff --git a/arch/arm/Makefile b/arch/arm/Makefile index b4c2296..2c53344 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -70,7 +70,6 @@ endif arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t) arch-$(CONFIG_CPU_32v4T) :=-D__LINUX_ARM_ARCH__=4 -march=armv4t arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4 -arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3 # This selects how we optimise for the processor. tune-$(CONFIG_CPU_ARM7TDMI) :=-mtune=arm7tdmi diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 101b968..28773e6 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -265,8 +265,7 @@ config CPU_ARM1026 # SA110 config CPU_SA110 bool "Support StrongARM(R) SA-110 processor" if ARCH_RPC - select CPU_32v3 if ARCH_RPC - select CPU_32v4 if !ARCH_RPC + select CPU_32v4 select CPU_ABRT_EV4 select CPU_PABRT_LEGACY select CPU_CACHE_V4WB @@ -395,12 +394,6 @@ config CPU_V7 # Figure out what processor architecture version we should be using. # This defines the compiler instruction set which depends on the machine type. -config CPU_32v3 - bool - select TLS_REG_EMUL if SMP || !MMU - select NEEDS_SYSCALL_FOR_CMPXCHG if SMP - select CPU_USE_DOMAINS if MMU - config CPU_32v4 bool select TLS_REG_EMUL if SMP || !MMU @@ -587,8 +580,7 @@ comment "Processor Features" config ARM_LPAE bool "Support for the Large Physical Address Extension" - depends on MMU && CPU_32v7 && !CPU_32v6 && !CPU_32v5 && \ - !CPU_32v4 && !CPU_32v3 + depends on MMU && CPU_32v7 && !CPU_32v6 && !CPU_32v5 && !CPU_32v4 help Say Y if you have an ARMv7 processor supporting the LPAE page table format and you would like to access memory beyond the
ARMv3 support was removed in 357c9c1f07 "ARM: Remove support for ARMv3 ARM610 and ARM710 CPUs", which explicitly left parts of the CPU32v3 support in place for building RiscPC. However, this does not actually build in my test setup. This is probably not the right solution, but maybe someone has a better idea for how to deal with this. Without this patch, building rpc_defconfig results in: arch/arm/lib/io-readsw-armv4.S: Assembler messages: arch/arm/lib/io-readsw-armv4.S:23: Error: selected processor does not support ARM mode `ldrh ip,[r0]' arch/arm/lib/io-readsw-armv4.S:25: Error: selected processor does not support ARM mode `strh ip,[r1],#2' arch/arm/lib/io-readsw-armv4.S:38: Error: selected processor does not support ARM mode `ldrh r3,[r0]' make[2]: *** [arch/arm/lib/io-readsw-armv4.o] Error 1 make[1]: *** [arch/arm/lib] Error 2 Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Russell King <rmk+kernel@arm.linux.org.uk> --- arch/arm/Kconfig | 2 +- arch/arm/Makefile | 1 - arch/arm/mm/Kconfig | 12 ++---------- 3 files changed, 3 insertions(+), 12 deletions(-)