From f6e18219c37fbd2fffde0630727bb8399ae9d8a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Sat, 15 Aug 2009 02:16:23 +0000 Subject: [PATCH] [GSoC] [ARM] Patch by Johannes Wischert. Add assembler code to actually jump to the kernel. The terminal now says: kernel entry at 80048228 PANIC: acquire_spinlock: attempt to acquire lock 0x8012a59c with interrupts enabled Welcome to Kernel Debugging Land... Thread 0 "" running on CPU 0 kdebug> git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32408 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/boot/platform/u-boot/start2.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/system/boot/platform/u-boot/start2.c b/src/system/boot/platform/u-boot/start2.c index f466adadf6..158caf56fa 100644 --- a/src/system/boot/platform/u-boot/start2.c +++ b/src/system/boot/platform/u-boot/start2.c @@ -83,6 +83,12 @@ platform_start_kernel(void) dprintf("kernel entry at %lx\n", gKernelArgs.kernel_image.elf_header.e_entry); + + asm( "MOV sp, %[adr]"::[adr] "r" (stackTop) ); + asm( "MOV r0, %[args]"::[args] "r" (args) ); + asm( "MOV r1, #0"::); + asm( "MOV pc, %[entry]"::[entry] "r" (gKernelArgs.kernel_image.elf_header.e_entry)); + /* asm("movl %0, %%eax; " // move stack out of way "movl %%eax, %%esp; " : : "m" (stackTop));