[PATCH 1/4] conf: add loader type 'none'

Daniel Henrique Barboza dbarboza at ventanamicro.com
Wed Mar 22 13:36:20 UTC 2023



On 3/22/23 10:05, Daniel P. Berrangé wrote:
> On Wed, Mar 22, 2023 at 06:10:18AM -0300, Daniel Henrique Barboza wrote:
>> Today, trying to boot a RISC-V Fedora Rawhide image in a RISC-V QEMU domain
>> results in the following error:
>>
>> ====
>> error: Failed to start domain 'riscv-fedora'
>> error: internal error: process exited while connecting to monitor:
>> 2023-03-20T17:31:02.650862Z 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.
>> ====
>>
>> This happens because the default RISC-V QEMU firmware, OpenSBI, is
>> always loaded unless "-bios none" is passed in the command line, and the
>> Fedora Rawhide guest kernel has its own ROM. Other machines such as
>> PPC64 'pseries' shows the same behavior: the default firmware is always
>> loaded unless specified otherwise with the '-bios' option.
> 
> What happens when these kernels are used on bare metal ? Presumably
> bare metal always has firmware, and the kernels successfuly overwrite
> it ? If so, what makes QEMU special such that it breaks ?

I'm not sure if the OS overwrites the firmware when running bare metal. Usually
they provide different OS images for QEMU/libvirt and bare metal systems, probably
to account for these differences. Baking the firmware in the kernel like Fedora
Rawhide is doing was important a few years ago when RISC-V QEMU wasn't loading
the firmware by default, but now it's getting in the way.

All this said, having a look at the recently updated Fedora for RISC-V wiki, the
instructions for booting with libvirt and QEMU are different. libvirt [1] is using
the '-bios none' attribute with 'virt-install' + a Fedora Rawhide image, but
QEMU instructions [2] doesn't use '-bios none' and it's using Fedora 37.

At first I don't see any particular reason of why this Fedora 37 image would work
on QEMU and not on libvirt. So what t I'll do now is do some testings with libvirt
and Fedora 37. If it works then this series becomes way less important.


Thanks,


Daniel


[1] https://fedoraproject.org/wiki/Architectures/RISC-V/Installing#Boot_with_libvirt
[2] https://fedoraproject.org/wiki/Architectures/RISC-V/Installing#Boot_under_QEMU




> 
> 
> With regards,
> Daniel



More information about the libvir-list mailing list