Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Laszlo Ersek 1a1d637695 ArmVirtualizationPkg/PciHostBridgeDxe: skip 0 AddrLen in SubmitResources()
According to Volume 5 of the PI spec, 10.8.2 PCI Host Bridge Resource
Allocation Protocol, SubmitResources(),

  It is considered an error if no resource requests are submitted for a
  PCI root bridge. If a PCI root bridge does not require any resources, a
  zero-length resource request must explicitly be submitted.

Under MdeModulePkg/Bus/Pci/PciBusDxe/, we have:

  PciHostBridgeResourceAllocator()                   [PciLib.c]
    ConstructAcpiResourceRequestor(..., &AcpiConfig) [PciEnumerator.c]
    PciResAlloc->SubmitResources(..., &AcpiConfig)
    ASSERT_EFI_ERROR ()

If ConstructAcpiResourceRequestor() finds no resources to request (for
example because no PCI devices are on the root bridge), it places a
zero-length EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR followed by an
EFI_ACPI_END_TAG_DESCRIPTOR in "AcpiConfig"; satisfying the PI spec.

However, PciHostBridgeDxe's SubmitResources() function does not expect
such input; the following part of the code rejects it:

        switch (Ptr->ResType) {

        case 0:

          //
          // Check invalid Address Sapce Granularity
          //
          if (Ptr->AddrSpaceGranularity != 32) {
            return EFI_INVALID_PARAMETER;
          }

Skip EFI_ACPI_ADDRESS_SPACE_DESCRIPTORs with zero AddrLen early. Also,
allow PciHostBridgeResourceAllocator() to proceed to the AllocateResources
phase by setting "ResourceSubmited" to TRUE.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Olivier Martin <Olivier.martin@arm.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16907 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-23 16:03:56 +00:00
AppPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ArmPkg ArmPkg/ArmGic: enable ARE bit before driving GICv3 in native mode 2015-02-16 10:27:02 +00:00
ArmPlatformPkg ArmVirtualizationPkg/PciHostBridgeDxe: skip 0 AddrLen in SubmitResources() 2015-02-23 16:03:56 +00:00
BaseTools BaseTools/GenFw: Set the PE/COFF attribute BaseOfData with the address of the first '.data' section 2015-02-11 08:20:17 +00:00
BeagleBoardPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CryptoPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
DuetPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkCompatibilityPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +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 */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmulatorPkg EmulatorPkg: Update web page and wiki urls 2015-02-05 18:25:01 +00:00
FatBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
IntelFrameworkModulePkg Remove invalid value sync action when changing value. Else later save change action will fail. 2015-02-12 08:40:16 +00:00
IntelFrameworkPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
IntelFspPkg Fix build error. 2015-02-13 06:17:23 +00:00
IntelFspWrapperPkg Fix comments format error.Fsp1.1 update. 2015-02-12 15:13:37 +00:00
MdeModulePkg MdeModulePkg: Update SMBIOS revision to 3.0. 2015-02-15 05:01:59 +00:00
MdePkg MdePkg: Add new definitions for SMBIOS 3.0. 2015-02-15 05:01:27 +00:00
NetworkPkg NetworkPkg: Code refine to avoid NULL pointer dereferenced. 2015-02-13 01:00:47 +00:00
Nt32Pkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
Omap35xxPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
OptionRomPkg OptionRomPkg: FrameBufferBltLib: drop set but not used variable 2015-02-23 16:02:21 +00:00
OvmfPkg OvmfPkg/QemuVideoDxe: enable ARM builds 2015-02-23 16:02:29 +00:00
PcAtChipsetPkg PcAtChipsetPkg/PciHostBridgeDxe: drop PciAddress, PciData 2015-02-23 16:02:39 +00:00
PerformancePkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
SecurityPkg Add the missed local variable initialization to remove the possible warning. 2015-02-05 05:37:10 +00:00
ShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ShellPkg ShellPkg/UefiShellLib: Fixed ARM compiler error 2015-02-23 11:13:58 +00:00
SourceLevelDebugPkg Use MaxPacketSize as the initial buffer size to read data. 2015-02-05 01:15:09 +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 */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Add patch-able PCD to support binary modification of MRC module. 2015-02-13 02:13:43 +00:00
Vlv2TbltDevicePkg Upgrade BIOS version to V0.78. 2015-02-13 02:14:12 +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: http://tianocore.github.io => http://www.tianocore.org 2015-02-05 18:24:33 +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