TianoCore EDK2 master
|
#include <IndustryStandard/HighPrecisionEventTimerTable.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Protocol/AcpiTable.h>
#include <AcpiTableGenerator.h>
#include <ConfigurationManagerObject.h>
#include <ConfigurationManagerHelper.h>
#include <Library/AcpiHelperLib.h>
#include <Library/TableHelperLib.h>
#include <Library/AmlLib/AmlLib.h>
#include <Protocol/ConfigurationManagerProtocol.h>
#include <Library/IoLib.h>
Go to the source code of this file.
Macros | |
#define | HPET_VALID_PAGE_PROTECTION |
#define | HPET_GENERATOR_REVISION CREATE_REVISION (1, 0) |
Functions | |
GET_OBJECT_LIST (EObjNameSpaceX64, EX64ObjHpetInfo, CM_X64_HPET_INFO) | |
STATIC EFI_STATUS EFIAPI | SsdtHpetUpdateTableInfo (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN OUT AML_OBJECT_NODE_HANDLE ScopeNode) |
STATIC EFI_STATUS EFIAPI | BuildSsdtHpetTable (IN CONST ACPI_TABLE_GENERATOR *CONST This, IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, OUT EFI_ACPI_DESCRIPTION_HEADER **CONST Table) |
STATIC EFI_STATUS EFIAPI | FreeSsdtHpetTableResources (IN CONST ACPI_TABLE_GENERATOR *CONST This, IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN OUT EFI_ACPI_DESCRIPTION_HEADER **CONST Table) |
EFI_STATUS EFIAPI | AcpiSsdtHpetLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
EFI_STATUS EFIAPI | AcpiSsdtHpetLibDestructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
Variables | |
STATIC CONST ACPI_TABLE_GENERATOR | SsdtHpetGenerator |
Generate ACPI HPET table for AMD platforms.
Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier BSD-2-Clause-Patent
Definition in file AcpiSsdtHpetLib.c.
#define HPET_GENERATOR_REVISION CREATE_REVISION (1, 0) |
This macro defines the HPET Table Generator revision.
Definition at line 349 of file AcpiSsdtHpetLib.c.
#define HPET_VALID_PAGE_PROTECTION |
This macro defines supported HPET page protection flags
Definition at line 29 of file AcpiSsdtHpetLib.c.
EFI_STATUS EFIAPI AcpiSsdtHpetLibConstructor | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
Register the Generator with the ACPI Table Factory.
[in] | ImageHandle | The handle to the image. |
[in] | SystemTable | Pointer to the System Table. |
EFI_SUCCESS | The Generator is registered. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_ALREADY_STARTED | The Generator for the Table ID is already registered. |
Definition at line 393 of file AcpiSsdtHpetLib.c.
EFI_STATUS EFIAPI AcpiSsdtHpetLibDestructor | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
Deregister the Generator from the ACPI Table Factory.
[in] | ImageHandle | The handle to the image. |
[in] | SystemTable | Pointer to the System Table. |
EFI_SUCCESS | The Generator is deregistered. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_NOT_FOUND | The Generator is not registered. |
Definition at line 417 of file AcpiSsdtHpetLib.c.
STATIC EFI_STATUS EFIAPI BuildSsdtHpetTable | ( | IN CONST ACPI_TABLE_GENERATOR *CONST | This, |
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST | AcpiTableInfo, | ||
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, | ||
OUT EFI_ACPI_DESCRIPTION_HEADER **CONST | Table | ||
) |
Construct the SSDT HPET table.
This function invokes the Configuration Manager protocol interface to get the required information for generating the ACPI table.
If this function allocates any resources then they must be freed in the FreeXXXXTableResources function.
[in] | This | Pointer to the table generator. |
[in] | AcpiTableInfo | Pointer to the ACPI Table Info. |
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[out] | Table | Pointer to the constructed ACPI Table. |
EFI_SUCCESS | Table generated successfully. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_NOT_FOUND | The required object was not found. |
EFI_BAD_BUFFER_SIZE | The size returned by the Configuration Manager is less than the Object size for the requested object. |
Definition at line 231 of file AcpiSsdtHpetLib.c.
STATIC EFI_STATUS EFIAPI FreeSsdtHpetTableResources | ( | IN CONST ACPI_TABLE_GENERATOR *CONST | This, |
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST | AcpiTableInfo, | ||
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, | ||
IN OUT EFI_ACPI_DESCRIPTION_HEADER **CONST | Table | ||
) |
Free any resources allocated for constructing the SSDT HPET ACPI table.
[in] | This | Pointer to the table generator. |
[in] | AcpiTableInfo | Pointer to the ACPI Table Info. |
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[in,out] | Table | Pointer to the ACPI Table. |
EFI_SUCCESS | The resources were freed successfully. |
EFI_INVALID_PARAMETER | The table pointer is NULL or invalid. |
Definition at line 323 of file AcpiSsdtHpetLib.c.
GET_OBJECT_LIST | ( | EObjNameSpaceX64 | , |
EX64ObjHpetInfo | , | ||
CM_X64_HPET_INFO | |||
) |
This macro expands to a function that retrieves the HPET device information from the Configuration Manager.
STATIC EFI_STATUS EFIAPI SsdtHpetUpdateTableInfo | ( | IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, |
IN OUT AML_OBJECT_NODE_HANDLE | ScopeNode | ||
) |
Update HPET table information.
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[in,out] | ScopeNode | The Scope Node for the HPET table. |
EFI_SUCCESS | Success. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_NOT_FOUND | The required object was not found or the HPET is not enabled. |
EFI_BAD_BUFFER_SIZE | The size returned by the Configuration Manager is less than the Object size for the requested object. |
EFI_UNSUPPORTED | If invalid protection and oem flags provided. |
Definition at line 61 of file AcpiSsdtHpetLib.c.
STATIC CONST ACPI_TABLE_GENERATOR SsdtHpetGenerator |
The interface for the HPET Table Generator.
Definition at line 355 of file AcpiSsdtHpetLib.c.