Enables boards to modify the AcpiPlatform driver behaviors. Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> Cc: Chasel Chiu <chasel.c...@intel.com> Signed-off-by: Isaac Oram <isaac.w.o...@intel.com> --- Platform/Intel/WhitleyOpenBoardPkg/Include/Library/PlatformSpecificAcpiTableLib.h | 129 ++++++++++++++++++++ Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/AcpiPlatformLibSpcrNull.c | 23 ++++ Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.c | 50 ++++++++ Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.inf | 27 ++++ Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc | 1 + 5 files changed, 230 insertions(+)
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Library/PlatformSpecificAcpiTableLib.h b/Platform/Intel/WhitleyOpenBoardPkg/Include/Library/PlatformSpecificAcpiTableLib.h new file mode 100644 index 0000000000..a260703274 --- /dev/null +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Library/PlatformSpecificAcpiTableLib.h @@ -0,0 +1,129 @@ +/** @file + This library provides a set of platform only ACPI tables and functions. + + @copyright + Copyright 2012 - 2020 Intel Corporation. <BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef _PLATFORM_SPECIFIC_ACPI_TABLE_LIB_H_ +#define _PLATFORM_SPECIFIC_ACPI_TABLE_LIB_H_ + +#include <IndustryStandard/Acpi.h> +#include <Library/AcpiPlatformLib.h> + +#include <Library/BaseMemoryLib.h> +#include <Library/DevicePathLib.h> +#include <Protocol/DevicePath.h> +#include <Protocol/SerialIo.h> +#include <Protocol/SuperIo.h> +#include <Guid/GlobalVariable.h> +#include <IndustryStandard/SerialPortConsoleRedirectionTable.h> + +/** + This function will check ACPI Table is active or not active. + This allows boards to prevent publication of unused tables. + + @param Table - The table to check + + @retval EFI_SUCCESS - The Table is active. + +**/ +EFI_STATUS +PlatformAcpiReportHooksTableIsActive ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +/** + This function will patch to update platform ACPI Table information. + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - The function completed successfully. + +**/ +EFI_STATUS +PatchPlatformSpecificAcpiTableHooks ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +/** + This function will patch to update SPCR Table information. + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - The function completed successfully. + +**/ +EFI_STATUS +PatchSpcrAcpiTable ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +/** + Update the HMAT table. + + @param [in, out] Table The table to be udated. + + @retval EFI SUCCESS Procedure returned successfully. +**/ +EFI_STATUS +PatchHmatAcpiTable ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +/** + Update the PMTT ACPI table + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - Returns Success + +**/ +EFI_STATUS +PatchPlatformMemoryTopologyTable ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +/** + Update the MSCT ACPI table + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - Returns Success + +**/ +EFI_STATUS +PatchMsctAcpiTable ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +/** + + Update the MIGT ACPI table + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - Returns Success + +**/ +EFI_STATUS +PatchMigtAcpiTable ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +/** + Update the BDAT ACPI table: Multiple instances of the BDAT DATA HOB are placed into one contiguos memory range + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - Returns Success + +**/ +EFI_STATUS +PatchBdatAcpiTable ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ); + +#endif diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/AcpiPlatformLibSpcrNull.c b/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/AcpiPlatformLibSpcrNull.c new file mode 100644 index 0000000000..0f4ffcf86f --- /dev/null +++ b/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/AcpiPlatformLibSpcrNull.c @@ -0,0 +1,23 @@ +/** @file + ACPI Platform Driver Hooks + + @copyright + Copyright 1996 - 2016 Intel Corporation. <BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +// +// Statements that include other files +// +#include <Library/PlatformSpecificAcpiTableLib.h> + +EFI_STATUS +PatchSpcrAcpiTable ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ) +{ + EFI_STATUS Status = EFI_SUCCESS; + + return Status; +} diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.c b/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.c new file mode 100644 index 0000000000..74bce3141d --- /dev/null +++ b/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.c @@ -0,0 +1,50 @@ +/** @file + Hooks for Platform populate different function and Platform only ACPI Table. + + @copyright + Copyright 2013 - 2019 Intel Corporation. <BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include <PiDxe.h> +#include <Library/PlatformSpecificAcpiTableLib.h> + +/** + This function will check ACPI Table is active or not active. + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - The Table is active. + +**/ +EFI_STATUS +PlatformAcpiReportHooksTableIsActive ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ) +{ + EFI_ACPI_DESCRIPTION_HEADER *TableHeader; + + TableHeader = (EFI_ACPI_DESCRIPTION_HEADER *) Table; + if (TableHeader->Signature == EFI_ACPI_6_2_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE) { + return EFI_NOT_FOUND; + } + return EFI_SUCCESS; +} + +/** + + This function will patch to update platform level Acpi Table information. + + @param [in, out] Table The table to be udated. + + @retval EFI_SUCCESS - The function completed successfully. + +**/ +EFI_STATUS +PatchPlatformSpecificAcpiTableHooks ( + IN OUT EFI_ACPI_COMMON_HEADER *Table + ) +{ + return EFI_SUCCESS; +} diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.inf b/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.inf new file mode 100644 index 0000000000..48359b6bf5 --- /dev/null +++ b/Platform/Intel/WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.inf @@ -0,0 +1,27 @@ +## @file +# Hooks to deactive or active platform ACPI Tables and patch platform only ACPI Table. +# +# @copyright +# Copyright 2012 - 2018 Intel Corporation. <BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[defines] + INF_VERSION = 0x00010005 + BASE_NAME = PlatformSpecificAcpiTableLibNull + FILE_GUID = 6EF9D22E-89E7-45c7-8A3F-8D0207A084E4 + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = PlatformSpecificAcpiTableLibNull + +[sources] + PlatformSpecificAcpiTableLibNull.c + AcpiPlatformLibSpcrNull.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + WhitleyOpenBoardPkg/PlatformPkg.dec + WhitleySiliconPkg/SiliconPkg.dec + WhitleySiliconPkg/CpRcPkg.dec diff --git a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc index 9cdb5bc2f6..2ac4a81e81 100644 --- a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc +++ b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc @@ -619,6 +619,7 @@ PlatformOpromPolicyLib|$(RP_PKG)/Library/PlatformOpromPolicyLibNull/PlatformOpromPolicyLibNull.inf VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf CrcLib|WhitleyOpenBoardPkg/Library/BaseCrcLib/BaseCrcLib.inf + PlatformSpecificAcpiTableLib|WhitleyOpenBoardPkg/Library/PlatformSpecificAcpiTableLibNull/PlatformSpecificAcpiTableLibNull.inf [LibraryClasses.Common.SEC, LibraryClasses.Common.PEI_CORE, LibraryClasses.Common.PEIM] FspWrapperApiLib|IntelFsp2WrapperPkg/Library/BaseFspWrapperApiLib/BaseFspWrapperApiLib.inf -- 2.27.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#87428): https://edk2.groups.io/g/devel/message/87428 Mute This Topic: https://groups.io/mt/89698850/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-