Skip to content

Commit

Permalink
SecurityPkg OpalPasswordDxe: gray out menu instead of suppress it.
Browse files Browse the repository at this point in the history
For current implementation, if the device is pyrite type, driver
will suppress the "keep user data" option. Base on the feedback
from user, they prefer to keep the menu but gray out it. Now base
on this feedback to update the driver.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <[email protected]>
Reviewed-by: Feng Tian <[email protected]>
  • Loading branch information
ydong10 authored and lzeng14 committed Jun 16, 2016
1 parent 9fb16e2 commit 0efc3be
Showing 1 changed file with 10 additions and 17 deletions.
27 changes: 10 additions & 17 deletions SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,13 +329,7 @@ HiiSelectDiskAction (

case HII_KEY_ID_GOTO_REVERT:
gHiiConfiguration.AvailableFields |= HII_FIELD_PASSWORD;
if (OpalDisk->SupportedAttributes.PyriteSsc != 1) {
//
// According to current Pyrite SSC Spec 1.00, there is no parameter for RevertSP method.
// So issue RevertSP method without any parameter by suppress KeepUserData option.
//
gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;
}
gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;
if (AvailActions.RevertKeepDataForced) {
gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA_FORCED;
}
Expand Down Expand Up @@ -573,14 +567,6 @@ HiiPopulateDiskInfoForm(
// Default initialize keep user Data to be true
//
gHiiConfiguration.KeepUserData = 1;
if (OpalDisk->SupportedAttributes.PyriteSsc == 1) {
//
// According to current Pyrite SSC Spec 1.00, there is no parameter for RevertSP method.
// So issue RevertSP method without any parameter by set default value to FALSE.
//
gHiiConfiguration.KeepUserData = 0;
}

}
}
}
Expand Down Expand Up @@ -1073,8 +1059,15 @@ HiiPasswordEntered(
} else if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_DISABLE_USER) {
Status = HiiDisableUser (OpalDisk, Password, PassLength);
} else if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_REVERT) {
DEBUG ((DEBUG_INFO, "gHiiConfiguration.KeepUserData %u\n", gHiiConfiguration.KeepUserData));
Status = HiiRevert(OpalDisk, Password, PassLength, gHiiConfiguration.KeepUserData);
if (OpalDisk->SupportedAttributes.PyriteSsc == 1 && OpalDisk->LockingFeature.MediaEncryption == 0) {
//
// For pyrite type device which also not supports media encryption, it not accept "Keep User Data" parameter.
// So here hardcode a FALSE for this case.
//
Status = HiiRevert(OpalDisk, Password, PassLength, FALSE);
} else {
Status = HiiRevert(OpalDisk, Password, PassLength, gHiiConfiguration.KeepUserData);
}
} else {
Status = HiiSetPassword(OpalDisk, Password, PassLength);
}
Expand Down

0 comments on commit 0efc3be

Please sign in to comment.