summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2009-11-02 19:51:29 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2009-11-03 09:47:32 +0100
commita4292fe7cfddd567296596b3ecfe96eec5a10120 (patch)
tree81dc420363de0d2b48fe4e7ba51aa482fc03ab8f
parentc7ce98dc8de9112ec868f0524d6a239d28e0d190 (diff)
downloadbarebox-a4292fe7cfddd567296596b3ecfe96eec5a10120.tar.gz
barebox-a4292fe7cfddd567296596b3ecfe96eec5a10120.tar.xz
arm: add endian config support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/Makefile10
-rw-r--r--arch/arm/cpu/Kconfig11
2 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index af2bb120fd..f6605abcf2 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -3,6 +3,16 @@ CPPFLAGS += -D__ARM__ -fno-strict-aliasing
# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
CPPFLAGS +=$(call cc-option,-marm,)
+ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
+CPPFLAGS += -mbig-endian
+AS += -EB
+LD += -EB
+else
+CPPFLAGS += -mlittle-endian
+AS += -EL
+LD += -EL
+endif
+
# Machine directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
machine-$(CONFIG_ARCH_AT91) := at91
diff --git a/arch/arm/cpu/Kconfig b/arch/arm/cpu/Kconfig
index f89cce997b..cbec79390e 100644
--- a/arch/arm/cpu/Kconfig
+++ b/arch/arm/cpu/Kconfig
@@ -50,3 +50,14 @@ config CPU_32v5
config CPU_32v7
bool
+
+comment "processor features"
+
+config CPU_BIG_ENDIAN
+ bool "Build big-endian kernel"
+ depends on ARCH_SUPPORTS_BIG_ENDIAN
+ help
+ Say Y if you plan on running a kernel in big-endian mode.
+ Note that your board must be properly built and your board
+ port must properly enable any big-endian related features
+ of your chipset/board/processor.