123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /** @file
- Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- @par Glossary:
- - Cm or CM - Configuration Manager
- - Obj or OBJ - Object
- **/
- #ifndef CONFIGURATION_MANAGER_H_
- #define CONFIGURATION_MANAGER_H_
- ///
- /// C array containing the compiled AML template.
- /// This symbol is defined in the auto generated C file
- /// containing the AML bytecode array.
- ///
- extern CHAR8 dsdt_aml_code[];
- ///
- /// The configuration manager version.
- ///
- #define CONFIGURATION_MANAGER_REVISION CREATE_REVISION (1, 0)
- ///
- /// The OEM ID
- ///
- #define CFG_MGR_OEM_ID { 'A', 'R', 'M', 'L', 'T', 'D' }
- ///
- /// Memory address size limit. Assume the whole address space.
- ///
- #define MEMORY_ADDRESS_SIZE_LIMIT 64
- /** A function that prepares Configuration Manager Objects for returning.
- @param [in] This Pointer to the Configuration Manager Protocol.
- @param [in] CmObjectId The Configuration Manager Object ID.
- @param [in] Token A token for identifying the object.
- @param [out] CmObject Pointer to the Configuration Manager Object
- descriptor describing the requested Object.
- @retval EFI_SUCCESS Success.
- @retval EFI_INVALID_PARAMETER A parameter is invalid.
- @retval EFI_NOT_FOUND The required object information is not found.
- **/
- typedef EFI_STATUS (*CM_OBJECT_HANDLER_PROC) (
- IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This,
- IN CONST CM_OBJECT_ID CmObjectId,
- IN CONST CM_OBJECT_TOKEN Token,
- IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject
- );
- ///
- /// A helper macro for mapping a reference token.
- ///
- #define REFERENCE_TOKEN(Field) \
- (CM_OBJECT_TOKEN)((UINT8*)&mKvmtoolPlatRepositoryInfo + \
- OFFSET_OF (EDKII_PLATFORM_REPOSITORY_INFO, Field))
- ///
- /// The number of ACPI tables to install
- ///
- #define PLAT_ACPI_TABLE_COUNT 10
- ///
- /// A structure describing the platform configuration
- /// manager repository information
- ///
- typedef struct PlatformRepositoryInfo {
- ///
- /// Configuration Manager Information.
- ///
- CM_STD_OBJ_CONFIGURATION_MANAGER_INFO CmInfo;
- ///
- /// List of ACPI tables
- ///
- CM_STD_OBJ_ACPI_TABLE_INFO CmAcpiTableList[PLAT_ACPI_TABLE_COUNT];
- ///
- /// Power management profile information
- ///
- CM_ARM_POWER_MANAGEMENT_PROFILE_INFO PmProfileInfo;
- ///
- /// ITS Group node
- ///
- CM_ARM_ITS_GROUP_NODE ItsGroupInfo;
- ///
- /// ITS Identifier array
- ///
- CM_ARM_ITS_IDENTIFIER ItsIdentifierArray[1];
- ///
- /// PCI Root complex node
- ///
- CM_ARM_ROOT_COMPLEX_NODE RootComplexInfo;
- ///
- /// Array of DeviceID mapping
- ///
- CM_ARM_ID_MAPPING DeviceIdMapping[1];
- ///
- /// Dynamic platform repository.
- /// CmObj created by parsing the Kvmtool device tree are stored here.
- ///
- DYNAMIC_PLATFORM_REPOSITORY_INFO *DynamicPlatformRepo;
- ///
- /// Base address of the FDT.
- ///
- VOID *FdtBase;
- ///
- /// A handle to the FDT HwInfoParser.
- ///
- HW_INFO_PARSER_HANDLE FdtParserHandle;
- } EDKII_PLATFORM_REPOSITORY_INFO;
- #endif // CONFIGURATION_MANAGER_H_
|