diff options
author | Alistair Francis | 2019-01-24 18:37:47 +0100 |
---|---|---|
committer | Palmer Dabbelt | 2019-02-12 00:56:22 +0100 |
commit | 40e46e516d90c2dfe8e8de3741c1c65f1b526502 (patch) | |
tree | e2138826726c02c175fbc110d63f5653bb5902a2 /linux-user/strace.c | |
parent | target/riscv: fix counter-enable checks in ctr() (diff) | |
download | qemu-40e46e516d90c2dfe8e8de3741c1c65f1b526502.tar.gz qemu-40e46e516d90c2dfe8e8de3741c1c65f1b526502.tar.xz qemu-40e46e516d90c2dfe8e8de3741c1c65f1b526502.zip |
riscv: Ensure the kernel start address is correctly cast
Cast the kernel start address to the target bit length.
This ensures that we calculate the initrd offset to a valid address for
the architecture.
Steps to reproduce the original problem (reported by Alex):
Build U-Boot for the virt machine for riscv32. Then run it with
$ qemu-system-riscv32 -M virt -kernel u-boot -nographic -initrd <a file>
You can find the initrd address with
U-Boot# fdt addr $fdtcontroladdr
U-Boot# fdt ls /chosen
Then take a peek at that address:
U-Boot# md.b <addr>
and you will see that there is nothing there without this patch. The
reason is that the binary was loaded to a negative address.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Suggested-by: Alexander Graf <agraf@suse.de>
Reported-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'linux-user/strace.c')
0 files changed, 0 insertions, 0 deletions