ARM bootloader does not set r0 to 0
Bug #1572329 reported by
Sylvain
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
The link register is not properly set up in the ARM bootloader code, leading to the instruction which sets r0 to 0x00000000 to be skipped.
As a consequence, r0 may hold the value leaked from the board setup code.
For instance, if using arm_write_
Attached is a patch to fix the issue.
Please include Sylvain Garrigues <email address hidden> in the commit log.
description: | updated |
summary: |
- ARM emulation: r0 != 0 on boot + ARM bootloader does not set r0 to 0 |
To post a comment you must log in.
On 19 April 2016 at 23:34, Sylvain <email address hidden> wrote: qemu-system- arm -M raspi2 -m 1024 -smp 4 -kernel
> # arm-softmmu/
> kernel.bin -serial stdio -dtb rpi2.dtb
>
> My code shows r0 = 0x31 while it should be 0.
Hi. Thanks for this bug report and the patch. In order wiki.qemu. org/Contribute/ SubmitAPatch# Patch_emails_ must_include_ a_Signed- off-by: _line
for us to be able to use your patch, we'll need you to
provide a signed-off-by line, which tells us you have
the legal right to submit it and are happy for us to
include it in QEMU under QEMU's licensing terms.
(You can look at
http://
if you want more details.)
You can provide a signoff just by replying to this email
with a line which reads
"Signed-off-by: Your Name <your.email@here>".
A couple of notes: this bug only affects boards which
have a write_board_setup function, which means only
highbank/midway, raspi2, and xilinx_zynq; that's probably
why we didn't spot it earlier.
thanks
-- PMM