&DataSize,\r
&OpalExtraInfo\r
);\r
- DEBUG ((DEBUG_INFO, "GetVariable for OpalExtraInfo @ HiiSetCurrentConfiguration, Status: %r\n", Status));\r
if (!EFI_ERROR (Status)) {\r
gHiiConfiguration.EnableBlockSid = OpalExtraInfo.EnableBlockSid;\r
}\r
}\r
\r
-/**\r
- Check that all required protocols for HII are available.\r
-\r
- @retval EFI_SUCCESS All required protocols are installed.\r
- @retval EFI_NOT_FOUND One or more protocol are not installed.\r
-**/\r
-EFI_STATUS\r
-HiiCheckForRequiredProtocols (\r
- VOID\r
- )\r
-{\r
- VOID* TempProtocol;\r
- EFI_STATUS Status;\r
-\r
- Status = gBS->LocateProtocol(&gEfiHiiStringProtocolGuid, NULL, (VOID**)&TempProtocol );\r
- if (EFI_ERROR (Status)) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- Status = gBS->LocateProtocol(&gEfiHiiDatabaseProtocolGuid, NULL, (VOID**)&TempProtocol );\r
- if (EFI_ERROR (Status)) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- Status = gBS->LocateProtocol(&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID**)&TempProtocol );\r
- if (EFI_ERROR (Status)) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- Status = gBS->LocateProtocol(&gEfiFormBrowser2ProtocolGuid, NULL, (VOID**)&TempProtocol );\r
- if (EFI_ERROR (Status)) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
/**\r
Install the HII related resources.\r
\r
EFI_STATUS Status;\r
EFI_HANDLE DriverHandle;\r
\r
- //\r
- // Check that all required protocols are available for HII.\r
- // If not, fail the install\r
- //\r
- Status = HiiCheckForRequiredProtocols();\r
- if (EFI_ERROR(Status)) {\r
- return Status;\r
- }\r
-\r
//\r
// Clear the global configuration.\r
//\r
\r
case HII_KEY_ID_GOTO_REVERT:\r
gHiiConfiguration.AvailableFields |= HII_FIELD_PASSWORD;\r
- gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;\r
+ if (OpalDisk->SupportedAttributes.PyriteSsc != 1) {\r
+ //\r
+ // According to current Pyrite SSC Spec 1.00, there is no parameter for RevertSP method.\r
+ // So issue RevertSP method without any parameter by suppress KeepUserData option.\r
+ //\r
+ gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;\r
+ }\r
if (AvailActions.RevertKeepDataForced) {\r
gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA_FORCED;\r
}\r
EFI_STATUS\r
EFIAPI\r
DriverCallback(\r
- CONST EFI_HII_CONFIG_ACCESS_PROTOCOL* This,\r
+ CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
EFI_BROWSER_ACTION Action,\r
EFI_QUESTION_ID QuestionId,\r
UINT8 Type,\r
- EFI_IFR_TYPE_VALUE* Value,\r
- EFI_BROWSER_ACTION_REQUEST* ActionRequest\r
+ EFI_IFR_TYPE_VALUE *Value,\r
+ EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
)\r
{\r
HII_KEY HiiKey;\r
\r
if (ActionRequest != NULL) {\r
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;\r
+ } else {\r
+ return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
\r
case HII_KEY_ID_ENTER_PASSWORD:\r
return HiiPasswordEntered(Value->string);\r
-\r
- case HII_KEY_ID_BLOCKSID:\r
- return HiiSetBlockSid(Value->b);\r
}\r
} else if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
switch (HiiKeyId) {\r
HiiPsidRevert();\r
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
return EFI_SUCCESS;\r
+\r
+ case HII_KEY_ID_BLOCKSID:\r
+ HiiSetBlockSid(Value->b);\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
+ return EFI_SUCCESS;\r
}\r
}\r
\r
gHiiConfiguration.SelectedDiskAvailableActions |= (AvailActions.UserPass == 1) ? HII_ACTION_SET_USER_PWD : HII_ACTION_NONE;\r
gHiiConfiguration.SelectedDiskAvailableActions |= (AvailActions.SecureErase == 1) ? HII_ACTION_SECURE_ERASE : HII_ACTION_NONE;\r
gHiiConfiguration.SelectedDiskAvailableActions |= (AvailActions.DisableUser == 1) ? HII_ACTION_DISABLE_USER : HII_ACTION_NONE;\r
- gHiiConfiguration.SelectedDiskAvailableActions |= HII_ACTION_ENABLE_BLOCKSID;\r
\r
HiiSetFormString (STRING_TOKEN(STR_DISK_INFO_PSID_REVERT), "PSID Revert to factory default and Disable");\r
\r
// Default initialize keep user Data to be true\r
//\r
gHiiConfiguration.KeepUserData = 1;\r
+ if (OpalDisk->SupportedAttributes.PyriteSsc == 1) {\r
+ //\r
+ // According to current Pyrite SSC Spec 1.00, there is no parameter for RevertSP method.\r
+ // So issue RevertSP method without any parameter by set default value to FALSE.\r
+ //\r
+ gHiiConfiguration.KeepUserData = 0;\r
+ }\r
+\r
}\r
}\r
}\r
\r
UnicodeStrToAsciiStr(gHiiConfiguration.Psid, (CHAR8*)Psid.Psid);\r
\r
- OpalDisk = HiiGetOpalDiskCB(gHiiConfiguration.SelectedDiskIndex);\r
-\r
- ZeroMem(&Session, sizeof(Session));\r
- Session.Sscp = OpalDisk->Sscp;\r
- Session.MediaId = OpalDisk->MediaId;\r
- Session.OpalBaseComId = OpalDisk->OpalBaseComId;\r
-\r
+ OpalDisk = HiiGetOpalDiskCB (gHiiConfiguration.SelectedDiskIndex);\r
if (OpalDisk != NULL) {\r
+ ZeroMem(&Session, sizeof(Session));\r
+ Session.Sscp = OpalDisk->Sscp;\r
+ Session.MediaId = OpalDisk->MediaId;\r
+ Session.OpalBaseComId = OpalDisk->OpalBaseComId;\r
+\r
Ret = OpalSupportPsidRevert(&Session, Psid.Psid, (UINT32)sizeof(Psid.Psid), OpalDisk->OpalDevicePath);\r
}\r
\r
UnicodeStrToAsciiStr(UniStr, Password);\r
gBS->FreePool(UniStr);\r
\r
- DEBUG ((DEBUG_INFO, "Password: '%s'\n", Password));\r
-\r
if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_UNLOCK) {\r
Status = HiiUnlock (OpalDisk, Password, PassLength);\r
} else if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_SECURE_ERASE) {\r
\r
Status = EFI_SUCCESS;\r
\r
- DEBUG ((DEBUG_INFO, "HiiSetBlockSid(enable: %x)\n", Enable));\r
-\r
OpalExtraInfo.EnableBlockSid = Enable;\r
DataSize = sizeof (OPAL_EXTRA_INFO_VAR);\r
Status = gRT->SetVariable (\r
DataSize,\r
&OpalExtraInfo\r
);\r
- DEBUG ((DEBUG_INFO, "SetVariable, Status: %r\n", Status));\r
\r
return Status;\r
}\r
EFI_STRING *Progress\r
)\r
{\r
- DEBUG ((DEBUG_INFO, "RouteConfig( )\n"));\r
if (Configuration == NULL || Progress == NULL) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
{\r
EFI_STATUS Status;\r
\r
- DEBUG ((DEBUG_INFO, "ExtractConfig( )\n"));\r
-\r
//\r
// Check for valid parameters\r
//\r
VOID\r
)\r
{\r
- DEBUG ((DEBUG_INFO, "OpalHiiSetBrowserData( )\n"));\r
HiiSetBrowserData(\r
&gHiiSetupVariableGuid,\r
(CHAR16*)L"OpalHiiConfig",\r
VOID\r
)\r
{\r
- DEBUG ((DEBUG_INFO, "OpalHiiGetBrowserData( )\n"));\r
HiiGetBrowserData(\r
&gHiiSetupVariableGuid,\r
(CHAR16*)L"OpalHiiConfig",\r
UINT32 UniSize;\r
CHAR16* UniStr;\r
\r
- DEBUG ((DEBUG_INFO, "HiiSetFormString( )\n"));\r
-\r
//\r
// Determine the Length of the sting\r
//\r