Home | History | Annotate | Download | only in BdsDxe
      1 /** @file
      2   Set the level of support for Hardware Error Record Persistence that is
      3   implemented by the platform.
      4 
      5 Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
      6 This program and the accompanying materials
      7 are licensed and made available under the terms and conditions of the BSD License
      8 which accompanies this distribution.  The full text of the license may be found at
      9 http://opensource.org/licenses/bsd-license.php
     10 
     11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #include "HwErrRecSupport.h"
     17 
     18 /**
     19   Set the HwErrRecSupport variable contains a binary UINT16 that supplies the
     20   level of support for Hardware Error Record Persistence that is implemented
     21   by the platform.
     22 
     23 **/
     24 VOID
     25 InitializeHwErrRecSupport (
     26   VOID
     27   )
     28 {
     29   EFI_STATUS    Status;
     30   UINT16        HardwareErrorRecordLevel;
     31 
     32   HardwareErrorRecordLevel = PcdGet16 (PcdHardwareErrorRecordLevel);
     33 
     34   if (HardwareErrorRecordLevel != 0) {
     35     //
     36     // If level value equal 0, no need set to 0 to variable area because UEFI specification
     37     // define same behavior between no value or 0 value for L"HwErrRecSupport".
     38     //
     39     Status = gRT->SetVariable (
     40                     L"HwErrRecSupport",
     41                     &gEfiGlobalVariableGuid,
     42                     EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
     43                     sizeof (UINT16),
     44                     &HardwareErrorRecordLevel
     45                     );
     46     ASSERT_EFI_ERROR(Status);
     47   }
     48 }
     49