1 /** @file
2   This library is used by FSP modules to measure data to TPM.
3 
4 Copyright (c) 2020, Intel Corporation. All rights reserved. <BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6 
7 **/
8 
9 #ifndef _FSP_MEASUREMENT_LIB_H_
10 #define _FSP_MEASUREMENT_LIB_H_
11 
12 #define FSP_MEASURE_FSP       BIT0
13 #define FSP_MEASURE_FSPT      BIT1
14 #define FSP_MEASURE_FSPM      BIT2
15 #define FSP_MEASURE_FSPS      BIT3
16 #define FSP_MEASURE_FSPUPD    BIT31
17 
18 /**
19   Measure a FSP FirmwareBlob.
20 
21   @param[in]  PcrIndex                PCR Index.
22   @param[in]  Description             Description for this FirmwareBlob.
23   @param[in]  FirmwareBlobBase        Base address of this FirmwareBlob.
24   @param[in]  FirmwareBlobLength      Size in bytes of this FirmwareBlob.
25 
26   @retval EFI_SUCCESS           Operation completed successfully.
27   @retval EFI_UNSUPPORTED       TPM device not available.
28   @retval EFI_OUT_OF_RESOURCES  Out of memory.
29   @retval EFI_DEVICE_ERROR      The operation was unsuccessful.
30 */
31 EFI_STATUS
32 EFIAPI
33 MeasureFspFirmwareBlob (
34   IN UINT32                         PcrIndex,
35   IN CHAR8                          *Description OPTIONAL,
36   IN EFI_PHYSICAL_ADDRESS           FirmwareBlobBase,
37   IN UINT64                         FirmwareBlobLength
38   );
39 #endif
40