2, Move PcdHardwareErrorRecordLevel to IntelFrameworkModulePkg
3, Change PCD type to dynamic, Platform integrator need set this PCD type as HII type PCD mapped to variable L"HwErrRecSupport".
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7713
6f19259b-4bc3-4df7-8a09-
765794883524
## 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
+ ## Error level for hardware recorder. If value 0, platform does not support feature of hardware error record.\r
+ # This PCD should be set as HII type PCD by platform integrator mapped to variable L"HwErrRecSupport"\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel|0|UINT16|0x40000002\r
\r
[FeaturePcd.common]\r
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHardwareErrorRecord\r
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport\r
\r
[Pcd.common]\r
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang\r
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes\r
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel\r
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow\r
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut\r
PERF_START (0, "PlatformBds", "BDS", 0);\r
PlatformBdsInit (PrivateData);\r
\r
- if (FeaturePcdGet (PcdSupportHardwareErrorRecord)) {\r
- InitializeHwErrRecSupport (PcdGet16 (PcdHardwareErrorRecordLevel));\r
- }\r
+ InitializeHwErrRecSupport();\r
+ \r
//\r
// bugbug: platform specific code\r
// Initialize the platform specific string and language\r
level of support for Hardware Error Record Persistence that is implemented\r
by the platform.\r
\r
-\r
- @param HwErrRecSupportLevel\r
- zero value: Indicates that the platform implements no support for\r
- Hardware Error Record Persistence.\r
- non-zero value: Indicates that the platform implements Hardware Error\r
- Record Persistence.\r
-\r
**/\r
VOID\r
InitializeHwErrRecSupport (\r
- IN UINT16 HwErrRecSupportLevel\r
+ VOID\r
)\r
{\r
- EFI_STATUS Status;\r
-\r
- Status = gRT->SetVariable (\r
- L"HwErrRecSupport",\r
- &gEfiGlobalVariableGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
- sizeof (UINT16),\r
- &HwErrRecSupportLevel\r
- );\r
- if (EFI_ERROR (Status)) {\r
- DEBUG ((EFI_D_ERROR, "HwErrRecSupport: Can not set the variable\n"));\r
+ UINT16 HardwareErrorRecordLevel;\r
+ \r
+ HardwareErrorRecordLevel = PcdGet16 (PcdHardwareErrorRecordLevel);\r
+ \r
+ if (HardwareErrorRecordLevel != 0) {\r
+ //\r
+ // Set original value again to make sure this value is stored into variable\r
+ // area but not PCD database.\r
+ // if level value equal 0, no need set to 0 to variable area because UEFI specification\r
+ // define same behavior between no value or 0 value for L"HwErrRecSupport"\r
+ //\r
+ PcdSet16 (PcdHardwareErrorRecordLevel, HardwareErrorRecordLevel);\r
}\r
-\r
}\r
level of support for Hardware Error Record Persistence that is implemented\r
by the platform.\r
\r
-\r
- @param HwErrRecSupportLevel\r
- zero value - Indicates that the platform implements no support for\r
- Hardware Error Record Persistence.\r
- non-zero value - Indicates that the platform implements Hardware Error\r
- Record Persistence.\r
-\r
**/\r
VOID\r
InitializeHwErrRecSupport (\r
- IN UINT16 HwErrRecSupportLevel\r
+ VOID\r
);\r
\r
#endif\r