EFI_PHYSICAL_PRESENCE PpData;\r
EFI_PHYSICAL_PRESENCE_FLAGS Flags;\r
BOOLEAN RequestConfirmed;\r
+ UINT32 StorageFlags;\r
\r
//\r
// Get the Physical Presence variable\r
return EFI_SUCCESS;\r
}\r
\r
+ //\r
+ // Get the Physical Presence storage flags\r
+ //\r
+ StorageFlags = TcgPhysicalPresenceStorageLibReturnStorageFlags();\r
+\r
RequestConfirmed = FALSE;\r
\r
switch (mTcgNvs->PPRequestUserConfirm) {\r
//\r
mTcgNvs->PhysicalPresence.ReturnCode = TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED; \r
return EFI_SUCCESS;\r
+\r
+ case TCG2_PHYSICAL_PRESENCE_ENABLE_BLOCK_SID:\r
+ if ((StorageFlags & TCG_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 ((StorageFlags & TCG_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
+ break;\r
+\r
default:\r
break;\r
}\r
#include <PiDxe.h>\r
#include <IndustryStandard/Acpi.h>\r
#include <IndustryStandard/UefiTcgPlatform.h>\r
+#include <IndustryStandard/TcgPhysicalPresence.h>\r
\r
#include <Guid/PhysicalPresenceData.h>\r
#include <Guid/MemoryOverwriteControl.h>\r
#include <Library/TpmMeasurementLib.h>\r
#include <Library/PcdLib.h>\r
#include <Library/TcgPpVendorLib.h>\r
+#include <Library/TcgPhysicalPresenceStorageLib.h>\r
\r
#pragma pack(1)\r
typedef struct {\r