Skip to content

Commit

Permalink
init: Fix starting stripped kernel
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
mikey authored and stewartsmith committed Sep 27, 2018
1 parent c884f2d commit 80b7b37
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions core/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 80b7b37

Please sign in to comment.