21#define EFI_TCG2_EVENT_LOG_FORMAT_ALL (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)
23TPM_INSTANCE_ID mTpmInstanceId[TPM_DEVICE_MAX + 1] = TPM_INSTANCE_ID_LIST;
27 TCG2_CONFIG_PRIVATE_DATA_SIGNATURE,
45 TCG2_CONFIG_FORM_SET_GUID
49 END_ENTIRE_DEVICE_PATH_SUBTYPE,
51 (UINT8)(END_DEVICE_PATH_LENGTH),
52 (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
57UINT8 mCurrentPpRequest;
79 if (((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_CRB) ||
81 (InterfaceId.Bits.CapCRB != 0))
109 if (((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_CRB) ||
111 (InterfaceId.Bits.CapFIFO != 0))
134 IN UINT8 PtpInterface
137 TPM2_PTP_INTERFACE_TYPE PtpInterfaceCurrent;
140 PtpInterfaceCurrent =
PcdGet8 (PcdActiveTpmInterfaceType);
141 if ((PtpInterfaceCurrent != Tpm2PtpInterfaceFifo) &&
142 (PtpInterfaceCurrent != Tpm2PtpInterfaceCrb))
144 return EFI_UNSUPPORTED;
148 if (InterfaceId.Bits.IntfSelLock != 0) {
149 return EFI_WRITE_PROTECTED;
152 switch (PtpInterface) {
153 case Tpm2PtpInterfaceFifo:
154 if (InterfaceId.Bits.CapFIFO == 0) {
155 return EFI_UNSUPPORTED;
161 case Tpm2PtpInterfaceCrb:
162 if (InterfaceId.Bits.CapCRB == 0) {
163 return EFI_UNSUPPORTED;
166 InterfaceId.Bits.InterfaceSelector = PTP_INTERFACE_IDENTIFIER_INTERFACE_SELECTOR_CRB;
170 return EFI_INVALID_PARAMETER;
205 OUT EFI_STRING *Progress,
206 OUT EFI_STRING *Results
209 if ((Progress ==
NULL) || (Results ==
NULL)) {
210 return EFI_INVALID_PARAMETER;
214 return EFI_NOT_FOUND;
235 if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS) {
236 mCurrentPpRequest = PpRequest;
238 }
else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE) {
239 Status = EFI_OUT_OF_RESOURCES;
240 }
else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED) {
241 Status = EFI_UNSUPPORTED;
243 Status = EFI_DEVICE_ERROR;
260 IN UINT32 PpRequestParameter
267 if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS) {
269 }
else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE) {
270 Status = EFI_OUT_OF_RESOURCES;
271 }
else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED) {
272 Status = EFI_UNSUPPORTED;
274 Status = EFI_DEVICE_ERROR;
300 mTcg2ConfigPrivateDate->PCRBanksDesired |= (0x1 << PCRBankIndex);
302 mTcg2ConfigPrivateDate->PCRBanksDesired &= ~(0x1 << PCRBankIndex);
306 if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS) {
308 }
else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE) {
309 Status = EFI_OUT_OF_RESOURCES;
310 }
else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED) {
311 Status = EFI_UNSUPPORTED;
313 Status = EFI_DEVICE_ERROR;
341 IN CONST EFI_STRING Configuration,
342 OUT EFI_STRING *Progress
345 if ((Configuration ==
NULL) || (Progress ==
NULL)) {
346 return EFI_INVALID_PARAMETER;
349 *Progress = Configuration;
351 return EFI_NOT_FOUND;
370 UINT32 ManufacturerID;
371 UINT32 FirmwareVersion1;
372 UINT32 FirmwareVersion2;
383 if (!EFI_ERROR (Status)) {
384 DEBUG ((DEBUG_INFO,
"TPM_PT_MANUFACTURER 0x%08x\n", ManufacturerID));
389 if (((ManufacturerID >> 24) == 0x00) || ((ManufacturerID >> 24) == 0x20)) {
394 CopyMem (Hid, &ManufacturerID, 3);
400 CopyMem (Hid, &ManufacturerID, 4);
404 DEBUG ((DEBUG_ERROR,
"Get TPM_PT_MANUFACTURER failed %x!\n", Status));
410 if (!EFI_ERROR (Status)) {
411 DEBUG ((DEBUG_INFO,
"TPM_PT_FIRMWARE_VERSION_1 0x%x\n", FirmwareVersion1));
412 DEBUG ((DEBUG_INFO,
"TPM_PT_FIRMWARE_VERSION_2 0x%x\n", FirmwareVersion2));
417 AsciiSPrint (Hid + 3, TPM_HID_PNP_SIZE - 3,
"%02d%02d", ((FirmwareVersion1 & 0xFFFF0000) >> 16), (FirmwareVersion1 & 0x0000FFFF));
419 AsciiSPrint (Hid + 4, TPM_HID_ACPI_SIZE - 4,
"%02d%02d", ((FirmwareVersion1 & 0xFFFF0000) >> 16), (FirmwareVersion1 & 0x0000FFFF));
422 DEBUG ((DEBUG_ERROR,
"Get TPM_PT_FIRMWARE_VERSION_X failed %x!\n", Status));
448 IN EFI_BROWSER_ACTION Action,
449 IN EFI_QUESTION_ID QuestionId,
455 UINT64 PcdTcg2PpiVersion;
456 UINT8 PcdTpm2AcpiTableRev;
458 ASSERT (Action == EFI_BROWSER_ACTION_SUBMITTED);
460 if (QuestionId == KEY_TCG2_PPI_VERSION) {
467 PcdTcg2PpiVersion = 0;
470 PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer),
473 if (PcdTcg2PpiVersion != Value->u64) {
475 EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
477 L
"WARNING: PcdTcgPhysicalPresenceInterfaceVer is not DynamicHii type and does not map to this option!",
478 L
"The version configuring by this setup option will not work!",
482 }
else if (QuestionId == KEY_TPM2_ACPI_REVISION) {
489 PcdTpm2AcpiTableRev =
PcdGet8 (PcdTpm2AcpiTableRev);
491 if (PcdTpm2AcpiTableRev != Value->u8) {
493 EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
495 L
"WARNING: PcdTpm2AcpiTableRev is not DynamicHii type and does not map to this option!",
496 L
"The Revision configuring by this setup option will not work!",
531 IN EFI_BROWSER_ACTION Action,
532 IN EFI_QUESTION_ID QuestionId,
535 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
544 if ((This ==
NULL) || (Value ==
NULL) || (ActionRequest ==
NULL)) {
545 return EFI_INVALID_PARAMETER;
548 Private = TCG2_CONFIG_PRIVATE_DATA_FROM_THIS (This);
550 if (Action == EFI_BROWSER_ACTION_FORM_OPEN) {
554 if (QuestionId == KEY_TPM_DEVICE) {
557 if (EFI_ERROR (Status)) {
571 if (Action == EFI_BROWSER_ACTION_CHANGING) {
572 if (QuestionId == KEY_TPM_DEVICE_INTERFACE) {
574 if (EFI_ERROR (Status)) {
576 EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
578 L
"Error: Fail to set PTP interface!",
581 return EFI_DEVICE_ERROR;
586 if (Action == EFI_BROWSER_ACTION_CHANGED) {
587 if (QuestionId == KEY_TPM_DEVICE) {
591 if (QuestionId == KEY_TPM2_OPERATION) {
595 if (QuestionId == KEY_TPM2_OPERATION_PARAMETER) {
599 if ((QuestionId >= KEY_TPM2_PCR_BANKS_REQUEST_0) && (QuestionId <= KEY_TPM2_PCR_BANKS_REQUEST_4)) {
604 if (Action == EFI_BROWSER_ACTION_SUBMITTED) {
605 if ((QuestionId == KEY_TCG2_PPI_VERSION) || (QuestionId == KEY_TPM2_ACPI_REVISION)) {
610 return EFI_UNSUPPORTED;
628 switch (TpmAlgHash) {
630 if (Buffer[0] != 0) {
631 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
634 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA1");
637 if (Buffer[0] != 0) {
638 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
641 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA256");
644 if (Buffer[0] != 0) {
645 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
648 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA384");
651 if (Buffer[0] != 0) {
652 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
655 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA512");
657 case TPM_ALG_SM3_256:
658 if (Buffer[0] != 0) {
659 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
662 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SM3_256");
679 IN UINT32 BootHashAlg
683 if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA1) != 0) {
684 if (Buffer[0] != 0) {
685 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
688 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA1");
691 if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA256) != 0) {
692 if (Buffer[0] != 0) {
693 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
696 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA256");
699 if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA384) != 0) {
700 if (Buffer[0] != 0) {
701 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
704 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA384");
707 if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA512) != 0) {
708 if (Buffer[0] != 0) {
709 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
712 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SHA512");
715 if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SM3_256) != 0) {
716 if (Buffer[0] != 0) {
717 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
720 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"SM3_256");
735 IN UINT32 TpmAlgHash,
736 IN UINT32 Tcg2HashAlgBitmap
739 switch (TpmAlgHash) {
741 if ((Tcg2HashAlgBitmap & HASH_ALG_SHA1) != 0) {
742 Tcg2ConfigInfo->Sha1Supported =
TRUE;
747 if ((Tcg2HashAlgBitmap & HASH_ALG_SHA256) != 0) {
748 Tcg2ConfigInfo->Sha256Supported =
TRUE;
753 if ((Tcg2HashAlgBitmap & HASH_ALG_SHA384) != 0) {
754 Tcg2ConfigInfo->Sha384Supported =
TRUE;
759 if ((Tcg2HashAlgBitmap & HASH_ALG_SHA512) != 0) {
760 Tcg2ConfigInfo->Sha512Supported =
TRUE;
764 case TPM_ALG_SM3_256:
765 if ((Tcg2HashAlgBitmap & HASH_ALG_SM3_256) != 0) {
766 Tcg2ConfigInfo->Sm3Supported =
TRUE;
785 IN UINT32 TCG2EventLogFormat
789 if ((TCG2EventLogFormat & EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2) != 0) {
790 if (Buffer[0] != 0) {
791 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
794 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"TCG_1_2");
797 if ((TCG2EventLogFormat & EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) != 0) {
798 if (Buffer[0] != 0) {
799 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
802 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"TCG_2");
805 if ((TCG2EventLogFormat & (~EFI_TCG2_EVENT_LOG_FORMAT_ALL)) != 0) {
806 if (Buffer[0] != 0) {
807 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
", ");
810 StrCatS (Buffer, BufferSize /
sizeof (CHAR16), L
"UNKNOWN");
835 CHAR16 TempBuffer[1024];
837 TPM2_PTP_INTERFACE_TYPE TpmDeviceInterfaceDetected;
839 EFI_TCG2_EVENT_ALGORITHM_BITMAP Tcg2HashAlgorithmBitmap;
842 ConfigAccess = &PrivateData->ConfigAccess;
843 Status =
gBS->InstallMultipleProtocolInterfaces (
845 &gEfiDevicePathProtocolGuid,
846 &mTcg2HiiVendorDevicePath,
847 &gEfiHiiConfigAccessProtocolGuid,
851 if (EFI_ERROR (Status)) {
855 PrivateData->DriverHandle = DriverHandle;
861 &gTcg2ConfigFormSetGuid,
863 Tcg2ConfigDxeStrings,
867 if (HiiHandle ==
NULL) {
868 gBS->UninstallMultipleProtocolInterfaces (
870 &gEfiDevicePathProtocolGuid,
871 &mTcg2HiiVendorDevicePath,
872 &gEfiHiiConfigAccessProtocolGuid,
877 return EFI_OUT_OF_RESOURCES;
880 PrivateData->HiiHandle = HiiHandle;
885 switch (PrivateData->TpmDeviceDetected) {
886 case TPM_DEVICE_NULL:
892 case TPM_DEVICE_2_0_DTPM:
900 Tcg2HashAlgorithmBitmap =
PcdGet32 (PcdTcg2HashAlgorithmBitmap);
902 ZeroMem (&Tcg2ConfigInfo,
sizeof (Tcg2ConfigInfo));
904 if (EFI_ERROR (Status)) {
909 for (Index = 0; Index < Pcrs.count; Index++) {
910 if (!
IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {
918 for (Index = 0; Index < Pcrs.count; Index++) {
920 SetConfigInfo (&Tcg2ConfigInfo, Pcrs.pcrSelections[Index].hash, Tcg2HashAlgorithmBitmap);
928 if (EFI_ERROR (Status)) {
929 DEBUG ((DEBUG_ERROR,
"Tpm2GetCapabilityIsCmdImpl fails %r\n", Status));
932 Tcg2ConfigInfo.ChangeEPSSupported = IsCmdImp;
946 UnicodeSPrint (TempBuffer,
sizeof (TempBuffer), L
"%d", PrivateData->ProtocolCapability.NumberOfPCRBanks);
955 if (PrivateData->TpmDeviceDetected == TPM_DEVICE_2_0_DTPM) {
956 TpmDeviceInterfaceDetected =
PcdGet8 (PcdActiveTpmInterfaceType);
957 switch (TpmDeviceInterfaceDetected) {
958 case Tpm2PtpInterfaceTis:
961 case Tpm2PtpInterfaceFifo:
964 case Tpm2PtpInterfaceCrb:
972 Tcg2ConfigInfo.TpmDeviceInterfaceAttempt = TpmDeviceInterfaceDetected;
973 switch (TpmDeviceInterfaceDetected) {
974 case Tpm2PtpInterfaceTis:
975 Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported =
FALSE;
976 Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported =
FALSE;
979 case Tpm2PtpInterfaceFifo:
980 case Tpm2PtpInterfaceCrb:
984 if (Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported) {
985 if (TempBuffer[0] != 0) {
986 StrCatS (TempBuffer,
sizeof (TempBuffer) /
sizeof (CHAR16), L
", ");
989 StrCatS (TempBuffer,
sizeof (TempBuffer) /
sizeof (CHAR16), L
"PTP FIFO");
992 if (Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported) {
993 if (TempBuffer[0] != 0) {
994 StrCatS (TempBuffer,
sizeof (TempBuffer) /
sizeof (CHAR16), L
", ");
997 StrCatS (TempBuffer,
sizeof (TempBuffer) /
sizeof (CHAR16), L
"PTP CRB");
1003 Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported =
FALSE;
1004 Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported =
FALSE;
1013 Status =
gRT->SetVariable (
1014 TCG2_STORAGE_INFO_NAME,
1015 &gTcg2ConfigFormSetGuid,
1016 EFI_VARIABLE_BOOTSERVICE_ACCESS,
1017 sizeof (Tcg2ConfigInfo),
1020 if (EFI_ERROR (Status)) {
1021 DEBUG ((DEBUG_ERROR,
"Tcg2ConfigDriver: Fail to set TCG2_STORAGE_INFO_NAME\n"));
1041 if (PrivateData->HiiHandle !=
NULL) {
1043 PrivateData->HiiHandle =
NULL;
1049 if (PrivateData->DriverHandle !=
NULL) {
1050 gBS->UninstallMultipleProtocolInterfaces (
1051 PrivateData->DriverHandle,
1052 &gEfiDevicePathProtocolGuid,
1053 &mTcg2HiiVendorDevicePath,
1054 &gEfiHiiConfigAccessProtocolGuid,
1055 &PrivateData->ConfigAccess,
1058 PrivateData->DriverHandle =
NULL;
RETURN_STATUS EFIAPI StrCatS(IN OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source)
RETURN_STATUS EFIAPI AsciiStrToUnicodeStrS(IN CONST CHAR8 *Source, OUT CHAR16 *Destination, IN UINTN DestMax)
UINTN EFIAPI AsciiStrSize(IN CONST CHAR8 *String)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
BOOLEAN EFIAPI IsZeroBuffer(IN CONST VOID *Buffer, IN UINTN Length)
#define HARDWARE_DEVICE_PATH
VOID EFIAPI FreePool(IN VOID *Buffer)
EFI_HII_HANDLE EFIAPI HiiAddPackages(IN CONST EFI_GUID *PackageListGuid, IN EFI_HANDLE DeviceHandle OPTIONAL,...)
EFI_STRING_ID EFIAPI HiiSetString(IN EFI_HII_HANDLE HiiHandle, IN EFI_STRING_ID StringId OPTIONAL, IN CONST EFI_STRING String, IN CONST CHAR8 *SupportedLanguages OPTIONAL)
VOID EFIAPI HiiRemovePackages(IN EFI_HII_HANDLE HiiHandle)
UINT32 EFIAPI MmioRead32(IN UINTN Address)
UINT32 EFIAPI MmioWrite32(IN UINTN Address, IN UINT32 Value)
UINTN EFIAPI UnicodeSPrint(OUT CHAR16 *StartOfBuffer, IN UINTN BufferSize, IN CONST CHAR16 *FormatString,...)
UINTN EFIAPI AsciiSPrint(OUT CHAR8 *StartOfBuffer, IN UINTN BufferSize, IN CONST CHAR8 *FormatString,...)
EFI_RUNTIME_SERVICES * gRT
#define DEBUG(Expression)
UINT32 EFIAPI Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction(IN UINT32 OperationRequest, IN UINT32 RequestParameter)
#define PcdGet64(TokenName)
#define PcdGet8(TokenName)
#define PcdGet32(TokenName)
#define PcdGetPtr(TokenName)
EFI_STATUS EFIAPI Register(IN EFI_PEI_RSC_HANDLER_CALLBACK Callback)
VOID UninstallTcg2ConfigForm(IN OUT TCG2_CONFIG_PRIVATE_DATA *PrivateData)
EFI_STATUS Tcg2VersionInfoCallback(IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value)
EFI_STATUS SaveTcg2PCRBanksRequest(IN UINTN PCRBankIndex, IN BOOLEAN Enable)
VOID FillBufferWithTCG2EventLogFormat(IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 TCG2EventLogFormat)
BOOLEAN IsPtpFifoSupported(IN VOID *Register)
EFI_STATUS SaveTcg2PpRequest(IN UINT8 PpRequest)
EFI_STATUS GetTpm2HID(CHAR8 *Hid, UINTN Size)
VOID AppendBufferWithTpmAlgHash(IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 TpmAlgHash)
EFI_STATUS InstallTcg2ConfigForm(IN OUT TCG2_CONFIG_PRIVATE_DATA *PrivateData)
VOID SetConfigInfo(IN OUT TCG2_CONFIGURATION_INFO *Tcg2ConfigInfo, IN UINT32 TpmAlgHash, IN UINT32 Tcg2HashAlgBitmap)
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)
VOID FillBufferWithBootHashAlg(IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 BootHashAlg)
BOOLEAN IsPtpCrbSupported(IN VOID *Register)
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)
EFI_STATUS SaveTcg2PpRequestParameter(IN UINT32 PpRequestParameter)
EFI_STATUS SetPtpInterface(IN VOID *Register, IN UINT8 PtpInterface)
EFI_STATUS EFIAPI Tpm2GetCapabilityIsCommandImplemented(IN TPM_CC Command, OUT BOOLEAN *IsCmdImpl)
EFI_STATUS EFIAPI Tpm2GetCapabilityFirmwareVersion(OUT UINT32 *FirmwareVersion1, OUT UINT32 *FirmwareVersion2)
EFI_STATUS EFIAPI Tpm2GetCapabilityManufactureID(OUT UINT32 *ManufactureId)
EFI_STATUS EFIAPI Tpm2GetCapabilityPcrs(OUT TPML_PCR_SELECTION *Pcrs)
#define PTP_INTERFACE_IDENTIFIER_INTERFACE_SELECTOR_FIFO
#define PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_FIFO
VOID EFIAPI CreatePopUp(IN UINTN Attribute, OUT EFI_INPUT_KEY *Key OPTIONAL,...)