2, Move PcdPlatformBootTimeout to IntelFrameworkModulePkg.
3, Remove BdsLibGetTimeout() interface from GenericBdsLib, because the PCD PcdPlatformBootTimeout will take care of persistent for time out value.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7707
6f19259b-4bc3-4df7-8a09-
765794883524
//\r
// Bds misc lib functions\r
//\r
-/**\r
- Return the default value for system Timeout variable.\r
-\r
- @return Timeout value.\r
-\r
-**/\r
-UINT16\r
-EFIAPI\r
-BdsLibGetTimeout (\r
- VOID\r
- );\r
-\r
/**\r
Get boot mode by looking up configuration table and parsing HOB list\r
\r
[PcdsPatchableInModule.common]\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|UINT16|0x00010025\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeRuntimeMemorySize|128|UINT16|0x0001002e\r
-\r
-\r
+ \r
+[PcdsDynamic.common]\r
+ ## Timeout value for displaying progressing bar in before boot OS.\r
+ # According to UEFI 2.0 spec, it should treat the Timeout value as 0xffff.\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0xffff|UINT16|0x40000001\r
\r
extern UINT16 gPlatformBootTimeOutDefault;\r
\r
-\r
-/**\r
- Return the default value for system Timeout variable.\r
-\r
- @return Timeout value.\r
-\r
-**/\r
-UINT16\r
-EFIAPI\r
-BdsLibGetTimeout (\r
- VOID\r
- )\r
-{\r
- UINT16 Timeout;\r
- UINTN Size;\r
- EFI_STATUS Status;\r
-\r
- //\r
- // Return Timeout variable or 0xffff if no valid\r
- // Timeout variable exists.\r
- //\r
- Size = sizeof (UINT16);\r
- Status = gRT->GetVariable (L"Timeout", &gEfiGlobalVariableGuid, NULL, &Size, &Timeout);\r
- if (EFI_ERROR (Status)) {\r
- //\r
- // According to UEFI 2.0 spec, it should treat the Timeout value as 0xffff\r
- // (default value PcdPlatformBootTimeOutDefault) when L"Timeout" variable is not present.\r
- // To make the current EFI Automatic-Test activity possible, platform can choose other value\r
- // for automatic boot when the variable is not present.\r
- //\r
- Timeout = PcdGet16 (PcdPlatformBootTimeOutDefault);\r
- }\r
-\r
- return Timeout;\r
-}\r
-\r
/**\r
The function will go through the driver option link list, load and start\r
every driver the driver option device path point to.\r
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport\r
\r
[Pcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdPlatformBootTimeOutDefault\r
gEfiMdeModulePkgTokenSpaceGuid.PcdDefaultBootFileName\r
#include <Library/CapsuleLib.h>\r
#include <Library/HiiLib.h>\r
#include <Library/ExtendedHiiLib.h>\r
-\r
+#include <Library/PcdLib.h>\r
\r
#include <Library/GenericBdsLib.h>\r
#include <Library/PlatformBdsLib.h>\r
UefiDriverEntryPoint\r
PlatformBdsLib\r
CapsuleLib\r
-\r
+ PcdLib\r
+ \r
[Guids]\r
gEfiGlobalVariableGuid ## SOMETIMES_PRODUCES ## Variable:L"BootNext" (The number of next boot option)\r
## SOMETIMES_PRODUCES ## Variable:L"BootXX" (Boot option variable)\r
gEfiMdeModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel\r
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow\r
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn\r
-\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut\r
+ \r
[Depex]\r
TRUE\r
\r
break;\r
\r
case FORM_TIME_OUT_ID:\r
- Status = gRT->SetVariable (\r
- L"Timeout",\r
- &gEfiGlobalVariableGuid,\r
- VAR_FLAG,\r
- sizeof (UINT16),\r
- &(CurrentFakeNVMap->BootTimeOut)\r
- );\r
- if (EFI_ERROR (Status)) {\r
- goto Error;\r
- }\r
+ PcdSet16 (PcdPlatformBootTimeOut, CurrentFakeNVMap->BootTimeOut);\r
\r
Private->BmmOldFakeNVData.BootTimeOut = CurrentFakeNVMap->BootTimeOut;\r
break;\r
\r
UpdatePageStart (CallbackData);\r
\r
- BootTimeOut = BdsLibGetTimeout ();\r
+ BootTimeOut = PcdGet16 (PcdPlatformBootTimeOut);\r
\r
CreateNumericOpCode (\r
(EFI_QUESTION_ID) BOOT_TIME_OUT_QUESTION_ID,\r