Skip to content

Commit

Permalink
WhitleyOpenBoardPkg/PlatformSpecificAcpiTableLib: Add library
Browse files Browse the repository at this point in the history
Enables boards to modify the AcpiPlatform driver behaviors.

Cc: Nate DeSimone <[email protected]>
Cc: Chasel Chiu <[email protected]>
Signed-off-by: Isaac Oram <[email protected]>
Reviewed-by: Nate DeSimone <[email protected]>
  • Loading branch information
iworam committed Mar 11, 2022
1 parent 2088856 commit f6b8be3
Show file tree
Hide file tree
Showing 5 changed files with 230 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit f6b8be3

Please sign in to comment.