From 32064fee1bb5602b5b1ed9e51ed6ec13e7674bb3 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Wed, 28 Nov 2012 02:06:34 +0100 Subject: [PATCH] Copy platform_start_kernel from uboot as well. The kernel now starts on the rPi. --- .../boot/platform/raspberrypi_arm/start.cpp | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/system/boot/platform/raspberrypi_arm/start.cpp b/src/system/boot/platform/raspberrypi_arm/start.cpp index daf40aef77..e55549f3de 100644 --- a/src/system/boot/platform/raspberrypi_arm/start.cpp +++ b/src/system/boot/platform/raspberrypi_arm/start.cpp @@ -13,10 +13,14 @@ #include "serial.h" #include + +#include + #include #include #include -#include + +#include #include @@ -86,7 +90,21 @@ platform_boot_options(void) void platform_start_kernel(void) { - #warning IMPLEMENT platform_start_kernel + preloaded_elf32_image *image = static_cast( + gKernelArgs.kernel_image.Pointer()); + + addr_t kernelEntry = image->elf_header.e_entry; + addr_t stackTop + = gKernelArgs.cpu_kstack[0].start + gKernelArgs.cpu_kstack[0].size; + + serial_cleanup(); + mmu_init_for_kernel(); + + dprintf("kernel entry at %lx\n", kernelEntry); + + status_t error = arch_start_kernel(&gKernelArgs, kernelEntry, + stackTop); + panic("kernel returned!\n"); }