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

Reply via email to