MIPS: fix endianess handling

Make endianess of target CPU configurable. Use the new config
option for dbau1550_el and pb1000 boards.

Adapt linking of standalone applications to pass through
endianess options to LD.

Build tested with:
 - ELDK 4 mips_4KC- and mips4KCle
 - Sourcery CodeBench Lite 2011.03-93

With this patch all 26 MIPS boards can be compiled now in one step by
running "MAKEALL -a mips".

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
This commit is contained in:
Daniel Schwierzeck 2012-04-02 02:57:56 +00:00 committed by Marek Vasut
parent 979cfeaf36
commit 6cb461b4f1
4 changed files with 24 additions and 7 deletions

6
README
View file

@ -374,6 +374,12 @@ The following options need to be configured:
Defines the string to utilize when trying to match PCIe device Defines the string to utilize when trying to match PCIe device
tree nodes for the given platform. tree nodes for the given platform.
- Generic CPU options:
CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
Defines the endianess of the CPU. Implementation of those
values is arch specific.
- Intel Monahans options: - Intel Monahans options:
CONFIG_SYS_MONAHANS_RUN_MODE_OSC_RATIO CONFIG_SYS_MONAHANS_RUN_MODE_OSC_RATIO

View file

@ -27,14 +27,23 @@
# Note: Toolchains with binutils prior to v2.16 # Note: Toolchains with binutils prior to v2.16
# are no longer supported by U-Boot MIPS tree! # are no longer supported by U-Boot MIPS tree!
# #
MIPSFLAGS = -march=mips32r2 MIPSFLAGS := -march=mips32r2
# Handle special prefix in ELDK 4.0 toolchain
ifneq (,$(findstring 4KCle,$(CROSS_COMPILE))) ifneq (,$(findstring 4KCle,$(CROSS_COMPILE)))
ENDIANNESS = -EL ENDIANNESS := -EL
else
ENDIANNESS = -EB
endif endif
MIPSFLAGS += $(ENDIANNESS) ifdef CONFIG_SYS_LITTLE_ENDIAN
ENDIANNESS := -EL
endif
PLATFORM_CPPFLAGS += $(MIPSFLAGS) ifdef CONFIG_SYS_BIG_ENDIAN
ENDIANNESS := -EB
endif
# Default to EB if no endianess is configured
ENDIANNESS ?= -EB
PLATFORM_CPPFLAGS += $(MIPSFLAGS) $(ENDIANNESS)
PLATFORM_LDFLAGS += $(ENDIANNESS)

View file

@ -360,7 +360,7 @@ dbau1000 mips mips32 dbau1x00 -
dbau1100 mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1100 dbau1100 mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1100
dbau1500 mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1500 dbau1500 mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1500
dbau1550 mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1550 dbau1550 mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1550
dbau1550_el mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1550 dbau1550_el mips mips32 dbau1x00 - au1x00 dbau1x00:DBAU1550,SYS_LITTLE_ENDIAN
gth2 mips mips32 - - au1x00 gth2 mips mips32 - - au1x00
pb1000 mips mips32 pb1x00 - au1x00 pb1x00:PB1000 pb1000 mips mips32 pb1x00 - au1x00 pb1x00:PB1000
incaip mips mips32 incaip - incaip incaip mips mips32 incaip - incaip

View file

@ -46,6 +46,8 @@
#endif #endif
#endif #endif
#define CONFIG_SYS_LITTLE_ENDIAN
#define CONFIG_ETHADDR DE:AD:BE:EF:01:01 /* Ethernet address */ #define CONFIG_ETHADDR DE:AD:BE:EF:01:01 /* Ethernet address */
#define CONFIG_BOOTDELAY 2 /* autoboot after 2 seconds */ #define CONFIG_BOOTDELAY 2 /* autoboot after 2 seconds */