Bhyve supports two types of fwcfg interfaces: 'bhyve' and 'qemu'. The default one is 'bhyve', but it's very limited, and it only reports the CPU count to the guest firmware. So switch to the more feature-rich and popular 'qemu' interface. As this change is unconditional for every domain, it's important to note the support status. This feature is supported by bhyve in FreeBSD 13.x releases starting with 13.3-RELEASE, and by every major release after that. So it covers every currently supported FreeBSD release and even provides a fairly good margin for the outdated releases. Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com> --- src/bhyve/bhyve_command.c | 1 + .../x86_64/bhyvexml2argv-addr-non-isa-controller-on-slot-1.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-firmware-efi.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-numa.args | 2 +- .../bhyvexml2argv-uefi-nvram-template-and-source-set.args | 2 +- .../x86_64/bhyvexml2argv-uefi-nvram-template-set.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-autoport.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-password.args | 2 +- .../bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-resolution.args | 2 +- .../bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-io.args | 2 +- .../bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-off.args | 2 +- .../bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-on.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait-no.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait.args | 2 +- tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc.args | 2 +- 17 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index f0a87cffea..ba7e7e29cb 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -1245,6 +1245,7 @@ virBhyveProcessBuildBhyveCmd(struct _bhyveConn *driver, virDomainDef *def, virBufferAsprintf(&buf, "bootrom,%s", def->os.loader->path); if (def->os.loader->nvram && def->os.loader->nvram->path) virBufferAsprintf(&buf, ",%s", def->os.loader->nvram->path); + virBufferAddStr(&buf, ",fwcfg=qemu"); virCommandAddArgList(cmd, "-l", virBufferCurrentContent(&buf), NULL); } else { diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-addr-non-isa-controller-on-slot-1.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-addr-non-isa-controller-on-slot-1.args index 8517c0d06a..290afc988d 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-addr-non-isa-controller-on-slot-1.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-addr-non-isa-controller-on-slot-1.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 2:0,lpc \ -s 3:0,ahci,hd:/tmp/freebsd.img \ -s 1:0,virtio-net,faketapdev,mac=52:54:00:b9:94:02 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-firmware-efi.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-firmware-efi.args index 16b9c50535..b8d9c9b17a 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-firmware-efi.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-firmware-efi.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,fakefirmwaredir/BHYVE_UEFI.fd,fakenvramdir/bhyve_VARS.fd \ +-l bootrom,fakefirmwaredir/BHYVE_UEFI.fd,fakenvramdir/bhyve_VARS.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-numa.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-numa.args index 15efd1c357..00dc61551b 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-numa.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-numa.args @@ -7,7 +7,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,fakefirmwaredir/BHYVE_UEFI.fd,fakenvramdir/bhyve_VARS.fd \ +-l bootrom,fakefirmwaredir/BHYVE_UEFI.fd,fakenvramdir/bhyve_VARS.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:b9:94:02 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-and-source-set.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-and-source-set.args index 05a9e8df2c..87df1d82e5 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-and-source-set.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-and-source-set.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd,/path/to/nvram/guest_VARS.fd \ +-l bootrom,/path/to/test.fd,/path/to/nvram/guest_VARS.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-set.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-set.args index 0d367e99f1..89cdb831eb 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-set.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram-template-set.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd,fakenvramdir/bhyve_VARS.fd \ +-l bootrom,/path/to/test.fd,fakenvramdir/bhyve_VARS.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram.args index 0d367e99f1..89cdb831eb 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi-nvram.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd,fakenvramdir/bhyve_VARS.fd \ +-l bootrom,/path/to/test.fd,fakenvramdir/bhyve_VARS.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi.args index 479712967d..d7e0fc534a 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-uefi.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-autoport.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-autoport.args index 3991f9fc16..e094952962 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-autoport.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-autoport.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-password.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-password.args index dfd3b0a285..8a257e3c48 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-password.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-password.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-resolution.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-resolution.args index 52cae37f76..18833b0538 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-resolution.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-resolution.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,fbuf,tcp=127.0.0.1:5904,w=1920,h=1080 \ bhyve diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-io.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-io.args index 80e2bd7223..d15683cb5b 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-io.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-io.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-off.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-off.args index 1975fdc4d7..09fad5a4e2 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-off.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-off.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-on.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-on.args index e62dfff239..7e649472e6 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-on.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-vgaconf-on.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait-no.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait-no.args index 049e65227d..11d8ef0c72 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait-no.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait-no.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait.args index 4394bdfb4b..352102c161 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc-wait.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ diff --git a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc.args b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc.args index 049e65227d..11d8ef0c72 100644 --- a/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc.args +++ b/tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc.args @@ -5,7 +5,7 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --l bootrom,/path/to/test.fd \ +-l bootrom,/path/to/test.fd,fwcfg=qemu \ -s 1:0,lpc \ -s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ -- 2.55.0