summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/ebv-socrates
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-11-26 10:17:00 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-12-10 14:35:33 +0100
commit0644d1da7f547ba1b49ca95553ba65695ce9a3c3 (patch)
tree17088ff15ef3eb381bc989f6e863316699f828d5 /arch/arm/boards/ebv-socrates
parent509f62209907d6cc4c8d4b4e95aff91c7684f5db (diff)
downloadbarebox-0644d1da7f547ba1b49ca95553ba65695ce9a3c3.tar.gz
barebox-0644d1da7f547ba1b49ca95553ba65695ce9a3c3.tar.xz
ARM: Make ENTRY_FUNCTION more robust
An entry function should begin with a exception header. For this to work properly the entry function should not contain any code which gcc might put before the header. To make this sure change the ENTRY_FUNCTION macro so that it generates one function which only contains the exception header and a second function which contains the original body of the entry function. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/ebv-socrates')
-rw-r--r--arch/arm/boards/ebv-socrates/lowlevel.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/arm/boards/ebv-socrates/lowlevel.c b/arch/arm/boards/ebv-socrates/lowlevel.c
index d2f02e0b82..e93ae385f3 100644
--- a/arch/arm/boards/ebv-socrates/lowlevel.c
+++ b/arch/arm/boards/ebv-socrates/lowlevel.c
@@ -45,7 +45,7 @@ static inline void ledoff(void)
extern char __dtb_socfpga_cyclone5_socrates_start[];
-ENTRY_FUNCTION(start_socfpga_socrates)(void)
+ENTRY_FUNCTION(start_socfpga_socrates, r0, r1, r2)
{
uint32_t fdt;
@@ -87,10 +87,8 @@ static noinline void socrates_entry(void)
barebox_arm_entry(0x0, SZ_1G, 0);
}
-ENTRY_FUNCTION(start_socfpga_socrates_xload)(void)
+ENTRY_FUNCTION(start_socfpga_socrates_xload, r0, r1, r2)
{
- __barebox_arm_head();
-
arm_cpu_lowlevel_init();
arm_setup_stack(0xffff0000 + SZ_64K - SZ_4K - 16);