mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
arm: fix arm kernel boot for non zero start addr
Booting an arm kernel has been broken a while when booting from non zero start address. This is due to the order of events: board init loads the kernel and sets register 15 to the start address and then qemu_system_reset reset the cpu making register 15 zero again. This patch fixes the usage of the register 15 start address trick in combination with arm_load_kernel. Signed-off-by: Lars Munch <lars@segv.dk> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
0f89cc7b6c
commit
e03c22a98c
9 changed files with 1 additions and 30 deletions
|
@ -195,15 +195,10 @@ static void sx1_init(ram_addr_t ram_size,
|
|||
|
||||
/* Load the kernel. */
|
||||
if (kernel_filename) {
|
||||
/* Start at bootloader. */
|
||||
cpu->env->regs[15] = sx1_binfo.loader_start;
|
||||
|
||||
sx1_binfo.kernel_filename = kernel_filename;
|
||||
sx1_binfo.kernel_cmdline = kernel_cmdline;
|
||||
sx1_binfo.initrd_filename = initrd_filename;
|
||||
arm_load_kernel(cpu->env, &sx1_binfo);
|
||||
} else {
|
||||
cpu->env->regs[15] = 0x00000000;
|
||||
}
|
||||
|
||||
/* TODO: fix next line */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue