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

Go to the source code of this file.

Macros

#define EFI_TCG2_EVENT_LOG_FORMAT_ALL   (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)
 

Functions

BOOLEAN IsPtpCrbSupported (IN VOID *Register)
 
BOOLEAN IsPtpFifoSupported (IN VOID *Register)
 
EFI_STATUS SetPtpInterface (IN VOID *Register, IN UINT8 PtpInterface)
 
EFI_STATUS EFIAPI Tcg2ExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
 
EFI_STATUS SaveTcg2PpRequest (IN UINT8 PpRequest)
 
EFI_STATUS SaveTcg2PpRequestParameter (IN UINT32 PpRequestParameter)
 
EFI_STATUS SaveTcg2PCRBanksRequest (IN UINTN PCRBankIndex, IN BOOLEAN Enable)
 
EFI_STATUS EFIAPI Tcg2RouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
 
EFI_STATUS GetTpm2HID (CHAR8 *Hid, UINTN Size)
 
EFI_STATUS Tcg2VersionInfoCallback (IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value)
 
EFI_STATUS EFIAPI Tcg2Callback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
 
VOID AppendBufferWithTpmAlgHash (IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 TpmAlgHash)
 
VOID FillBufferWithBootHashAlg (IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 BootHashAlg)
 
VOID SetConfigInfo (IN OUT TCG2_CONFIGURATION_INFO *Tcg2ConfigInfo, IN UINT32 TpmAlgHash, IN UINT32 Tcg2HashAlgBitmap)
 
VOID FillBufferWithTCG2EventLogFormat (IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 TCG2EventLogFormat)
 
EFI_STATUS InstallTcg2ConfigForm (IN OUT TCG2_CONFIG_PRIVATE_DATA *PrivateData)
 
VOID UninstallTcg2ConfigForm (IN OUT TCG2_CONFIG_PRIVATE_DATA *PrivateData)
 

Variables

TPM_INSTANCE_ID mTpmInstanceId [TPM_DEVICE_MAX+1] = TPM_INSTANCE_ID_LIST
 
TCG2_CONFIG_PRIVATE_DATAmTcg2ConfigPrivateDate
 
TCG2_CONFIG_PRIVATE_DATA mTcg2ConfigPrivateDateTemplate
 
HII_VENDOR_DEVICE_PATH mTcg2HiiVendorDevicePath
 
UINT8 mCurrentPpRequest
 

Detailed Description

HII Config Access protocol implementation of TCG2 configuration module. NOTE: This module is only for reference only, each platform should have its own setup page.

Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
(C) Copyright 2018 Hewlett Packard Enterprise Development LP
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Tcg2ConfigImpl.c.

Macro Definition Documentation

◆ EFI_TCG2_EVENT_LOG_FORMAT_ALL

#define EFI_TCG2_EVENT_LOG_FORMAT_ALL   (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)

Definition at line 21 of file Tcg2ConfigImpl.c.

Function Documentation

◆ AppendBufferWithTpmAlgHash()

VOID AppendBufferWithTpmAlgHash ( IN UINT16 *  Buffer,
IN UINTN  BufferSize,
IN UINT32  TpmAlgHash 
)

Append Buffer With TpmAlgHash.

Parameters
[in]BufferBuffer to be appended.
[in]BufferSizeSize of buffer.
[in]TpmAlgHashTpmAlgHash.

Definition at line 622 of file Tcg2ConfigImpl.c.

◆ FillBufferWithBootHashAlg()

VOID FillBufferWithBootHashAlg ( IN UINT16 *  Buffer,
IN UINTN  BufferSize,
IN UINT32  BootHashAlg 
)

Fill Buffer With BootHashAlg.

Parameters
[in]BufferBuffer to be filled.
[in]BufferSizeSize of buffer.
[in]BootHashAlgBootHashAlg.

Definition at line 676 of file Tcg2ConfigImpl.c.

◆ FillBufferWithTCG2EventLogFormat()

VOID FillBufferWithTCG2EventLogFormat ( IN UINT16 *  Buffer,
IN UINTN  BufferSize,
IN UINT32  TCG2EventLogFormat 
)

Fill Buffer With TCG2EventLogFormat.

Parameters
[in]BufferBuffer to be filled.
[in]BufferSizeSize of buffer.
[in]TCG2EventLogFormatTCG2EventLogFormat.

Definition at line 782 of file Tcg2ConfigImpl.c.

◆ GetTpm2HID()

EFI_STATUS GetTpm2HID ( CHAR8 *  Hid,
UINTN  Size 
)

Get HID string of TPM2 ACPI device object

Parameters
[in]HidPoints to HID String Buffer.
[in]SizeHID String size in bytes. Must >= TPM_HID_ACPI_SIZE
Returns
HID String get status.

Definition at line 364 of file Tcg2ConfigImpl.c.

◆ InstallTcg2ConfigForm()

EFI_STATUS InstallTcg2ConfigForm ( IN OUT TCG2_CONFIG_PRIVATE_DATA PrivateData)

This function publish the TCG2 configuration Form for TPM device.

Parameters
[in,out]PrivateDataPoints to TCG2 configuration private data.
Return values
EFI_SUCCESSHII Form is installed for this network device.
EFI_OUT_OF_RESOURCESNot enough resource for HII Form installation.
OthersOther errors as indicated.

Definition at line 825 of file Tcg2ConfigImpl.c.

◆ IsPtpCrbSupported()

BOOLEAN IsPtpCrbSupported ( IN VOID *  Register)

Return if PTP CRB is supported.

Parameters
[in]RegisterPointer to PTP register.
Return values
TRUEPTP CRB is supported.
FALSEPTP CRB is unsupported.

Definition at line 68 of file Tcg2ConfigImpl.c.

◆ IsPtpFifoSupported()

BOOLEAN IsPtpFifoSupported ( IN VOID *  Register)

Return if PTP FIFO is supported.

Parameters
[in]RegisterPointer to PTP register.
Return values
TRUEPTP FIFO is supported.
FALSEPTP FIFO is unsupported.

Definition at line 98 of file Tcg2ConfigImpl.c.

◆ SaveTcg2PCRBanksRequest()

EFI_STATUS SaveTcg2PCRBanksRequest ( IN UINTN  PCRBankIndex,
IN BOOLEAN  Enable 
)

Save Tcg2 PCR Banks request request to variable space.

Parameters
[in]PCRBankIndexPCR Bank Index.
[in]EnableEnable or disable this PCR Bank.
Return values
EFI_SUCCESSThe operation is finished successfully.
OthersOther errors as indicated.

Definition at line 291 of file Tcg2ConfigImpl.c.

◆ SaveTcg2PpRequest()

EFI_STATUS SaveTcg2PpRequest ( IN UINT8  PpRequest)

Save TPM request to variable space.

Parameters
[in]PpRequestPhysical Presence request command.
Return values
EFI_SUCCESSThe operation is finished successfully.
OthersOther errors as indicated.

Definition at line 227 of file Tcg2ConfigImpl.c.

◆ SaveTcg2PpRequestParameter()

EFI_STATUS SaveTcg2PpRequestParameter ( IN UINT32  PpRequestParameter)

Save TPM request to variable space.

Parameters
[in]PpRequestParameterPhysical Presence request parameter.
Return values
EFI_SUCCESSThe operation is finished successfully.
OthersOther errors as indicated.

Definition at line 259 of file Tcg2ConfigImpl.c.

◆ SetConfigInfo()

VOID SetConfigInfo ( IN OUT TCG2_CONFIGURATION_INFO Tcg2ConfigInfo,
IN UINT32  TpmAlgHash,
IN UINT32  Tcg2HashAlgBitmap 
)

Set ConfigInfo according to TpmAlgHash and Tcg2HashAlgBitmap.

Parameters
[in,out]Tcg2ConfigInfoTCG2 config info.
[in]TpmAlgHashTpmAlgHash.
[in]Tcg2HashAlgBitmapTCG2 Hash Algorithm Bitmap.

Definition at line 733 of file Tcg2ConfigImpl.c.

◆ SetPtpInterface()

EFI_STATUS SetPtpInterface ( IN VOID *  Register,
IN UINT8  PtpInterface 
)

Set PTP interface type. Do not update PcdActiveTpmInterfaceType here because interface change only happens on next _TPM_INIT

Parameters
[in]RegisterPointer to PTP register.
[in]PtpInterfacePTP interface type.
Return values
EFI_SUCCESSPTP interface type is set.
EFI_INVALID_PARAMETERPTP interface type is invalid.
EFI_UNSUPPORTEDPTP interface type is unsupported.
EFI_WRITE_PROTECTEDPTP interface is locked.

Definition at line 132 of file Tcg2ConfigImpl.c.

◆ Tcg2Callback()

EFI_STATUS EFIAPI Tcg2Callback ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL This,
IN EFI_BROWSER_ACTION  Action,
IN EFI_QUESTION_ID  QuestionId,
IN UINT8  Type,
IN EFI_IFR_TYPE_VALUE Value,
OUT EFI_BROWSER_ACTION_REQUEST *  ActionRequest 
)

This function processes the results of changes in configuration.

Parameters
[in]ThisPoints to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in]ActionSpecifies the type of action taken by the browser.
[in]QuestionIdA unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in]TypeThe type of value for the question.
[in]ValueA pointer to the data being sent to the original exporting driver.
[out]ActionRequestOn return, points to the action requested by the callback function.
Return values
EFI_SUCCESSThe callback successfully handled the action.
EFI_OUT_OF_RESOURCESNot enough storage is available to hold the variable and its data.
EFI_DEVICE_ERRORThe variable could not be saved.
EFI_UNSUPPORTEDThe specified Action is not supported by the callback.

Definition at line 529 of file Tcg2ConfigImpl.c.

◆ Tcg2ExtractConfig()

EFI_STATUS EFIAPI Tcg2ExtractConfig ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL This,
IN CONST EFI_STRING  Request,
OUT EFI_STRING *  Progress,
OUT EFI_STRING *  Results 
)

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters
[in]ThisPoints to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in]RequestA null-terminated Unicode string in <ConfigRequest> format.
[out]ProgressOn return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
[out]ResultsA null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values
EFI_SUCCESSThe Results is filled with the requested values.
EFI_OUT_OF_RESOURCESNot enough memory to store the results.
EFI_INVALID_PARAMETERRequest is illegal syntax, or unknown name.
EFI_NOT_FOUNDRouting data doesn't match any storage in this driver.

Definition at line 202 of file Tcg2ConfigImpl.c.

◆ Tcg2RouteConfig()

EFI_STATUS EFIAPI Tcg2RouteConfig ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL This,
IN CONST EFI_STRING  Configuration,
OUT EFI_STRING *  Progress 
)

This function processes the results of changes in configuration.

Parameters
[in]ThisPoints to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in]ConfigurationA null-terminated Unicode string in <ConfigResp> format.
[out]ProgressA pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values
EFI_SUCCESSThe Results is processed successfully.
EFI_INVALID_PARAMETERConfiguration is NULL.
EFI_NOT_FOUNDRouting data doesn't match any storage in this driver.

Definition at line 339 of file Tcg2ConfigImpl.c.

◆ Tcg2VersionInfoCallback()

EFI_STATUS Tcg2VersionInfoCallback ( IN EFI_BROWSER_ACTION  Action,
IN EFI_QUESTION_ID  QuestionId,
IN UINT8  Type,
IN EFI_IFR_TYPE_VALUE Value 
)

This function processes the results of changes in configuration for TCG2 version information.

Parameters
[in]ActionSpecifies the type of action taken by the browser. ASSERT if the Action is not EFI_BROWSER_ACTION_SUBMITTED.
[in]QuestionIdA unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in]TypeThe type of value for the question.
[in]ValueA pointer to the data being sent to the original exporting driver.
Return values
EFI_SUCCESSThe callback successfully handled the action.

Definition at line 447 of file Tcg2ConfigImpl.c.

◆ UninstallTcg2ConfigForm()

VOID UninstallTcg2ConfigForm ( IN OUT TCG2_CONFIG_PRIVATE_DATA PrivateData)

This function removes TCG2 configuration Form.

Parameters
[in,out]PrivateDataPoints to TCG2 configuration private data.

Definition at line 1034 of file Tcg2ConfigImpl.c.

Variable Documentation

◆ mCurrentPpRequest

UINT8 mCurrentPpRequest

Definition at line 57 of file Tcg2ConfigImpl.c.

◆ mTcg2ConfigPrivateDate

TCG2_CONFIG_PRIVATE_DATA* mTcg2ConfigPrivateDate

Definition at line 25 of file Tcg2ConfigImpl.c.

◆ mTcg2ConfigPrivateDateTemplate

TCG2_CONFIG_PRIVATE_DATA mTcg2ConfigPrivateDateTemplate
Initial value:
= {
TCG2_CONFIG_PRIVATE_DATA_SIGNATURE,
{
}
}
EFI_STATUS EFIAPI Tcg2ExtractConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI Tcg2Callback(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
EFI_STATUS EFIAPI Tcg2RouteConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)

Definition at line 26 of file Tcg2ConfigImpl.c.

◆ mTcg2HiiVendorDevicePath

HII_VENDOR_DEVICE_PATH mTcg2HiiVendorDevicePath
Initial value:
= {
{
{
{
(UINT8)(sizeof (VENDOR_DEVICE_PATH)),
(UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
TCG2_CONFIG_FORM_SET_GUID
},
{
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
(UINT8)(END_DEVICE_PATH_LENGTH),
(UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
}
#define HARDWARE_DEVICE_PATH
Definition: DevicePath.h:68
#define HW_VENDOR_DP
Definition: DevicePath.h:133

Definition at line 35 of file Tcg2ConfigImpl.c.

◆ mTpmInstanceId

TPM_INSTANCE_ID mTpmInstanceId[TPM_DEVICE_MAX+1] = TPM_INSTANCE_ID_LIST

Definition at line 23 of file Tcg2ConfigImpl.c.