diff options
author | Rafal Jaworowski | 2009-01-23 13:27:16 +0100 |
---|---|---|
committer | Wolfgang Denk | 2009-02-18 00:39:41 +0100 |
commit | 7fb6c4f9b06c5539043c8bfc6565710b8090841d (patch) | |
tree | f9be70847a132903f6b2b4bc29cb7ef387359c3b | |
parent | b84d7d8f1e1066f810866304a16a3583f88e7c98 (diff) |
API: Provide syscall entry point for the ARM architecture.
Signed-off-by: Rafal Czubak <rcz@semihalf.com>
Acked-by: Rafal Jaworowski <raj@semihalf.com>
-rw-r--r-- | api_examples/Makefile | 7 | ||||
-rw-r--r-- | api_examples/crt0.S | 17 | ||||
-rw-r--r-- | lib_arm/board.c | 5 |
3 files changed, 24 insertions, 5 deletions
diff --git a/api_examples/Makefile b/api_examples/Makefile index 5666f489b93..4c014374434 100644 --- a/api_examples/Makefile +++ b/api_examples/Makefile @@ -23,10 +23,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 3129a07bcba..6daf127893f 100644 --- a/api_examples/crt0.S +++ b/api_examples/crt0.S @@ -26,7 +26,6 @@ #if defined(CONFIG_PPC) .text - .globl _start _start: lis %r11, search_hint@ha @@ -42,6 +41,22 @@ syscall: lwz %r11, 0(%r11) mtctr %r11 bctr + +#elif defined(CONFIG_ARM) + + .text + .globl _start +_start: + ldr ip, =search_hint + str sp, [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 964f5cc5f29..fe68df075a1 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -416,6 +416,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) |