From b20e0d29fa99d7e6126930e133afada55ad1bc66 Mon Sep 17 00:00:00 2001 From: Eric Dong Date: Fri, 22 Apr 2016 10:54:05 +0800 Subject: SecurityPkg TcgStorageOpalLib: Check BlockSid capability. Check the BlockSid feature capability through check BlockSid header in the DiscoveryHeader. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong Reviewed-by: Feng Tian --- SecurityPkg/Include/Library/TcgStorageOpalLib.h | 6 ++++++ SecurityPkg/Library/TcgStorageOpalLib/TcgStorageOpalCore.c | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'SecurityPkg') diff --git a/SecurityPkg/Include/Library/TcgStorageOpalLib.h b/SecurityPkg/Include/Library/TcgStorageOpalLib.h index a9b4f2fe6e..108affc422 100644 --- a/SecurityPkg/Include/Library/TcgStorageOpalLib.h +++ b/SecurityPkg/Include/Library/TcgStorageOpalLib.h @@ -76,6 +76,12 @@ typedef struct { // 1 - The initial C_PIN_SID PIN value is equal to the C_PIN_MSID PIN value // UINT32 CpinUponRevert : 1; + + // + // Media encryption supported (0 - not supported, 1 - supported) + // + UINT32 BlockSid : 1; + } OPAL_DISK_SUPPORT_ATTRIBUTE; // diff --git a/SecurityPkg/Library/TcgStorageOpalLib/TcgStorageOpalCore.c b/SecurityPkg/Library/TcgStorageOpalLib/TcgStorageOpalCore.c index f60a427012..7674ee5716 100644 --- a/SecurityPkg/Library/TcgStorageOpalLib/TcgStorageOpalCore.c +++ b/SecurityPkg/Library/TcgStorageOpalLib/TcgStorageOpalCore.c @@ -1515,6 +1515,12 @@ OpalGetSupportedAttributesInfo( SupportedAttributes->MediaEncryption = Feat->Locking.MediaEncryption; } + Size = 0; + Feat = (OPAL_LEVEL0_FEATURE_DESCRIPTOR*) TcgGetFeature (DiscoveryHeader, TCG_FEATURE_BLOCK_SID, &Size); + if (Feat != NULL && Size >= sizeof (TCG_BLOCK_SID_FEATURE_DESCRIPTOR)) { + SupportedAttributes->BlockSid = TRUE; + } + DEBUG ((DEBUG_INFO, "Base COMID 0x%04X \n", *OpalBaseComId)); -- cgit v1.2.3