mirror of https://github.com/acidanthera/audk.git
SecurityPkg TcgSmm: Enable Storage actions.
After enable storage related actions in the TcgPhysicalPresenceStorageLib, use this library to support storage related actions in this driver. Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com>
This commit is contained in:
parent
509b0fe358
commit
177dca331f
|
@ -55,6 +55,7 @@ PhysicalPresenceCallback (
|
||||||
EFI_PHYSICAL_PRESENCE PpData;
|
EFI_PHYSICAL_PRESENCE PpData;
|
||||||
EFI_PHYSICAL_PRESENCE_FLAGS Flags;
|
EFI_PHYSICAL_PRESENCE_FLAGS Flags;
|
||||||
BOOLEAN RequestConfirmed;
|
BOOLEAN RequestConfirmed;
|
||||||
|
UINT32 StorageFlags;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Get the Physical Presence variable
|
// Get the Physical Presence variable
|
||||||
|
@ -150,6 +151,11 @@ PhysicalPresenceCallback (
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get the Physical Presence storage flags
|
||||||
|
//
|
||||||
|
StorageFlags = TcgPhysicalPresenceStorageLibReturnStorageFlags();
|
||||||
|
|
||||||
RequestConfirmed = FALSE;
|
RequestConfirmed = FALSE;
|
||||||
|
|
||||||
switch (mTcgNvs->PPRequestUserConfirm) {
|
switch (mTcgNvs->PPRequestUserConfirm) {
|
||||||
|
@ -201,6 +207,23 @@ PhysicalPresenceCallback (
|
||||||
//
|
//
|
||||||
mTcgNvs->PhysicalPresence.ReturnCode = TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED;
|
mTcgNvs->PhysicalPresence.ReturnCode = TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED;
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
|
|
||||||
|
case TCG2_PHYSICAL_PRESENCE_ENABLE_BLOCK_SID:
|
||||||
|
if ((StorageFlags & TCG_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_ENABLE_BLOCK_SID) == 0) {
|
||||||
|
RequestConfirmed = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TCG2_PHYSICAL_PRESENCE_DISABLE_BLOCK_SID:
|
||||||
|
if ((StorageFlags & TCG_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_DISABLE_BLOCK_SID) == 0) {
|
||||||
|
RequestConfirmed = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_FUNC_TRUE:
|
||||||
|
case TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_FUNC_TRUE:
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#include <PiDxe.h>
|
#include <PiDxe.h>
|
||||||
#include <IndustryStandard/Acpi.h>
|
#include <IndustryStandard/Acpi.h>
|
||||||
#include <IndustryStandard/UefiTcgPlatform.h>
|
#include <IndustryStandard/UefiTcgPlatform.h>
|
||||||
|
#include <IndustryStandard/TcgPhysicalPresence.h>
|
||||||
|
|
||||||
#include <Guid/PhysicalPresenceData.h>
|
#include <Guid/PhysicalPresenceData.h>
|
||||||
#include <Guid/MemoryOverwriteControl.h>
|
#include <Guid/MemoryOverwriteControl.h>
|
||||||
|
@ -37,6 +38,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#include <Library/TpmMeasurementLib.h>
|
#include <Library/TpmMeasurementLib.h>
|
||||||
#include <Library/PcdLib.h>
|
#include <Library/PcdLib.h>
|
||||||
#include <Library/TcgPpVendorLib.h>
|
#include <Library/TcgPpVendorLib.h>
|
||||||
|
#include <Library/TcgPhysicalPresenceStorageLib.h>
|
||||||
|
|
||||||
#pragma pack(1)
|
#pragma pack(1)
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
TpmMeasurementLib
|
TpmMeasurementLib
|
||||||
PcdLib
|
PcdLib
|
||||||
TcgPpVendorLib
|
TcgPpVendorLib
|
||||||
|
TcgPhysicalPresenceStorageLib
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
## SOMETIMES_PRODUCES ## Variable:L"PhysicalPresence"
|
## SOMETIMES_PRODUCES ## Variable:L"PhysicalPresence"
|
||||||
|
|
Loading…
Reference in New Issue