From 7fb6c4f9b06c5539043c8bfc6565710b8090841d Mon Sep 17 00:00:00 2001 From: Rafal Jaworowski Date: Fri, 23 Jan 2009 13:27:16 +0100 Subject: [PATCH] API: Provide syscall entry point for the ARM architecture. Signed-off-by: Rafal Czubak Acked-by: Rafal Jaworowski --- api_examples/Makefile | 7 +++---- api_examples/crt0.S | 17 ++++++++++++++++- lib_arm/board.c | 5 +++++ 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/api_examples/Makefile b/api_examples/Makefile index 5666f489b9..4c01437443 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 3129a07bcb..6daf127893 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 964f5cc5f2..fe68df075a 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) -- 2.39.5