Hi,
I want to exclusively use PXE/IPv6 when deploying a set of physical machines with some QEMU/KVM virtual machines on top.

So far, the only [hacky] way I have managed to do this is to:
1) Bring up a VM with OVMF
2) Set the wanted boot-order with PXE over IPv6 at the top
3) Save this to the NVRAM
4) Repete the above for a set of VMs with different MAC addresse
5) Keep these NVRAMs as "canned" templates (with associated fixed MACs)
4) Later use one of these NVRAM as a template for VMs with the associated MAC 

Obviously this does not scale to hundreds of VMs

Reading through the code is seems that it might be possible to disable PXE over IPv4 with
the PCD variable "IPv4PXESupport" = <one byte binary zero>.

I have tried with
    <qemu:arg value='-fw_cfg'/>
    <qemu:arg value='opt/ovmf/X-PcdIPv4PXESupport,file=/var/lib/libvirt/qemu/nvram/zero'/>

where the file is a one byte binary zero and I have verified that it shows up in /sys/firmware/qemu_fw_cfg.

linux-u7u9:/sys/firmware/qemu_fw_cfg/by_name # ls opt/ovmf/X-PcdIPv4PXESupport/
key  name  raw size
linux-u7u9:/sys/firmware/qemu_fw_cfg/by_name # cat opt/ovmf/X-PcdIPv4PXESupport/size
1
linux-u7u9:/sys/firmware/qemu_fw_cfg/by_name # od -b opt/ovmf/X-PcdIPv4PXESupport/raw
0000000 000

Is this something that should work, or is this variable compiled in ?
Are there other ways of acomplishing what I try to do ?

Thanks,

   /Per