The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now. If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Or mark it as "Fix Released" if the problem has been solved with a newer version of QEMU already. Thank you and sorry for the inconvenience.
** Changed in: qemu Status: Confirmed => Incomplete ** Tags added: riscv -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1814343 Title: Initrd not loaded on riscv32 Status in QEMU: Incomplete Bug description: I attempted to run qemu with a ram disk. However, when reading the contents of the disk from within the VM I only get back zeros. I was able to trace the issue to a mismatch of expectations on line 93 of hw/riscv/virt.c. Specifically, when running in 32-bit mode the value of kernel_entry is sign extended to 64-bits, but load_image_targphys expects the start address to not be sign extended. Straw man patch (works for 32-bit but would probably break 64-bit VMs?): diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index e7f0716fb6..32216f993c 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -90,7 +90,7 @@ static hwaddr load_initrd(const char *filename, uint64_t mem_size, * halfway into RAM, and for boards with 256MB of RAM or more we put * the initrd at 128MB. */ - *start = kernel_entry + MIN(mem_size / 2, 128 * MiB); + *start = (kernel_entry & 0xffffffff) + MIN(mem_size / 2, 128 * MiB); size = load_ramdisk(filename, *start, mem_size - *start); if (size == -1) { Run command: $ qemu/build/riscv32-softmmu/qemu-system-riscv32 -machine virt -kernel mykernel.elf -nographic -initrd payload Commit hash: 3a183e330dbd7dbcac3841737ac874979552cca2 To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1814343/+subscriptions