]> git.ipfire.org Git - thirdparty/qemu.git/commit
hw/arm/boot: always clear r0 when booting kernels
authorSylvain Garrigues <sylvain@sylvaingarrigues.com>
Wed, 20 Apr 2016 21:35:28 +0000 (23:35 +0200)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 21 Apr 2016 11:10:17 +0000 (12:10 +0100)
commitb4850e5ae9607f9f31932f693ca48f52619493d7
treed9e018e39bb407020c78b06b6f60bbd94f94e858
parent81d9d1867f5210412ccd262b040cf579dc32ff55
hw/arm/boot: always clear r0 when booting kernels

The 32-bit ARM Linux kernel booting ABI requires that r0 is 0
when calling the kernel image. A bug in commit 10b8ec73e610e01
meant that for boards which use the write_board_setup hook (which
means "highbank", "midway", "raspi2" and "xilinx-zynq-a9") we
were incorrectly skipping the "clear r0" instruction in the
mini-bootloader. Use the right offset in the "add lr, pc, #n"
instruction so that we return from the board-setup code to the
correct place.

Signed-off-by: Sylvain Garrigues <sylvain@sylvaingarrigues.com>
[PMM: Expanded commit message]
Cc: qemu-stable@nongnu.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/boot.c