audk/OvmfPkg/Library
Gary Lin da2369d21d OvmfPkg/PlatformBootManagerLib: Connect the Xen drivers before loading NvVars
When OVMF tried to load the file-based NvVars, it checked all the PCI
instances and connected the drivers to the mass storage device. However,
Xen registered its PCI device with a special class id (0xFF80), so
ConnectRecursivelyIfPciMassStorage() couldn't recognize it and skipped the
driver connecting for Xen PCI devices. In the end, the Xen block device
wasn't initialized until EfiBootManagerConnectAll() was called, and it's
already too late to load NvVars.

This commit connects the Xen drivers in ConnectRecursivelyIfPciMassStorage()
so that Xen can use the file-based NvVars.

v3:
* Introduce XenDetected() to cache the result of Xen detection instead
  of relying on PcdPciDisableBusEnumeration.

v2:
* Cosmetic changes

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-02 13:34:28 -07:00
..
AcpiTimerLib OvmfPkg: determine PMBA value dependent on host bridge device ID 2016-05-17 20:48:39 +02:00
DxePciLibI440FxQ35 OvmfPkg: add DxePciLibI440FxQ35 2016-03-10 21:28:29 +01:00
EmuVariableFvbLib OvmfPkg EMU FVB: Add 2 functions to PlatformFvbLib 2011-01-09 03:51:16 +00:00
LoadLinuxLib OvmfPkg: fix conversion specifiers in DEBUG format strings 2015-07-28 18:33:23 +00:00
LockBoxLib OvmfPkg: Install LockBox protocol in constructor of LockBoxDxeLib 2016-04-07 17:31:49 +02:00
NvVarsFileLib OvmfPkg: fix conversion specifiers in DEBUG format strings 2015-07-28 18:33:23 +00:00
PciHostBridgeLib OvmfPkg/PciHostBridgeLib: Scan for root bridges when running over Xen 2016-05-11 08:53:36 +08:00
PlatformBootManagerLib OvmfPkg/PlatformBootManagerLib: Connect the Xen drivers before loading NvVars 2016-06-02 13:34:28 -07:00
PlatformDebugLibIoPort OvmfPkg: PlatformDebugLibIoPort: fix AsciiSPrint() format string 2015-08-06 10:13:33 +00:00
PlatformFvbLibNull OvmfPkg EMU FVB: Add 2 functions to PlatformFvbLib 2011-01-09 03:51:16 +00:00
PlatformSecureLib OvmfPkg: Add custom mode setup if the Secure Boot build option is specified. 2012-04-04 17:35:06 +00:00
QemuBootOrderLib OvmfPkg, ArmVirtPkg: rename QemuNewBootOrderLib to QemuBootOrderLib 2016-05-25 12:25:28 +02:00
QemuFwCfgLib OvmfPkg: QemuFwCfgLib: avoid "variable set but not used" warning from GCC 2015-07-10 06:46:57 +00:00
ResetSystemLib OvmfPkg: determine PMBA value dependent on host bridge device ID 2016-05-17 20:48:39 +02:00
SerializeVariablesLib OvmfPkg/SerializeVariablesLib: Relax check for the read-only variable 2016-05-26 13:21:36 +02:00
SmbiosVersionLib OvmfPkg: SmbiosVersionLib: recognize SMBIOS 3.x entry point 2015-08-06 10:14:12 +00:00
SmmCpuFeaturesLib OvmfPkg: SmmCpuFeaturesLib: customize state save map format 2015-11-30 18:46:42 +00:00
VirtioLib OvmfPkg: VirtioLib: add Virtio10WriteFeatures() function 2016-04-06 19:21:50 +02:00
VirtioMmioDeviceLib OvmfPkg: VIRTIO_DEVICE_PROTOCOL: pass VRING object to SetQueueAddress() 2016-04-06 13:04:03 +02:00
XenConsoleSerialPortLib OvmfPkg XenConsoleSerialPortLib: Implement Get(Set)Control/SetAttributes 2015-11-26 08:51:34 +00:00
XenHypercallLib OvfmPkg/XenHypercallLib: add missing GCC_ASM_EXPORT to XenHypercall2 2015-12-17 17:10:59 +00:00
XenIoMmioLib OvmfPkg/XenIoMmioLib: add missing MemoryAllocationLib dependency to INF 2016-04-13 17:26:06 +02:00