While preparing OMAP3 U-Boot v1 patches for upstream submission using Steve's git [1] we found that currently we use CodeSourcery toolchain and -march=armv7a configuration.
As this is incompatible to upstream configuration, discussion at U-Boot list
showed that we have to change this to use standard toolchain and more common -march option.
As example, looking at ARM11 configuration for OMAP2 in cpu/arm1136/config.mk there is a comment
# Make ARMv5 to allow more compilers to work, even though its v6.
PLATFORM_CPPFLAGS += -march=armv5
I propose to go the same way for OMAP3, too. If somebody later wants something else, he can overwrite CROSS_COMPILE at command line.
Trying to compile recent OMAP3 U-Boot git with my arm-linux-gcc and march=armv4 configuration (didn't try armv5) yet, I get
- a lot of warnings "warning: target CPU does not support interworking"
- start.S compilation in our patch fails:
start.S: Assembler messages:
start.S:466: Error: selected processor does not support `isb'
start.S:475: Error: selected processor does not support `clz r5,r4'
start.S:500: Error: selected processor does not support `isb'
While preparing OMAP3 U-Boot v1 patches for upstream submission using
Steve's git [1] we found that currently we use CodeSourcery toolchain
and -march=armv7a configuration.
showed that we have to change this to use standard toolchain and more
common -march option.
As example, looking at ARM11 configuration for OMAP2 in
cpu/arm1136/config.mk there is a comment
# Make ARMv5 to allow more compilers to work, even though its v6.
PLATFORM_CPPFLAGS += -march=armv5
I propose to go the same way for OMAP3, too. If somebody later wants
something else, he can overwrite CROSS_COMPILE at command line.
Trying to compile recent OMAP3 U-Boot git with my arm-linux-gcc and
march=armv4 configuration (didn't try armv5) yet, I get
- a lot of warnings "warning: target CPU does not support interworking"
try -march=armv4t, I'm not aware of any omaps using something older
than arm920t cores.
- start.S compilation in our patch fails:
start.S: Assembler messages:
start.S:466: Error: selected processor does not support `isb'
start.S:475: Error: selected processor does not support `clz r5,r4'
start.S:500: Error: selected processor does not support `isb'
Any proposals how to change this? (Patch??)
clz (count leading zeroes) is part of the armv5te instruction set, so
try -march=armv5te.