TianoCore EDK2 master
|
#include "Tcg2ConfigImpl.h"
#include <Library/PcdLib.h>
#include <Library/Tpm2CommandLib.h>
#include <Library/Tpm2DeviceLib.h>
#include <Library/IoLib.h>
#include <Guid/TpmInstance.h>
#include <IndustryStandard/TpmPtp.h>
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_DATA * | mTcg2ConfigPrivateDate |
TCG2_CONFIG_PRIVATE_DATA | mTcg2ConfigPrivateDateTemplate |
HII_VENDOR_DEVICE_PATH | mTcg2HiiVendorDevicePath |
UINT8 | mCurrentPpRequest |
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.
#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.
Append Buffer With TpmAlgHash.
[in] | Buffer | Buffer to be appended. |
[in] | BufferSize | Size of buffer. |
[in] | TpmAlgHash | TpmAlgHash. |
Definition at line 622 of file Tcg2ConfigImpl.c.
Fill Buffer With BootHashAlg.
[in] | Buffer | Buffer to be filled. |
[in] | BufferSize | Size of buffer. |
[in] | BootHashAlg | BootHashAlg. |
Definition at line 676 of file Tcg2ConfigImpl.c.
VOID FillBufferWithTCG2EventLogFormat | ( | IN UINT16 * | Buffer, |
IN UINTN | BufferSize, | ||
IN UINT32 | TCG2EventLogFormat | ||
) |
Fill Buffer With TCG2EventLogFormat.
[in] | Buffer | Buffer to be filled. |
[in] | BufferSize | Size of buffer. |
[in] | TCG2EventLogFormat | TCG2EventLogFormat. |
Definition at line 782 of file Tcg2ConfigImpl.c.
EFI_STATUS GetTpm2HID | ( | CHAR8 * | Hid, |
UINTN | Size | ||
) |
Get HID string of TPM2 ACPI device object
[in] | Hid | Points to HID String Buffer. |
[in] | Size | HID String size in bytes. Must >= TPM_HID_ACPI_SIZE |
Definition at line 364 of file Tcg2ConfigImpl.c.
EFI_STATUS InstallTcg2ConfigForm | ( | IN OUT TCG2_CONFIG_PRIVATE_DATA * | PrivateData | ) |
This function publish the TCG2 configuration Form for TPM device.
[in,out] | PrivateData | Points to TCG2 configuration private data. |
EFI_SUCCESS | HII Form is installed for this network device. |
EFI_OUT_OF_RESOURCES | Not enough resource for HII Form installation. |
Others | Other errors as indicated. |
Definition at line 825 of file Tcg2ConfigImpl.c.
BOOLEAN IsPtpCrbSupported | ( | IN VOID * | Register | ) |
Return if PTP CRB is supported.
[in] | Register | Pointer to PTP register. |
TRUE | PTP CRB is supported. |
FALSE | PTP CRB is unsupported. |
Definition at line 68 of file Tcg2ConfigImpl.c.
BOOLEAN IsPtpFifoSupported | ( | IN VOID * | Register | ) |
Return if PTP FIFO is supported.
[in] | Register | Pointer to PTP register. |
TRUE | PTP FIFO is supported. |
FALSE | PTP FIFO is unsupported. |
Definition at line 98 of file Tcg2ConfigImpl.c.
EFI_STATUS SaveTcg2PCRBanksRequest | ( | IN UINTN | PCRBankIndex, |
IN BOOLEAN | Enable | ||
) |
Save Tcg2 PCR Banks request request to variable space.
[in] | PCRBankIndex | PCR Bank Index. |
[in] | Enable | Enable or disable this PCR Bank. |
EFI_SUCCESS | The operation is finished successfully. |
Others | Other errors as indicated. |
Definition at line 291 of file Tcg2ConfigImpl.c.
EFI_STATUS SaveTcg2PpRequest | ( | IN UINT8 | PpRequest | ) |
Save TPM request to variable space.
[in] | PpRequest | Physical Presence request command. |
EFI_SUCCESS | The operation is finished successfully. |
Others | Other errors as indicated. |
Definition at line 227 of file Tcg2ConfigImpl.c.
EFI_STATUS SaveTcg2PpRequestParameter | ( | IN UINT32 | PpRequestParameter | ) |
Save TPM request to variable space.
[in] | PpRequestParameter | Physical Presence request parameter. |
EFI_SUCCESS | The operation is finished successfully. |
Others | Other errors as indicated. |
Definition at line 259 of file Tcg2ConfigImpl.c.
VOID SetConfigInfo | ( | IN OUT TCG2_CONFIGURATION_INFO * | Tcg2ConfigInfo, |
IN UINT32 | TpmAlgHash, | ||
IN UINT32 | Tcg2HashAlgBitmap | ||
) |
Set ConfigInfo according to TpmAlgHash and Tcg2HashAlgBitmap.
[in,out] | Tcg2ConfigInfo | TCG2 config info. |
[in] | TpmAlgHash | TpmAlgHash. |
[in] | Tcg2HashAlgBitmap | TCG2 Hash Algorithm Bitmap. |
Definition at line 733 of file Tcg2ConfigImpl.c.
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
[in] | Register | Pointer to PTP register. |
[in] | PtpInterface | PTP interface type. |
EFI_SUCCESS | PTP interface type is set. |
EFI_INVALID_PARAMETER | PTP interface type is invalid. |
EFI_UNSUPPORTED | PTP interface type is unsupported. |
EFI_WRITE_PROTECTED | PTP interface is locked. |
Definition at line 132 of file Tcg2ConfigImpl.c.
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.
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. |
[in] | Action | Specifies the type of action taken by the browser. |
[in] | QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect. |
[in] | Type | The type of value for the question. |
[in] | Value | A pointer to the data being sent to the original exporting driver. |
[out] | ActionRequest | On return, points to the action requested by the callback function. |
EFI_SUCCESS | The callback successfully handled the action. |
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data. |
EFI_DEVICE_ERROR | The variable could not be saved. |
EFI_UNSUPPORTED | The specified Action is not supported by the callback. |
Definition at line 529 of file Tcg2ConfigImpl.c.
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.
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. |
[in] | Request | A null-terminated Unicode string in <ConfigRequest> format. |
[out] | Progress | On 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] | Results | A 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. |
EFI_SUCCESS | The Results is filled with the requested values. |
EFI_OUT_OF_RESOURCES | Not enough memory to store the results. |
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name. |
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver. |
Definition at line 202 of file Tcg2ConfigImpl.c.
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.
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. |
[in] | Configuration | A null-terminated Unicode string in <ConfigResp> format. |
[out] | Progress | A 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. |
EFI_SUCCESS | The Results is processed successfully. |
EFI_INVALID_PARAMETER | Configuration is NULL. |
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver. |
Definition at line 339 of file Tcg2ConfigImpl.c.
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.
[in] | Action | Specifies the type of action taken by the browser. ASSERT if the Action is not EFI_BROWSER_ACTION_SUBMITTED. |
[in] | QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect. |
[in] | Type | The type of value for the question. |
[in] | Value | A pointer to the data being sent to the original exporting driver. |
EFI_SUCCESS | The callback successfully handled the action. |
Definition at line 447 of file Tcg2ConfigImpl.c.
VOID UninstallTcg2ConfigForm | ( | IN OUT TCG2_CONFIG_PRIVATE_DATA * | PrivateData | ) |
This function removes TCG2 configuration Form.
[in,out] | PrivateData | Points to TCG2 configuration private data. |
Definition at line 1034 of file Tcg2ConfigImpl.c.
UINT8 mCurrentPpRequest |
Definition at line 57 of file Tcg2ConfigImpl.c.
TCG2_CONFIG_PRIVATE_DATA* mTcg2ConfigPrivateDate |
Definition at line 25 of file Tcg2ConfigImpl.c.
TCG2_CONFIG_PRIVATE_DATA mTcg2ConfigPrivateDateTemplate |
Definition at line 26 of file Tcg2ConfigImpl.c.
HII_VENDOR_DEVICE_PATH mTcg2HiiVendorDevicePath |
Definition at line 35 of file Tcg2ConfigImpl.c.
TPM_INSTANCE_ID mTpmInstanceId[TPM_DEVICE_MAX+1] = TPM_INSTANCE_ID_LIST |
Definition at line 23 of file Tcg2ConfigImpl.c.