add missing ARM boards to MAKEALL
PATCH 1/3 add missing ARM boards to MAKEALL
Add some missing ARM boards to MAKEALL. These build correctly, unlike several of the boards already listed.
MAKEALL +3 -0
@@ -455,6 +455,8 @@ LIST_ARM9=" \ cp926ejs \ cp946es \ cp966 \ + csb637 \ + kb9202 \ lpd7a400 \ mp2usb \ mx1ads \
@@ -463,6 +465,7 @@ LIST_ARM9=" \ omap1510inn \ omap1610h2 \ omap1610inn \ + omap5912osk \ omap730p2 \ sbc2410x \ scb9328 \
Jean-Christophe PLAGNIOL-VILLARD
AppliedPATCH 1/3 add missing ARM boards to MAKEALL
Quoted 4 lines · David Brownell
Add some missing ARM boards to MAKEALL. These build correctly, unlike several of the boards already listed.
Signed-off-by David Brownell <[email protected]>
Applied
Best Regards,
J.
PATCH 2/3 better ARM9 compiler options
Update some ARM9 builds to pass the exact CPU to GCC, when the compiler supports that specification. This stops pessimizing codegen, and removes voluminous warnings about (no) interworking support from EABI compilers. (Like CodeSourcery's ARM 2007q3 release.)
cpu/arm920t/config.mk +1 -1
@@ -24,11 +24,11 @@ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \ -msoft-float -PLATFORM_CPPFLAGS += -march=armv4 # ========================================================================= # # Supply options according to compiler version # # ========================================================================= +PLATFORM_CPPFLAGS +=$(call cc-option,-mcpu=arm920t,-march=armv4) PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
cpu/arm926ejs/config.mk +1 -1
@@ -24,11 +24,11 @@ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \ -msoft-float -PLATFORM_CPPFLAGS += -march=armv4 # ========================================================================= # # Supply options according to compiler version # # ========================================================================= +PLATFORM_CPPFLAGS +=$(call cc-option,-mcpu=arm926ej-s,-march=armv4) PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
PATCH 2/3 better ARM9 compiler options
cpu/arm920t/config.mk 2008-01-13 11:05:02.000000000 -0800 line 25
Quoted 12 lines
Update some ARM9 builds to pass the exact CPU to GCC, when the compiler supports that specification. This stops pessimizing codegen, and removes voluminous warnings about (no) interworking support from EABI compilers. (Like CodeSourcery's ARM 2007q3 release.)
Signed-off-by David Brownell <[email protected]>cpu/arm920t/config.mk 2008-01-13 11:05:02.000000000 -0800 renamed from cpu/arm920t/config.mk 2008-01-13 10:42:55.000000000 -0800 +0
-0@@ -24,11 +24,11 @@ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \ -msoft-float
Why not remove the "-msoft-float" as well.
U-Boot does not use soft float and why then the requirement to use a compiler which supports soft-float???
Quoted 16 lines
cpu/arm920t/config.mk 2008-01-13 11:05:02.000000000 -0800 renamed from cpu/arm920t/config.mk 2008-01-13 10:42:55.000000000 -0800 +1
-1-PLATFORM_CPPFLAGS += -march=armv4 # ========================================================================= # # Supply options according to compiler version # # ========================================================================= +PLATFORM_CPPFLAGS +=$(call cc-option,-mcpu=arm920t,-march=armv4) PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))cpu/arm926ejs/config.mk 2008-01-13 11:04:56.000000000 -0800 renamed from cpu/arm926ejs/config.mk 2008-01-13 10:42:55.000000000 -0800 +0
-0@@ -24,11 +24,11 @@ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \ -msoft-float
cpu/arm926ejs/config.mk 2008-01-13 11:04:56.000000000 -0800 line 34
Quoted 10 lines
cpu/arm926ejs/config.mk 2008-01-13 11:04:56.000000000 -0800 renamed from cpu/arm926ejs/config.mk 2008-01-13 10:42:55.000000000 -0800 +1
-1-PLATFORM_CPPFLAGS += -march=armv4 # ========================================================================= # # Supply options according to compiler version # # ========================================================================= +PLATFORM_CPPFLAGS +=$(call cc-option,-mcpu=arm926ej-s,-march=armv4) PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
Is this correct?
ARM926EJ-S is ARMV5 architecture, not ARMV4.
Best Regards
Ulf Samuelsson
Woodruff
PATCH 2/3 better ARM9 compileroptions
Quoted 3 lines
Is this correct?
ARM926EJ-S is ARMV5 architecture, not ARMV4.
Yes, 926EJ-S is ARMv5.
PATCH 2/3 better ARM9 compiler options
In reply to Ulf SamuelssonQuoted 8 lines · Ulf Samuelsson
cpu/arm920t/config.mk 2008-01-13 11:05:02.000000000 -0800 line 25
Quoted 5 lines
cpu/arm920t/config.mk 2008-01-13 11:05:02.000000000 -0800 renamed from cpu/arm920t/config.mk 2008-01-13 10:42:55.000000000 -0800 +0
-0@@ -24,11 +24,11 @@ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \ -msoft-floatWhy not remove the "-msoft-float" as well.
U-Boot does not use soft float
It shouldn't use floating point of any flavor, in fact. But when some accident makes it try to do so, "soft" is the only potentially safe approach.
Quoted 2 lines
and why then the requirement to
use a compiler which supports soft-float???
That change would be orthogonal. And potentially troublesome; I have seen build breakage in U-Boot that was fixed by disabling even the accidental use of hard-float code.
Quoted 6 lines
Quoted 6 lines
cpu/arm926ejs/config.mk 2008-01-13 11:04:56.000000000 -0800 renamed from cpu/arm926ejs/config.mk 2008-01-13 10:42:55.000000000 -0800 +0
-0@@ -24,11 +24,11 @@ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \ -msoft-float
Quoted 13 lines
cpu/arm926ejs/config.mk 2008-01-13 11:04:56.000000000 -0800 line 34
Quoted 10 lines
cpu/arm926ejs/config.mk 2008-01-13 11:04:56.000000000 -0800 renamed from cpu/arm926ejs/config.mk 2008-01-13 10:42:55.000000000 -0800 +1
-1-PLATFORM_CPPFLAGS += -march=armv4 # ========================================================================= # # Supply options according to compiler version # # ========================================================================= +PLATFORM_CPPFLAGS +=$(call cc-option,-mcpu=arm926ej-s,-march=armv4) PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))Is this correct?
Sure. If that fallback is used, it's just a fallback to sub-optimal code generation. No CLZ, probably the wrong guesses about pipelines, and so on. But probably still safe on ancient compilers.
Quoted 1 line
ARM926EJ-S is ARMV5 architecture, not ARMV4.
In fact it's ARMv5tej ... an ARMv4 superset.
The specific compiler warnings that annoyed me would vanish by passing an "armv4t" option ... that'd be OK on most CPUs that U-Boot supports. But I don't see much reason not to specify the actual CPU, and thus to get the benefit of smarter scheduling on newer compilers.
- Dave
PATCH 2/3 better ARM9 compiler options
In reply to David BrownellQuoted 7 lines · David Brownell
Update some ARM9 builds to pass the exact CPU to GCC, when the compiler supports that specification. This stops pessimizing codegen, and removes voluminous warnings about (no) interworking support from EABI compilers. (Like CodeSourcery's ARM 2007q3 release.)
Signed-off-by David Brownell <[email protected]>
NOK
I've the following warning when I'm using it
nfs.c:1: warning: switch -mcpu=arm926ej-s conflicts with -march= switch sntp.c:1: warning: switch -mcpu=arm926ej-s conflicts with -march= switch part.c:0: warning: switch -mcpu=arm926ej-s conflicts with -march= switch
My toolchains
Using built-in specs.
Target: arm-elf
Configured with: ../configure --prefix=/opt/arm --target=arm-elf --enable-interwork --enable-multilib --enable-languages=c,c++ --with-newlib --with-headers=/opt/arm/src/newlib-1.14.0/newlib/libc/include Thread model: single
gcc version 4.1.1
Best Regards,
J.