TpmNvsMm.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /** @file
  2. TPM NVS MM guid, used for exchanging information, including SWI value and NVS region
  3. information, for patching TPM ACPI table.
  4. Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
  5. Copyright (c) Microsoft Corporation.
  6. SPDX-License-Identifier: BSD-2-Clause-Patent
  7. **/
  8. #ifndef TCG2_NVS_MM_H_
  9. #define TCG2_NVS_MM_H_
  10. #define MM_TPM_NVS_HOB_GUID \
  11. { 0xc96c76eb, 0xbc78, 0x429c, { 0x9f, 0x4b, 0xda, 0x51, 0x78, 0xc2, 0x84, 0x57 }}
  12. extern EFI_GUID gTpmNvsMmGuid;
  13. #pragma pack(1)
  14. typedef struct {
  15. UINT8 SoftwareSmi;
  16. UINT32 Parameter;
  17. UINT32 Response;
  18. UINT32 Request;
  19. UINT32 RequestParameter;
  20. UINT32 LastRequest;
  21. UINT32 ReturnCode;
  22. } PHYSICAL_PRESENCE_NVS;
  23. typedef struct {
  24. UINT8 SoftwareSmi;
  25. UINT32 Parameter;
  26. UINT32 Request;
  27. UINT32 ReturnCode;
  28. } MEMORY_CLEAR_NVS;
  29. typedef struct {
  30. PHYSICAL_PRESENCE_NVS PhysicalPresence;
  31. MEMORY_CLEAR_NVS MemoryClear;
  32. UINT32 PPRequestUserConfirm;
  33. UINT32 TpmIrqNum;
  34. BOOLEAN IsShortFormPkgLength;
  35. } TCG_NVS;
  36. typedef struct {
  37. UINT8 OpRegionOp;
  38. UINT32 NameString;
  39. UINT8 RegionSpace;
  40. UINT8 DWordPrefix;
  41. UINT32 RegionOffset;
  42. UINT8 BytePrefix;
  43. UINT8 RegionLen;
  44. } AML_OP_REGION_32_8;
  45. typedef struct {
  46. UINT64 Function;
  47. UINT64 ReturnStatus;
  48. EFI_PHYSICAL_ADDRESS TargetAddress;
  49. UINT64 RegisteredPpSwiValue;
  50. UINT64 RegisteredMcSwiValue;
  51. } TPM_NVS_MM_COMM_BUFFER;
  52. #pragma pack()
  53. typedef enum {
  54. TpmNvsMmExchangeInfo,
  55. } TPM_NVS_MM_FUNCTION;
  56. #endif // TCG2_NVS_MM_H_