Revision: 14162
          http://edk2.svn.sourceforge.net/edk2/?rev=14162&view=rev
Author:   lzeng14
Date:     2013-03-05 12:20:53 +0000 (Tue, 05 Mar 2013)
Log Message:
-----------
Follow UEFI spec, set TimeOut and HwErrRecSupport variable by EFI variable 
service instead of PcdSet().

Signed-off-by: Star Zeng <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
    trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c
    trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c
    trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/HwErrRecSupport.c

Modified: trunk/edk2/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
===================================================================
--- trunk/edk2/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec      
2013-03-05 01:58:39 UTC (rev 14161)
+++ trunk/edk2/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec      
2013-03-05 12:20:53 UTC (rev 14162)
@@ -2,7 +2,7 @@
 # Intel Framework Module Package contains the definitions and module 
implementation
 # which follows Intel EFI Framework Specification.
 #
-# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
 #
 # This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD 
License
@@ -147,14 +147,16 @@
   ## The PCD is used to mark whether the machine is in first boot cycle.
   #  TRUE means the machine is in first boot cycle. After completing the first 
boot,
   #  the PCD's value will be updated to FALSE.
+  #  This PCD should be set as HII type PCD by platform integrator.
   
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState|TRUE|BOOLEAN|0x0001002f
 
   ## Timeout value for displaying progressing bar in before boot OS.
   #  According to UEFI 2.0 spec, the default TimeOut should be 0xffff.
+  #  This PCD should be set as HII type PCD by platform integrator mapped to 
variable L"TimeOut" and gEfiGlobalVariableGuid.
   
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"
+  #  This PCD should be set as HII type PCD by platform integrator mapped to 
variable L"HwErrRecSupport" and gEfiGlobalVariableGuid.
   
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel|0|UINT16|0x40000002
 
 [PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
@@ -236,4 +238,4 @@
 
   ## This PCD specifies whether to use the optimized timing for best PS2 
detection performance.
   #  Note this PCD could be set to TRUE for best boot performance and set to 
FALSE for best device compatibility.
-  
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdFastPS2Detection|FALSE|BOOLEAN|0x3000000b
\ No newline at end of file
+  
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdFastPS2Detection|FALSE|BOOLEAN|0x3000000b

Modified: trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c
===================================================================
--- trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c      
2013-03-05 01:58:39 UTC (rev 14161)
+++ trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c      
2013-03-05 12:20:53 UTC (rev 14162)
@@ -457,6 +457,8 @@
   LIST_ENTRY                      BootOptionList;
   UINTN                           BootNextSize;
   CHAR16                          *FirmwareVendor;
+  EFI_STATUS                      Status;
+  UINT16                          BootTimeOut;
 
   //
   // Insert the performance probe
@@ -511,6 +513,25 @@
   InitializeHwErrRecSupport();
 
   //
+  // Initialize L"Timeout" EFI global variable.
+  //
+  BootTimeOut = PcdGet16 (PcdPlatformBootTimeOut);
+  if (BootTimeOut != 0xFFFF) {
+    //
+    // If time out value equal 0xFFFF, no need set to 0xFFFF to variable area 
because UEFI specification
+    // define same behavior between no value or 0xFFFF value for L"Timeout".
+    //
+    Status = gRT->SetVariable (
+                    L"Timeout",
+                    &gEfiGlobalVariableGuid,
+                    EFI_VARIABLE_BOOTSERVICE_ACCESS | 
EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
+                    sizeof (UINT16),
+                    &BootTimeOut
+                    );
+    ASSERT_EFI_ERROR(Status);
+  }
+
+  //
   // bugbug: platform specific code
   // Initialize the platform specific string and language
   //

Modified: 
trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c
===================================================================
--- trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c   
2013-03-05 01:58:39 UTC (rev 14161)
+++ trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c   
2013-03-05 12:20:53 UTC (rev 14162)
@@ -1,7 +1,7 @@
 /** @file
   The functions for Boot Maintainence Main menu.
 
-Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
 This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD 
License
 which accompanies this distribution.  The full text of the license may be 
found at
@@ -672,7 +672,14 @@
     break;
 
   case FORM_TIME_OUT_ID:
-    PcdSet16 (PcdPlatformBootTimeOut, CurrentFakeNVMap->BootTimeOut);
+    Status = gRT->SetVariable (
+                    L"Timeout",
+                    &gEfiGlobalVariableGuid,
+                    EFI_VARIABLE_BOOTSERVICE_ACCESS | 
EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
+                    sizeof (UINT16),
+                    &(CurrentFakeNVMap->BootTimeOut)
+                    );
+    ASSERT_EFI_ERROR(Status);
 
     Private->BmmOldFakeNVData.BootTimeOut = CurrentFakeNVMap->BootTimeOut;
     break;

Modified: trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/HwErrRecSupport.c
===================================================================
--- trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/HwErrRecSupport.c       
2013-03-05 01:58:39 UTC (rev 14161)
+++ trunk/edk2/IntelFrameworkModulePkg/Universal/BdsDxe/HwErrRecSupport.c       
2013-03-05 12:20:53 UTC (rev 14162)
@@ -2,7 +2,7 @@
   Set the level of support for Hardware Error Record Persistence that is
   implemented by the platform.
 
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
 This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD 
License
 which accompanies this distribution.  The full text of the license may be 
found at
@@ -26,17 +26,23 @@
   VOID
   )
 {
-  UINT16 HardwareErrorRecordLevel;
+  EFI_STATUS    Status;
+  UINT16        HardwareErrorRecordLevel;
   
   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"
+    // 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);
+    Status = gRT->SetVariable (
+                    L"HwErrRecSupport",
+                    &gEfiGlobalVariableGuid,
+                    EFI_VARIABLE_BOOTSERVICE_ACCESS | 
EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
+                    sizeof (UINT16),
+                    &HardwareErrorRecordLevel
+                    );
+    ASSERT_EFI_ERROR(Status);
   }
 }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to