\r
Caution: This function may receive untrusted input.\r
\r
- @param[in out] Pointer to OperationRequest TPM physical presence operation request.\r
- @param[in out] Pointer to RequestParameter TPM physical presence operation request parameter.\r
+ @param[in, out] Pointer to OperationRequest TPM physical presence operation request.\r
+ @param[in, out] Pointer to RequestParameter TPM physical presence operation request parameter.\r
\r
@return Return Code for Submit TPM Operation Request to Pre-OS Environment and\r
Submit TPM Operation Request to Pre-OS Environment 2.\r
}\r
\r
if ((*OperationRequest > TCG2_PHYSICAL_PRESENCE_NO_ACTION_MAX) &&\r
- (*OperationRequest < TCG2_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION) ) {\r
- //\r
- // This command requires UI to prompt user for Auth data.\r
- //\r
+ (*OperationRequest < TCG2_PHYSICAL_PRESENCE_STORAGE_MANAGEMENT_BEGIN) ) {\r
ReturnCode = TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED;\r
goto EXIT;\r
}\r
DataSize,\r
&PpData\r
);\r
- }\r
-\r
- if (EFI_ERROR (Status)) { \r
- DEBUG ((EFI_D_ERROR, "[TPM2] Set PP variable failure! Status = %r\n", Status));\r
- ReturnCode = TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE;\r
- goto EXIT;\r
+ if (EFI_ERROR (Status)) { \r
+ DEBUG ((EFI_D_ERROR, "[TPM2] Set PP variable failure! Status = %r\n", Status));\r
+ ReturnCode = TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE;\r
+ goto EXIT;\r
+ }\r
}\r
\r
if (*OperationRequest >= TCG2_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION) {\r
&Flags\r
);\r
if (EFI_ERROR (Status)) {\r
- Flags.PPFlags = TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT;\r
+ Flags.PPFlags = TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT | TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_DEFAULT;\r
}\r
ReturnCode = Tcg2PpVendorLibSubmitRequestToPreOSFunction (*OperationRequest, Flags.PPFlags, *RequestParameter);\r
}\r
RequestConfirmed = TRUE;\r
break;\r
\r
+ case TCG2_PHYSICAL_PRESENCE_ENABLE_BLOCK_SID:\r
+ if ((Flags.PPFlags & TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_ENABLE_BLOCK_SID) == 0) {\r
+ RequestConfirmed = TRUE;\r
+ }\r
+ break;\r
+\r
+ case TCG2_PHYSICAL_PRESENCE_DISABLE_BLOCK_SID:\r
+ if ((Flags.PPFlags & TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_DISABLE_BLOCK_SID) == 0) {\r
+ RequestConfirmed = TRUE;\r
+ }\r
+ break;\r
+\r
+ case TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_FUNC_TRUE:\r
+ case TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_FUNC_TRUE:\r
+ RequestConfirmed = TRUE;\r
+ break;\r
+\r
+ case TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_FUNC_FALSE:\r
+ case TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_FUNC_FALSE:\r
+ break;\r
+\r
default:\r
if (OperationRequest <= TCG2_PHYSICAL_PRESENCE_NO_ACTION_MAX) {\r
RequestConfirmed = TRUE;\r
}\r
\r
/**\r
- The constructor function register UNI strings into imageHandle.\r
+ The constructor function locates SmmVariable protocol.\r
\r
It will ASSERT() if that operation fails and it will always return EFI_SUCCESS. \r
\r