API: Provide syscall entry point for the ARM architecture.
authorRafal Jaworowski <raj@semihalf.com>
Fri, 23 Jan 2009 12:27:16 +0000 (13:27 +0100)
committerWolfgang Denk <wd@denx.de>
Tue, 17 Feb 2009 23:39:41 +0000 (00:39 +0100)
Signed-off-by: Rafal Czubak <rcz@semihalf.com>
Acked-by: Rafal Jaworowski <raj@semihalf.com>
api_examples/Makefile
api_examples/crt0.S
lib_arm/board.c

index 5666f489b939176f07310679915bd41520f9adb7..4c0143744348730856033ffc0d4d15283a85aa33 100644 (file)
 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
 
index 3129a07bcba698d4ac0c80e5aa197fc79592f323..6daf127893f8f327f4412505a06b18d091abb855 100644 (file)
@@ -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
index 964f5cc5f2921448b0ed60347f4255c113f4fe8e..fe68df075a107e8a7c20bbd443137ecfbf5657c3 100644 (file)
@@ -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)