Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Laszlo Ersek feca17fa4b OvmfPkg: QemuBootOrderLib: parse OFW device path nodes of PCI bridges
When the Q35 machine type(s) of QEMU are used with libvirt, libvirt tends
to place some devices behind PCI bridges. This is then reflected in the
"bootorder" fw_cfg file. For example:

  /pci@i0cf8/pci-bridge@1e/pci-bridge@1/scsi@5/disk@0,0
  /pci@i0cf8/pci-bridge@1e/pci-bridge@1/scsi@3/channel@0/disk@0,0

As yet QemuBootOrderLib doesn't support such OFW device paths.

Add code that translates a sequence of pci-bridge nodes.

In practice libvirt seems to insert two such nodes (*), hence increment
EXAMINED_OFW_NODES with the same number.

(* Background, paraphrasing Laine Stump's words:

When the machine type is Q35, we create a dmi-to-pci bridge coming off of
the pcie root controller, and a pci-to-pci bridge coming off of that, then
attach most devices to the pci-to-pci bridge. This is done because you
can't hotplug into pcie-root, can't (or at least shouldn't) plug a
pci-to-pci bridge into pcie-root (so the next one has to be
dmi-to-pci-bridge), and can't hotplug into dmi-to-pci-bridge (so you need
to have a pci-to-pci bridge).)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17385 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-08 18:12:44 +00:00
AppPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ArmPkg ArmPkg: fix pointer indirection bug in BdsFirmwareVolumeLoadImage() 2015-05-07 15:37:10 +00:00
ArmPlatformPkg ArmVExpressPkg: restrict ArmVExpressSysConfigLib to SEC and DXE_DRIVER 2015-05-08 12:08:24 +00:00
BaseTools BaseTools: Fix build fail issue. 2015-05-06 12:52:16 +00:00
BeagleBoardPkg ArmPlatformPkg: Use LzmaDecompress support from MdeModulePkg 2015-04-08 19:58:50 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg Coreboot*Pkg/Contributions.txt: Update example email address 2015-04-14 00:23:29 +00:00
CorebootPayloadPkg CorebootPayloadPkg: Use the new PCDs defined in MdePkg. 2015-05-06 04:45:08 +00:00
CryptoPkg Upgrade to OpenSSL-0.9.8zf (released on 19-MAR-2015). 2015-03-25 08:13:32 +00:00
DuetPkg DuetPkg: Use the new PCDs defined in MdePkg. 2015-05-06 03:26:49 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Use the new PCDs defined in MdePkg. 2015-05-06 03:24:35 +00:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg: Remove dependency on TimerLib 2015-05-06 11:15:44 +00:00
EmulatorPkg EmulatorPkg: Use the new PCDs defined in MdePkg. 2015-05-06 03:28:12 +00:00
FatBinPkg FatBinPkg: Update ARM and AArch64 binaries 2015-02-27 17:27:42 +00:00
IntelFrameworkModulePkg Remove obsolete PCDs (new ones are moved to MdePkg and MdeModulePkg) 2015-05-06 04:51:19 +00:00
IntelFrameworkPkg IntelFrameworkPkg: Fix a non ASCII char in LegacyBios.h. 2015-04-16 06:50:38 +00:00
IntelFspPkg enhancement to tool to generate the comments along with offsets in the .h file. 2015-05-01 23:09:53 +00:00
IntelFspWrapperPkg IntelFspWrapperPkg: Update PeiFspHobProcessLibSample to consume PI CapsulePpi 2015-05-08 07:44:30 +00:00
MdeModulePkg MdeModulePkg: Update FirmwarePerformanceDataTableDxe for LegacyBoot 2015-05-08 07:44:59 +00:00
MdePkg MdePkg: Update Usb2Hc Isochronous related functions' description 2015-05-08 14:19:04 +00:00
NetworkPkg Coding style change in UefiPxeBcDxe.inf 2015-05-08 05:59:35 +00:00
Nt32Pkg Nt32Pkg: Use the new PCDs defined in MdePkg and MdeModulePkg. 2015-05-06 03:23:58 +00:00
Omap35xxPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
OptionRomPkg Add IPV6 support from UNDI 2015-04-30 02:57:10 +00:00
OvmfPkg OvmfPkg: QemuBootOrderLib: parse OFW device path nodes of PCI bridges 2015-05-08 18:12:44 +00:00
PcAtChipsetPkg PcAtChipsetPkg: Update BaseAcpiTimerLib 2015-02-28 05:34:38 +00:00
PerformancePkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
SecurityPkg Hash2 driver to [Components.IA32, Components.X64, Components.IPF] section. 2015-05-08 07:25:06 +00:00
ShellBinPkg ShellBinPkg: Arm/AArch64 Shell binary update. 2015-02-27 17:54:29 +00:00
ShellPkg ShellPkg: Update CopyRight to 2015 2015-04-29 08:11:45 +00:00
SourceLevelDebugPkg SourceLevelDebugPkg/DebugAgent: Support IA32 processors without DE or FXSAVE/FXRESTOR 2015-04-27 19:53:36 +00:00
StdLib */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
StdLibPrivateInternalFiles */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UefiCpuPkg UefiCpuPkg/CpuExceptionHandlerLib: Support IA32 processors without DE or FXSAVE/FXRESTOR 2015-04-27 19:54:52 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Sync the branch changes to trunk. 2015-05-08 03:13:37 +00:00
Vlv2TbltDevicePkg Sync the branch changes to trunk. 2015-05-08 03:13:37 +00:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
Edk2Setup.bat Updated version, missed the last two commits and to add the SVN Revision property (last part of the version value). 2014-08-22 16:08:47 +00:00
Maintainers.txt Maintainers.txt: update SecurityPkg maintainer 2015-04-21 07:58:45 +00:00
edksetup.bat Update edksetup.bat to support Microsoft Visual Studio 2013 when building the Nt32Pkg emulation platform (enabled using the --nt32 flag). 2014-10-30 17:09:25 +00:00
edksetup.sh edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout 2014-07-28 17:37:40 +00:00