Maybe you can use EFI_PCI_HOT_PLUG_INIT_PROTOCOL to reserve some resource. See MdePkg\Include\Protocol\PciHotPlugInit.h
Thank you Yao Jiewen > -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Zhoujian (jay) > Sent: Thursday, December 20, 2018 7:34 PM > To: [email protected] > Cc: Huangweidong (C) <[email protected]>; liujunjie (A) > <[email protected]>; wangxin (U) <[email protected]>; > wujing (O) <[email protected]>; dengkai (A) <[email protected]> > Subject: [edk2] Question about hotplugging NIC devices to an empty > pci-bridge > > 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 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

