You could try playing with the etc/pci-optionrom-exec setting.
See QEMU's -fw_cfg command line option. You'll need to pass in a
binary integer zero or binary integer one to control that setting.
I tried the pci-optionrom-exec option but it has the effect that
the screen stays black:
$dd if=/dev/zero of=/tmp/pci-optionrom-exec bs=1 count=4
$qemu-system-x86_64 -hda testimg.img -cdrom FreeNAS-11.2-BETA1.iso -boot d
-device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.0,addr=0x7 -device
(the vfio_pci device is 0000:01:00.0 is the SATA card)
There is no seabios version printed out, still the cpu is at 100%. I also
recompiled seabios 1.11 with standard qemu options and disabled
the OPTIONROM config setting. This had the same effect as when
running with pci-optionrom-exec==0 (black screen).
I then recompiled the seabios 1.11 with the standard qemu options only
copied it to /usr/lib/qemu/bios.bin and changed /usr/bin/kvm (which
libvirtd is calling at boot)
qemu-system-x86_64 -enable-kvm -bios /usr/lib/qemu/bios.bin "$@"
This gave me a workaround:
It seems like the baked in seabios 1.10 sets the SATA card into a state
that even if I start qemu with "-bios /usr/lib/qemu/bios.bin" next time it
Never using seabios 1.10 and only seabios 1.11 seems to make it work (no
Not shure what was wrong in the first place though..