On the normal boot path (which is when PciHostBridgeDxe runs), the PCDs
have been calculated; report the 64-bit PCI host aperture to
PciHostBridgeDxe.
In the Ia32 build, the PCD values (zeros) come directly from the DEC file,
and this patch makes no difference.
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
Cc: Thomas Lamprecht <t.lamprecht@proxmox.com>
Ref: https://github.com/tianocore/edk2/issues/59
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
RootBus->MemAbove4G.Base = 0;\r
RootBus->MemAbove4G.Limit = 0;\r
\r
+ if (PcdGet64 (PcdPciMmio64Size) > 0) {\r
+ RootBus->AllocationAttributes |= EFI_PCI_HOST_BRIDGE_MEM64_DECODE;\r
+ RootBus->MemAbove4G.Base = PcdGet64 (PcdPciMmio64Base);\r
+ RootBus->MemAbove4G.Limit = PcdGet64 (PcdPciMmio64Base) +\r
+ (PcdGet64 (PcdPciMmio64Size) - 1);\r
+ }\r
+\r
RootBus->Bus.Base = RootBusNumber;\r
RootBus->Bus.Limit = MaxSubBusNumber;\r
RootBus->Io.Base = PcdGet64 (PcdPciIoBase);\r
gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize\r
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base\r
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size\r
+ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base\r
+ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size\r
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId\r