]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiPayloadPkg: Store the size of the MMCONF window
authorPatrick Rudolph <patrick.rudolph@9elements.com>
Mon, 11 May 2020 12:55:39 +0000 (14:55 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 16 Sep 2020 06:36:18 +0000 (06:36 +0000)
Store the real size of the Pcie Memory Mapped Address Space.
This change is necessary to support variable size of MMCONF spaces.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Marcello Sylvester Bauer <marcello.bauer@9elements.com>
Cc: Patrick Rudolph <patrick.rudolph@9elements.com>
Cc: Christian Walter <christian.walter@9elements.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>
UefiPayloadPkg/BlSupportPei/BlSupportPei.c
UefiPayloadPkg/Include/Guid/AcpiBoardInfoGuid.h

index 22972453117aae045b66e20a2b10d2b99b35fa7e..a7e99f9ec6de31078c2dc73beba717366c5b00e0 100644 (file)
@@ -240,8 +240,10 @@ Done:
   if (MmCfgHdr != NULL) {\r
     MmCfgBase = (EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE *)((UINT8*) MmCfgHdr + sizeof (*MmCfgHdr));\r
     AcpiBoardInfo->PcieBaseAddress = MmCfgBase->BaseAddress;\r
+    AcpiBoardInfo->PcieBaseSize = (MmCfgBase->EndBusNumber + 1 - MmCfgBase->StartBusNumber) * 4096 * 32 * 8;\r
   } else {\r
     AcpiBoardInfo->PcieBaseAddress = 0;\r
+    AcpiBoardInfo->PcieBaseSize = 0;\r
   }\r
   DEBUG ((DEBUG_INFO, "PmCtrl  Reg 0x%lx\n",  AcpiBoardInfo->PmCtrlRegBase));\r
   DEBUG ((DEBUG_INFO, "PmTimer Reg 0x%lx\n",  AcpiBoardInfo->PmTimerRegBase));\r
@@ -250,6 +252,7 @@ Done:
   DEBUG ((DEBUG_INFO, "PmEvt   Reg 0x%lx\n",  AcpiBoardInfo->PmEvtBase));\r
   DEBUG ((DEBUG_INFO, "PmGpeEn Reg 0x%lx\n",  AcpiBoardInfo->PmGpeEnBase));\r
   DEBUG ((DEBUG_INFO, "PcieBaseAddr 0x%lx\n", AcpiBoardInfo->PcieBaseAddress));\r
+  DEBUG ((DEBUG_INFO, "PcieBaseSize 0x%lx\n", AcpiBoardInfo->PcieBaseSize));\r
 \r
   //\r
   // Verify values for proper operation\r
index fe783fe5e14c0c5e50b4db97de1095f16170fa0f..043b748ae4a9b9745ccf1a605d9d61cd341ce11d 100644 (file)
@@ -24,6 +24,7 @@ typedef struct {
   UINT64             PmTimerRegBase;\r
   UINT64             ResetRegAddress;\r
   UINT64             PcieBaseAddress;\r
+  UINT64             PcieBaseSize;\r
 } ACPI_BOARD_INFO;\r
 \r
 #endif\r