1, Retired PCD PcdSupportHardwareErrorRecord, because as UEFI specification said, if PcdHardwareErrorRecordLevel is 0, platform does not provide feature of hardware error record.

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
This commit is contained in:
klu2 2009-02-26 08:19:38 +00:00
parent 0b84526056
commit a2b35995ca
5 changed files with 21 additions and 33 deletions

View File

@ -111,3 +111,7 @@
## Timeout value for displaying progressing bar in before boot OS.
# According to UEFI 2.0 spec, it should treat the Timeout value as 0xffff.
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0xffff|UINT16|0x40000001
## Error level for hardware recorder. If value 0, platform does not support feature of hardware error record.
# This PCD should be set as HII type PCD by platform integrator mapped to variable L"HwErrRecSupport"
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel|0|UINT16|0x40000002

View File

@ -160,7 +160,6 @@
[FeaturePcd.common]
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate
gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHardwareErrorRecord
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
[Pcd.common]
@ -168,7 +167,7 @@
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang
gEfiMdeModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut

View File

@ -313,9 +313,8 @@ BdsEntry (
PERF_START (0, "PlatformBds", "BDS", 0);
PlatformBdsInit (PrivateData);
if (FeaturePcdGet (PcdSupportHardwareErrorRecord)) {
InitializeHwErrRecSupport (PcdGet16 (PcdHardwareErrorRecordLevel));
}
InitializeHwErrRecSupport();
//
// bugbug: platform specific code
// Initialize the platform specific string and language

View File

@ -20,30 +20,23 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
level of support for Hardware Error Record Persistence that is implemented
by the platform.
@param HwErrRecSupportLevel
zero value: Indicates that the platform implements no support for
Hardware Error Record Persistence.
non-zero value: Indicates that the platform implements Hardware Error
Record Persistence.
**/
VOID
InitializeHwErrRecSupport (
IN UINT16 HwErrRecSupportLevel
VOID
)
{
EFI_STATUS Status;
UINT16 HardwareErrorRecordLevel;
Status = gRT->SetVariable (
L"HwErrRecSupport",
&gEfiGlobalVariableGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
sizeof (UINT16),
&HwErrRecSupportLevel
);
if (EFI_ERROR (Status)) {
DEBUG ((EFI_D_ERROR, "HwErrRecSupport: Can not set the variable\n"));
}
HardwareErrorRecordLevel = PcdGet16 (PcdHardwareErrorRecordLevel);
if (HardwareErrorRecordLevel != 0) {
//
// Set original value again to make sure this value is stored into variable
// area but not PCD database.
// if level value equal 0, no need set to 0 to variable area because UEFI specification
// define same behavior between no value or 0 value for L"HwErrRecSupport"
//
PcdSet16 (PcdHardwareErrorRecordLevel, HardwareErrorRecordLevel);
}
}

View File

@ -23,17 +23,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
level of support for Hardware Error Record Persistence that is implemented
by the platform.
@param HwErrRecSupportLevel
zero value - Indicates that the platform implements no support for
Hardware Error Record Persistence.
non-zero value - Indicates that the platform implements Hardware Error
Record Persistence.
**/
VOID
InitializeHwErrRecSupport (
IN UINT16 HwErrRecSupportLevel
VOID
);
#endif