Hi Gerd, Daniel,

Sorry for the late reply.

On 6/10/25 2:47 PM, Gerd Hoffmann wrote:
   Hi,

$ qemu-system-aarch64  -machine virt -cpu max -device ati-vga
qemu-system-aarch64: -device ati-vga: failed to find romfile "vgabios-ati.bin"
$ qemu-system-aarch64  -machine virt -cpu max -device cirrus-vga
qemu-system-aarch64: -device cirrus-vga: failed to find romfile 
"vgabios-cirrus.bin"
$ qemu-system-aarch64  -machine virt -cpu max -device VGA
qemu-system-aarch64: -device VGA: failed to find romfile "vgabios-stdvga.bin"

Perhaps some of these devices are non-functional for other
reasons ?

Anything with pci memory bars is problematic on arm (which is one of the
reasons why ramfb exists in the first place).

None the less if the device is built for non-x86 targets, and
the ROM files contain x86-only code that is to be executed by
SeaBIOS only, then conceptually this fix should apply to all
devices use a VGA BIOS ROM, not just ramfb.

Note that non-x86 drivers for some of these devices exist, we have at
least roms/QemuMacDrivers which includes a driver for (IIRC) stdvga.

The ipxe roms are x86-only too btw.  We could make them multi-arch at
least for EFI platforms, but given that edk2 ships a virtio-net driver
and the recently added EFI archs (aarch64, riscv64, loongarch64) are all
younger than virtio-net there is little reason to do so.

If we're introducing a property to control this usage, then
we should fix all devices at once, so we don't need to add
separate properties for other devices in future.

All pci devices already have a romfile property.  So for most devices
this is a matter of setting this property via machine compat properties.

ramfb is a bit different here because it is not a PCI device, so we
can't control things with the existing property and need a new one.

So I guess I don't need to add property to all these devices and keep the current code is fine?

Thanks,
Shaoqin


take care,
   Gerd


--
Shaoqin


Reply via email to