- 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
+ EFI_STATUS Status;\r
+ UINT16 HardwareErrorRecordLevel;\r
+\r
+ HardwareErrorRecordLevel = PcdGet16 (PcdHardwareErrorRecordLevel);\r
+\r
+ if (HardwareErrorRecordLevel != 0) {\r
+ //\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
+ Status = gRT->SetVariable (\r
+ L"HwErrRecSupport",\r
+ &gEfiGlobalVariableGuid,\r
+ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,\r
+ sizeof (UINT16),\r
+ &HardwareErrorRecordLevel\r
+ );\r
+ ASSERT_EFI_ERROR(Status);\r