diff --git a/BootloaderCorePkg/BootloaderCorePkg.dec b/BootloaderCorePkg/BootloaderCorePkg.dec index acb13c54..c9d7786e 100644 --- a/BootloaderCorePkg/BootloaderCorePkg.dec +++ b/BootloaderCorePkg/BootloaderCorePkg.dec @@ -202,3 +202,4 @@ gPlatformModuleTokenSpaceGuid.PcdAriSupport | FALSE | BOOLEAN | 0x20000211 gPlatformModuleTokenSpaceGuid.PcdSrIovSupport | FALSE | BOOLEAN | 0x20000212 gPlatformModuleTokenSpaceGuid.PcdEnableSetup | FALSE | BOOLEAN | 0x20000213 + gPlatformModuleTokenSpaceGuid.PcdLegacyEfSegmentEnabled | TRUE | BOOLEAN | 0x20000214 diff --git a/BootloaderCorePkg/BootloaderCorePkg.dsc b/BootloaderCorePkg/BootloaderCorePkg.dsc index 79592686..3a06a0ce 100644 --- a/BootloaderCorePkg/BootloaderCorePkg.dsc +++ b/BootloaderCorePkg/BootloaderCorePkg.dsc @@ -310,6 +310,7 @@ gPlatformModuleTokenSpaceGuid.PcdLinuxPayloadEnabled | $(ENABLE_LINUX_PAYLOAD) gPlatformCommonLibTokenSpaceGuid.PcdContainerBootEnabled| $(ENABLE_CONTAINER_BOOT) gPayloadTokenSpaceGuid.PcdCsmeUpdateEnabled | $(ENABLE_CSME_UPDATE) + gPlatformModuleTokenSpaceGuid.PcdLegacyEfSegmentEnabled | $(ENABLE_LEGACY_EF_SEG) gPlatformCommonLibTokenSpaceGuid.PcdEmmcHs400SupportEnabled | $(ENABLE_EMMC_HS400) gPlatformCommonLibTokenSpaceGuid.PcdPreOsCheckerEnabled | $(ENABLE_PRE_OS_CHECKER) gPlatformCommonLibTokenSpaceGuid.PcdDmaProtectionEnabled | $(ENABLE_DMA_PROTECTION) diff --git a/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.c b/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.c index d13f4a0a..e4364e27 100644 --- a/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.c +++ b/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.c @@ -676,11 +676,14 @@ AcpiInit ( Rsdp->ExtendedChecksum = CalculateCheckSum8 ((UINT8 *)Rsdp, Rsdp->Length); *AcpiMemBase = (UINT32)(UINTN)Current; + Status = PcdSet32S (PcdAcpiTablesRsdp, (UINT32)(UINTN)Rsdp); + // // Keep a copy at F segment so that non-UEFI OS will find ACPI tables // - Status = PcdSet32S (PcdAcpiTablesRsdp, (UINT32)(UINTN)Rsdp); - CopyMem ((VOID *)0xFFF80, Rsdp, sizeof (RsdpTmp)); + if (FeaturePcdGet (PcdLegacyEfSegmentEnabled)) { + CopyMem ((VOID *)0xFFF80, Rsdp, sizeof (RsdpTmp)); + } // Update ACPI update service so that payload can have opportunity to update ACPI tables PlatformService = (PLATFORM_SERVICE *) GetServiceBySignature (PLATFORM_SERVICE_SIGNATURE); diff --git a/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.inf b/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.inf index bfe9337b..e947fd08 100644 --- a/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.inf +++ b/BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.inf @@ -56,3 +56,4 @@ gPlatformModuleTokenSpaceGuid.PcdAcpiGnvsAddress gPlatformModuleTokenSpaceGuid.PcdLoaderAcpiReclaimSize gPlatformCommonLibTokenSpaceGuid.PcdLowestSupportedFwVer + gPlatformModuleTokenSpaceGuid.PcdLegacyEfSegmentEnabled diff --git a/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.c b/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.c index b484d536..2941e2a9 100644 --- a/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.c +++ b/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.c @@ -186,7 +186,9 @@ FinalizeSmbios ( // // Keep a copy in legacy F segment so that non-UEFI can locate it // - CopyMem ((VOID *)0xFFF60, SmbiosEntry, sizeof (SMBIOS_TABLE_ENTRY_POINT)); + if (FeaturePcdGet (PcdLegacyEfSegmentEnabled)) { + CopyMem ((VOID *)0xFFF60, SmbiosEntry, sizeof (SMBIOS_TABLE_ENTRY_POINT)); + } return Status; } diff --git a/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.inf b/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.inf index e4d84233..cb6f6fe1 100644 --- a/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.inf +++ b/BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.inf @@ -42,6 +42,6 @@ gPlatformModuleTokenSpaceGuid.PcdSmbiosTablesSize gPlatformModuleTokenSpaceGuid.PcdSmbiosStringsPtr gPlatformModuleTokenSpaceGuid.PcdSmbiosStringsCnt + gPlatformModuleTokenSpaceGuid.PcdLegacyEfSegmentEnabled -[Pcd] diff --git a/BuildLoader.py b/BuildLoader.py index f52d7cad..57601764 100755 --- a/BuildLoader.py +++ b/BuildLoader.py @@ -216,6 +216,7 @@ class BaseBoard(object): self.ENABLE_SBL_SETUP = 0 self.ENABLE_PAYLOD_MODULE = 0 self.ENABLE_FAST_BOOT = 0 + self.ENABLE_LEGACY_EF_SEG = 1 self.SUPPORT_ARI = 0 self.SUPPORT_SR_IOV = 0