diff --git a/api_examples/Makefile b/api_examples/Makefile index 5666f489b939176f07310679915bd41520f9adb7..4c0143744348730856033ffc0d4d15283a85aa33 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 3129a07bcba698d4ac0c80e5aa197fc79592f323..6daf127893f8f327f4412505a06b18d091abb855 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 964f5cc5f2921448b0ed60347f4255c113f4fe8e..fe68df075a107e8a7c20bbd443137ecfbf5657c3 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)