mirror of https://github.com/acidanthera/audk.git
SecurityPkg OpalPasswordDxe: Check BlockSid capability before send command.
Not all opal device support BlockSid feature. So Add code logic to check the capability before send BlockSid command. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
This commit is contained in:
parent
8d3d84508f
commit
be08755355
|
@ -388,14 +388,11 @@ ReadyToBootCallback (
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
OPAL_DRIVER_DEVICE* Itr;
|
OPAL_DRIVER_DEVICE* Itr;
|
||||||
UINT8 Count;
|
|
||||||
TCG_RESULT Result;
|
TCG_RESULT Result;
|
||||||
OPAL_EXTRA_INFO_VAR OpalExtraInfo;
|
OPAL_EXTRA_INFO_VAR OpalExtraInfo;
|
||||||
UINTN DataSize;
|
UINTN DataSize;
|
||||||
OPAL_SESSION Session;
|
OPAL_SESSION Session;
|
||||||
|
|
||||||
Count = 0;
|
|
||||||
|
|
||||||
gBS->CloseEvent (Event);
|
gBS->CloseEvent (Event);
|
||||||
|
|
||||||
DataSize = sizeof (OPAL_EXTRA_INFO_VAR);
|
DataSize = sizeof (OPAL_EXTRA_INFO_VAR);
|
||||||
|
@ -415,21 +412,21 @@ ReadyToBootCallback (
|
||||||
// Send BlockSID command to each Opal disk
|
// Send BlockSID command to each Opal disk
|
||||||
//
|
//
|
||||||
Itr = mOpalDriver.DeviceList;
|
Itr = mOpalDriver.DeviceList;
|
||||||
Count = 0;
|
|
||||||
while (Itr != NULL) {
|
while (Itr != NULL) {
|
||||||
ZeroMem(&Session, sizeof(Session));
|
if (Itr->OpalDisk.SupportedAttributes.BlockSid) {
|
||||||
Session.Sscp = Itr->OpalDisk.Sscp;
|
ZeroMem(&Session, sizeof(Session));
|
||||||
Session.MediaId = Itr->OpalDisk.MediaId;
|
Session.Sscp = Itr->OpalDisk.Sscp;
|
||||||
Session.OpalBaseComId = Itr->OpalDisk.OpalBaseComId;
|
Session.MediaId = Itr->OpalDisk.MediaId;
|
||||||
|
Session.OpalBaseComId = Itr->OpalDisk.OpalBaseComId;
|
||||||
|
|
||||||
Result = OpalBlockSid (&Session, TRUE); // HardwareReset must always be TRUE
|
Result = OpalBlockSid (&Session, TRUE); // HardwareReset must always be TRUE
|
||||||
if (Result != TcgResultSuccess) {
|
if (Result != TcgResultSuccess) {
|
||||||
DEBUG ((DEBUG_ERROR, "OpalBlockSid fail\n"));
|
DEBUG ((DEBUG_ERROR, "OpalBlockSid fail\n"));
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Itr = Itr->Next;
|
Itr = Itr->Next;
|
||||||
Count++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue