[U-Boot-Users] [PATCH] API: Provide syscall entry point implementation for the ARM architecture.
Rafal Jaworowski
raj at semihalf.com
Mon Aug 4 14:45:32 CEST 2008
(Tested on ARM920-based EP93xx system)
Signed-off-by: Rafal Czubak <rcz at semihalf.com>
Acked-by: Rafal Jaworowski <raj at semihalf.com>
---
api_examples/Makefile | 6 +++---
api_examples/crt0.S | 17 +++++++++++++++--
lib_arm/board.c | 5 +++++
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/api_examples/Makefile b/api_examples/Makefile
index 5666f48..d09f8f8 100644
--- a/api_examples/Makefile
+++ b/api_examples/Makefile
@@ -24,9 +24,9 @@ ifeq ($(ARCH),ppc)
LOAD_ADDR = 0x40000
endif
-#ifeq ($(ARCH),arm)
-#LOAD_ADDR = 0xc100000
-#endif
+ifeq ($(ARCH),arm)
+LOAD_ADDR = 0x1000000
+endif
include $(TOPDIR)/config.mk
diff --git a/api_examples/crt0.S b/api_examples/crt0.S
index 80b7297..a9e2dea 100644
--- a/api_examples/crt0.S
+++ b/api_examples/crt0.S
@@ -1,5 +1,5 @@
/*
- * (C) Copyright 2007 Semihalf
+ * (C) Copyright 2007-2008 Semihalf
*
* Written by: Rafal Jaworowski <raj at semihalf.com>
*
@@ -25,7 +25,6 @@
#if defined(CONFIG_PPC)
.text
-
.globl _start
_start:
/* Store global data ptr as a hint for U-Boot address range */
@@ -41,6 +40,20 @@ syscall:
lwz %r11, 0(%r11)
mtctr %r11
bctr
+
+#elif defined(CONFIG_ARM)
+ .text
+ .globl _start
+_start:
+ ldr ip, =gd_ptr
+ str r8, [ip]
+ b main
+
+ .globl syscall
+syscall:
+ ldr ip, =syscall_ptr
+ ldr pc, [ip]
+
#else
#error No support for this arch!
#endif
diff --git a/lib_arm/board.c b/lib_arm/board.c
index a093860..c47b52c 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -431,6 +431,11 @@ void start_armboot (void)
jumptable_init ();
+#if defined(CONFIG_API)
+ /* Initialize API */
+ api_init ();
+#endif
+
console_init_r (); /* fully init console as a device */
#if defined(CONFIG_MISC_INIT_R)
--
1.5.2.2
More information about the U-Boot
mailing list