diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-10-14 22:24:12 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-02-04 15:52:39 +0100 |
commit | b7e7def62319d617a06addea382d709978ab8c4f (patch) | |
tree | db7a081e73ad8241573638b969a8653b4b414b57 /arch/arm/mach-ep93xx | |
parent | bf61adb050a1285ef312aea2f6043215c06127c6 (diff) | |
download | barebox-b7e7def62319d617a06addea382d709978ab8c4f.tar.gz barebox-b7e7def62319d617a06addea382d709978ab8c4f.tar.xz |
ARM ep93xx boards: switch to barebox_arm_entry
This architecture is a bit strange. It has up to four SDRAM banks, but
all have a quite limited size. The SDRAM size for the different boards
currently is unknown as it's configurable with Kconfig. We use a SDRAM
size based on the value of the only board we have in the defconfigs:
edb9301. This likely breaks other ep93xx boards.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-ep93xx')
-rw-r--r-- | arch/arm/mach-ep93xx/Kconfig | 8 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/lowlevel_init.S | 11 |
3 files changed, 12 insertions, 11 deletions
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig index ed6e9864c7..90859d501d 100644 --- a/arch/arm/mach-ep93xx/Kconfig +++ b/arch/arm/mach-ep93xx/Kconfig @@ -38,7 +38,6 @@ choice config MACH_EDB9301 bool "Cirrus Logic EDB9301" select EP93XX_SDCE3_SYNC_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9301 Evaluation board @@ -103,14 +102,12 @@ choice config MACH_EDB9302 bool "Cirrus Logic EDB9302" select EP93XX_SDCE3_SYNC_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9302 Evaluation board config MACH_EDB9302A bool "Cirrus Logic EDB9302A" select EP93XX_SDCE0_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9302A Evaluation board @@ -222,14 +219,12 @@ choice config MACH_EDB9307 bool "Cirrus Logic EDB9307" select EP93XX_SDCE3_SYNC_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9307 Evaluation board config MACH_EDB9307A bool "Cirrus Logic EDB9307A" select EP93XX_SDCE0_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9307A Evaluation board @@ -309,7 +304,6 @@ choice config MACH_EDB9312 bool "Cirrus Logic EDB9312" select EP93XX_SDCE3_SYNC_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9312 Evaluation board @@ -358,14 +352,12 @@ choice config MACH_EDB9315 bool "Cirrus Logic EDB9315" select EP93XX_SDCE3_SYNC_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9315 Evaluation board config MACH_EDB9315A bool "Cirrus Logic EDB9315A" select EP93XX_SDCE0_PHYS_OFFSET - select MACH_HAS_LOWLEVEL_INIT help Say y here if you are using Cirrus Logic's EDB9315A Evaluation board diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile index 5615394791..0ff0b66920 100644 --- a/arch/arm/mach-ep93xx/Makefile +++ b/arch/arm/mach-ep93xx/Makefile @@ -1,4 +1,4 @@ obj-y += clocksource.o gpio.o led.o header.o -obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += lowlevel_init.o -pbl-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += lowlevel_init.o led.o +obj-y += lowlevel_init.o +pbl-y += lowlevel_init.o led.o diff --git a/arch/arm/mach-ep93xx/lowlevel_init.S b/arch/arm/mach-ep93xx/lowlevel_init.S index 6de53dd2f5..154d38d2d1 100644 --- a/arch/arm/mach-ep93xx/lowlevel_init.S +++ b/arch/arm/mach-ep93xx/lowlevel_init.S @@ -20,6 +20,7 @@ * */ +#include <sizes.h> #include <mach/ep93xx-regs.h> #include <asm/barebox-arm-head.h> @@ -52,4 +53,12 @@ reset: orr r0, r0, #0xc0000000 mcr p15, 0, r0, c1, c0, 0 - b board_init_lowlevel_return + /* + * FIXME: This is suitable for the edb9301, the + * only ep93xx board we have in our defconfigs. + * Other boards need different values here. + */ + mov r0, #0x05000000 + mov r1, #SZ_8M + mov r2, #0 + b barebox_arm_entry |