Hi Jiewen, Thank for your quick response, I'll have a try.
Regards, Jay Zhou > -----Original Message----- > From: Yao, Jiewen [mailto:[email protected]] > Sent: Thursday, December 20, 2018 8:09 PM > To: Zhoujian (jay) <[email protected]>; [email protected] > Cc: Huangweidong (C) <[email protected]>; liujunjie (A) > <[email protected]>; wangxin (U) <[email protected]>; wujing (O) > <[email protected]>; dengkai (A) <[email protected]> > Subject: RE: Question about hotplugging NIC devices to an empty pci-bridge > > 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

