Hi all, The issue occurs when I started a virtual machine in UEFI way by libvirt on qemu-kvm platform, the vm is configured with 8 pci-bridges on root bus0. I hotplug a device like virtual nic to an empty pci-bridge which has no device connected. Login the vm, I can see the device by "lspci"", but it didn't show by "ifconfig -a". Dmesg shows like below: pci 0000:04:01.0: BAR 0: no space for [mem size 0x00010000 64bit pref] pci 0000:04:01.0: BAR 0: failed to assign [mem size 0x00010000 64bit pref] pci 0000:04:01.0: BAR 3: no space for [mem size 0x00004000 64bit pref] pci 0000:04:01.0: BAR 3: failed to assign [mem size 0x00004000 64bit pref]
Reboot the vm, everything turns back to normal and I can see the new hotplugged nic by "ifconfig -a". Use the OVMF compiling from latest edk2 source code, the same problem arises. So, my questions are: 1) the generic PCI bus driver in edk2 does not allocate IO and/or MMIO for a bridge if there is no device behind the bridge that consume that kind of resource? 2) What's the purpose of this strategy? 3) Why don't allocate resource to all bridges like seabios? 4) Is there any switch for me to turn off this constraint so that every pci-bridge including empty ones can be assigned IO and memory window? Otherwise, each time I hotplug a device to empty pci-bridge, a reboot operation should be implemented to use the device? Any help will be appreciated, Thanks! _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

