qemu-system-riscv64: Some ROM regions are overlapping When memory set <= 16
Host environment
- Operating system: Archlinux
- OS/kernel version: Linux 5.17.3-arch1-1 #1 SMP PREEMPT
- Architecture: x86
- QEMU flavor: qemu-system-riscv64
- QEMU version: QEMU emulator version 6.2.94 (v7.0.0-rc4) (built from master branch)
- QEMU command line:
qemu-system-riscv64 --nographic -machine virt -m 16
Emulated/Virtualized environment
- Operating system: none
- OS/kernel version: none
- Architecture: risc-v
Description of problem
Steps to reproduce
- Build the qemu
- run ./build/riscv64-softmmu/qemu-system-riscv64 --nographic -machine virt -m 16
- got error message:
qemu-system-riscv64: Some ROM regions are overlapping
These ROM regions might have been loaded by direct user request or by default.
They could be BIOS/firmware images, a guest kernel, initrd or some other file loaded into guest memory.
Check whether you intended to load all this guest code, and whether it has been built to load to the correct addresses.
The following two regions overlap (in the memory address space):
  /home/shiroko/Developments/qemu/build/pc-bios/opensbi-riscv64-generic-fw_dynamic.bin (addresses 0x0000000080000000 - 0x0000000080019b50)
  fdt (addresses 0x0000000080000000 - 0x0000000080100000)Additional information
Using ./build/riscv64-softmmu/qemu-system-riscv64 --nographic -machine virt -m 17 could bootup and seen OpenSBI messages.
This problem appears on qemu-system-riscv32 too.
Edited  by Shiroko