TianoCore EDK2 master
Loading...
Searching...
No Matches
FspMeasurementLib.c File Reference

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI TpmMeasureAndLogDataWithFlags (IN UINT32 PcrIndex, IN UINT32 EventType, IN VOID *EventLog, IN UINT32 LogLen, IN VOID *HashData, IN UINT64 HashDataLen, IN UINT64 Flags)
 
STATIC EFI_STATUS EFIAPI MeasureFspFirmwareBlobWithCfg (IN CHAR8 *Description OPTIONAL, IN EFI_PHYSICAL_ADDRESS FirmwareBlobBase, IN UINT64 FirmwareBlobLength, IN UINT32 CfgRegionOffset, IN UINT32 CfgRegionSize)
 
EFI_STATUS EFIAPI MeasureFspFirmwareBlob (IN UINT32 PcrIndex, IN CHAR8 *Description OPTIONAL, IN EFI_PHYSICAL_ADDRESS FirmwareBlobBase, IN UINT64 FirmwareBlobLength)
 

Detailed Description

This library is used by FSP modules to measure data to TPM.

Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file FspMeasurementLib.c.

Function Documentation

◆ MeasureFspFirmwareBlob()

EFI_STATUS EFIAPI MeasureFspFirmwareBlob ( IN UINT32  PcrIndex,
IN CHAR8 *Description  OPTIONAL,
IN EFI_PHYSICAL_ADDRESS  FirmwareBlobBase,
IN UINT64  FirmwareBlobLength 
)

Measure a FSP FirmwareBlob.

Parameters
[in]PcrIndexPCR Index.
[in]DescriptionDescription for this FirmwareBlob.
[in]FirmwareBlobBaseBase address of this FirmwareBlob.
[in]FirmwareBlobLengthSize in bytes of this FirmwareBlob.
Return values
EFI_SUCCESSOperation completed successfully.
EFI_UNSUPPORTEDTPM device not available.
EFI_OUT_OF_RESOURCESOut of memory.
EFI_DEVICE_ERRORThe operation was unsuccessful.

Definition at line 232 of file FspMeasurementLib.c.

◆ MeasureFspFirmwareBlobWithCfg()

STATIC EFI_STATUS EFIAPI MeasureFspFirmwareBlobWithCfg ( IN CHAR8 *Description  OPTIONAL,
IN EFI_PHYSICAL_ADDRESS  FirmwareBlobBase,
IN UINT64  FirmwareBlobLength,
IN UINT32  CfgRegionOffset,
IN UINT32  CfgRegionSize 
)

Measure a FSP FirmwareBlob.

Parameters
[in]DescriptionDescription for this FirmwareBlob.
[in]FirmwareBlobBaseBase address of this FirmwareBlob.
[in]FirmwareBlobLengthSize in bytes of this FirmwareBlob.
[in]CfgRegionOffsetConfiguration region offset in bytes.
[in]CfgRegionSizeConfiguration region in bytes.
Return values
EFI_SUCCESSOperation completed successfully.
EFI_UNSUPPORTEDTPM device not available.
EFI_OUT_OF_RESOURCESOut of memory.
EFI_DEVICE_ERRORThe operation was unsuccessful.

Initialize a SHA hash context.

Hash FSP binary before UDP

Hash FSP binary after UDP

Finalize the SHA hash.

Definition at line 101 of file FspMeasurementLib.c.

◆ TpmMeasureAndLogDataWithFlags()

EFI_STATUS EFIAPI TpmMeasureAndLogDataWithFlags ( IN UINT32  PcrIndex,
IN UINT32  EventType,
IN VOID *  EventLog,
IN UINT32  LogLen,
IN VOID *  HashData,
IN UINT64  HashDataLen,
IN UINT64  Flags 
)

Tpm measure and log data, and extend the measurement result into a specific PCR.

Parameters
[in]PcrIndexPCR Index.
[in]EventTypeEvent type.
[in]EventLogMeasurement event log.
[in]LogLenEvent log length in bytes.
[in]HashDataThe start of the data buffer to be hashed, extended.
[in]HashDataLenThe length, in bytes, of the buffer referenced by HashData
[in]FlagsBitmap providing additional information.
Return values
EFI_SUCCESSOperation completed successfully.
EFI_UNSUPPORTEDTPM device not available.
EFI_OUT_OF_RESOURCESOut of memory.
EFI_DEVICE_ERRORThe operation was unsuccessful.

Definition at line 45 of file FspMeasurementLib.c.