FirmwareVolumeInfoStoredHashFv.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /** @file
  2. PPI to describe stored hash digest for FVs.
  3. Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef __PEI_FIRMWARE_VOLUME_INFO_STORED_HASH_FV_H__
  7. #define __PEI_FIRMWARE_VOLUME_INFO_STORED_HASH_FV_H__
  8. #include <Ppi/FirmwareVolumeInfoPrehashedFV.h>
  9. // {7F5E4E31-81B1-47E5-9E21-1E4B5BC2F61D}
  10. #define EDKII_PEI_FIRMWARE_VOLUME_INFO_STORED_HASH_FV_PPI_GUID \
  11. {0x7f5e4e31, 0x81b1, 0x47e5, {0x9e, 0x21, 0x1e, 0x4b, 0x5b, 0xc2, 0xf6, 0x1d}}
  12. //
  13. // Hashed FV flags.
  14. //
  15. #define HASHED_FV_FLAG_REPORT_FV_INFO_PPI 0x0000000000000001
  16. #define HASHED_FV_FLAG_REPORT_FV_HOB 0x0000000000000002
  17. #define HASHED_FV_FLAG_VERIFIED_BOOT 0x0000000000000010
  18. #define HASHED_FV_FLAG_MEASURED_BOOT 0x0000000000000020
  19. #define HASHED_FV_FLAG_SKIP_ALL 0xFFFFFFFFFFFFFF00
  20. #define HASHED_FV_FLAG_SKIP_BOOT_MODE(Mode) LShiftU64 (0x100, (Mode))
  21. //
  22. // FV hash flags
  23. //
  24. #define FV_HASH_FLAG_BOOT_MODE(Mode) LShiftU64 (0x100, (Mode))
  25. typedef struct _EDKII_PEI_FIRMWARE_VOLUME_INFO_STORED_HASH_FV_PPI
  26. EDKII_PEI_FIRMWARE_VOLUME_INFO_STORED_HASH_FV_PPI;
  27. typedef struct _HASHED_FV_INFO {
  28. UINT64 Base;
  29. UINT64 Length;
  30. UINT64 Flag;
  31. } HASHED_FV_INFO;
  32. typedef struct _FV_HASH_INFO {
  33. UINT64 HashFlag;
  34. UINT16 HashAlgoId;
  35. UINT16 HashSize;
  36. UINT8 Hash[64];
  37. } FV_HASH_INFO;
  38. //
  39. // PPI used to convey FVs and hash information of a specific platform. Only one
  40. // instance of this PPI is allowed in the platform.
  41. //
  42. struct _EDKII_PEI_FIRMWARE_VOLUME_INFO_STORED_HASH_FV_PPI {
  43. FV_HASH_INFO HashInfo;
  44. UINTN FvNumber;
  45. HASHED_FV_INFO FvInfo[1];
  46. };
  47. extern EFI_GUID gEdkiiPeiFirmwareVolumeInfoStoredHashFvPpiGuid;
  48. #endif