aboutsummaryrefslogtreecommitdiff
path: root/core/init.c
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2018-09-25 16:26:00 +1000
committerStewart Smith <stewart@linux.ibm.com>2018-09-27 00:41:48 -0500
commit80b7b37c63a587258b27e4f87e150936680badff (patch)
treec4ba8d707238596057bc5a669e03247566bcad9e /core/init.c
parentc884f2d0cb921131737df99ed3aad9f5a2d2945f (diff)
downloadskiboot-80b7b37c63a587258b27e4f87e150936680badff.zip
skiboot-80b7b37c63a587258b27e4f87e150936680badff.tar.gz
skiboot-80b7b37c63a587258b27e4f87e150936680badff.tar.bz2
init: Fix starting stripped kernel
Currently if we try to run a raw/stripped binary kernel (ie. without the elf header) we crash with: [ 0.008757768,5] INIT: Waiting for kernel... [ 0.008762937,5] INIT: platform wait for kernel load failed [ 0.008768171,5] INIT: Assuming kernel at 0x20000000 [ 0.008779241,3] INIT: ELF header not found. Assuming raw binary. [ 0.017047348,5] INIT: Starting kernel at 0x0, fdt at 0x3044b230 14339 bytes [ 0.017054251,0] FATAL: Kernel is zeros, can't execute! [ 0.017059054,0] Assert fail: core/init.c:590:0 [ 0.017065371,0] Aborting! This is because we haven't set kernel_entry correctly in this path. This fixes it. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Diffstat (limited to 'core/init.c')
-rw-r--r--core/init.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/core/init.c b/core/init.c
index a7e70c9..262ac5f 100644
--- a/core/init.c
+++ b/core/init.c
@@ -394,6 +394,7 @@ static bool load_kernel(void)
KERNEL_LOAD_BASE);
/* Hack for STB in Mambo, assume at least 4kb in mem */
kernel_size = SECURE_BOOT_HEADERS_SIZE;
+ kernel_entry = (uint64_t)KERNEL_LOAD_BASE;
}
if (stb_is_container(KERNEL_LOAD_BASE, kernel_size)) {
stb_container = KERNEL_LOAD_BASE;