/** @file TPM NVS MM guid, used for exchanging information, including SWI value and NVS region information, for patching TPM ACPI table. Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
Copyright (c) Microsoft Corporation. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef TCG2_NVS_MM_H_ #define TCG2_NVS_MM_H_ #define MM_TPM_NVS_HOB_GUID \ { 0xc96c76eb, 0xbc78, 0x429c, { 0x9f, 0x4b, 0xda, 0x51, 0x78, 0xc2, 0x84, 0x57 }} extern EFI_GUID gTpmNvsMmGuid; #pragma pack(1) typedef struct { UINT8 SoftwareSmi; UINT32 Parameter; UINT32 Response; UINT32 Request; UINT32 RequestParameter; UINT32 LastRequest; UINT32 ReturnCode; } PHYSICAL_PRESENCE_NVS; typedef struct { UINT8 SoftwareSmi; UINT32 Parameter; UINT32 Request; UINT32 ReturnCode; } MEMORY_CLEAR_NVS; typedef struct { PHYSICAL_PRESENCE_NVS PhysicalPresence; MEMORY_CLEAR_NVS MemoryClear; UINT32 PPRequestUserConfirm; UINT32 TpmIrqNum; BOOLEAN IsShortFormPkgLength; } TCG_NVS; typedef struct { UINT8 OpRegionOp; UINT32 NameString; UINT8 RegionSpace; UINT8 DWordPrefix; UINT32 RegionOffset; UINT8 BytePrefix; UINT8 RegionLen; } AML_OP_REGION_32_8; typedef struct { UINT64 Function; UINT64 ReturnStatus; EFI_PHYSICAL_ADDRESS TargetAddress; UINT64 RegisteredPpSwiValue; UINT64 RegisteredMcSwiValue; } TPM_NVS_MM_COMM_BUFFER; #pragma pack() typedef enum { TpmNvsMmExchangeInfo, } TPM_NVS_MM_FUNCTION; #endif // TCG2_NVS_MM_H_