Revision: 17249
          http://sourceforge.net/p/edk2/code/17249
Author:   jyao1
Date:     2015-04-29 03:50:20 +0000 (Wed, 29 Apr 2015)
Log Message:
-----------
Add dual FSP binaries support.

There are two FSP images at different locations in a flash (one factory version 
is read only and other in updatable version)
TempRamInit, FspMemoryInit and TempRamExit are executed from factory version 
and FspSiliconInit/NotifyPhase will be executed from updatable version.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Ma, Maurice" <[email protected]>
Reviewed-by: "Yao, Jiewen" <[email protected]>

Modified Paths:
--------------
    trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPei.inf
    trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPeiV2.c
    trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.c
    trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.inf
    trunk/edk2/IntelFspWrapperPkg/IntelFspWrapperPkg.dec

Modified: trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPei.inf
===================================================================
--- trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPei.inf     2015-04-29 
03:10:24 UTC (rev 17248)
+++ trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPei.inf     2015-04-29 
03:50:20 UTC (rev 17249)
@@ -81,6 +81,7 @@
 [Pcd]
   gFspWrapperTokenSpaceGuid.PcdPeiTemporaryRamStackSize       ## CONSUMES
   gFspWrapperTokenSpaceGuid.PcdFlashFvFspBase                 ## CONSUMES
+  gFspWrapperTokenSpaceGuid.PcdFlashFvSecondFspBase           ## CONSUMES
   gFspWrapperTokenSpaceGuid.PcdFlashFvFspSize                 ## CONSUMES
   gFspWrapperTokenSpaceGuid.PcdMaxUpdRegionSize               ## CONSUMES
   gFspWrapperTokenSpaceGuid.PcdFspApiVersion                  ## CONSUMES

Modified: trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPeiV2.c
===================================================================
--- trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPeiV2.c     2015-04-29 
03:10:24 UTC (rev 17248)
+++ trunk/edk2/IntelFspWrapperPkg/FspInitPei/FspInitPeiV2.c     2015-04-29 
03:50:20 UTC (rev 17249)
@@ -261,7 +261,11 @@
   VOID                      *FspHobList;
   EFI_HOB_GUID_TYPE         *GuidHob;
 
-  FspHeader = FspFindFspHeader (PcdGet32 (PcdFlashFvFspBase));
+  if (PcdGet32 (PcdFlashFvSecondFspBase) == 0) {
+    FspHeader = FspFindFspHeader (PcdGet32 (PcdFlashFvFspBase));
+  } else {
+    FspHeader = FspFindFspHeader (PcdGet32 (PcdFlashFvSecondFspBase));
+  }
   if (FspHeader == NULL) {
     return EFI_DEVICE_ERROR;
   }

Modified: trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.c
===================================================================
--- trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.c   2015-04-29 
03:10:24 UTC (rev 17248)
+++ trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.c   2015-04-29 
03:50:20 UTC (rev 17249)
@@ -120,7 +120,11 @@
   VOID       *Registration;
   EFI_EVENT  ProtocolNotifyEvent;
 
-  mFspHeader = FspFindFspHeader (PcdGet32 (PcdFlashFvFspBase));
+  if (PcdGet32 (PcdFlashFvSecondFspBase) == 0) {
+    mFspHeader = FspFindFspHeader (PcdGet32 (PcdFlashFvFspBase));
+  } else {
+    mFspHeader = FspFindFspHeader (PcdGet32 (PcdFlashFvSecondFspBase));
+  }
   DEBUG ((DEBUG_INFO, "FspHeader - 0x%x\n", mFspHeader));
   if (mFspHeader == NULL) {
     return EFI_DEVICE_ERROR;

Modified: trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.inf
===================================================================
--- trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.inf 2015-04-29 
03:10:24 UTC (rev 17248)
+++ trunk/edk2/IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.inf 2015-04-29 
03:50:20 UTC (rev 17249)
@@ -49,6 +49,7 @@
 
 [Pcd]
   gFspWrapperTokenSpaceGuid.PcdFlashFvFspBase       ## CONSUMES
+  gFspWrapperTokenSpaceGuid.PcdFlashFvSecondFspBase ## CONSUMES
   gFspWrapperTokenSpaceGuid.PcdFlashFvFspSize       ## CONSUMES
 
 [Depex]

Modified: trunk/edk2/IntelFspWrapperPkg/IntelFspWrapperPkg.dec
===================================================================
--- trunk/edk2/IntelFspWrapperPkg/IntelFspWrapperPkg.dec        2015-04-29 
03:10:24 UTC (rev 17248)
+++ trunk/edk2/IntelFspWrapperPkg/IntelFspWrapperPkg.dec        2015-04-29 
03:50:20 UTC (rev 17249)
@@ -59,10 +59,22 @@
   ## Provides the size of the BIOS Flash Device.
   gFspWrapperTokenSpaceGuid.PcdFlashCodeCacheSize|0x00200000|UINT32|0x10000002
 
-  ## Indicates the base address of the FSP binary.
+  ## Indicates the base address of the factory FSP binary.
   gFspWrapperTokenSpaceGuid.PcdFlashFvFspBase|0xFFF80000|UINT32|0x10000003
-  ## Provides the size of the FSP binary.
+  ## Indicates the base address of the updatable FSP binary to support Dual 
FSP.
+  #  There could be two FSP images at different locations in a flash - 
+  #  one factory version (default) and updatable version (updatable).
+  #  TempRamInit, FspMemoryInit and TempRamExit are always executed from 
factory version.
+  #  FspSiliconInit and NotifyPhase can be executed from updatable version if 
it is available,
+  #  FspSiliconInit and NotifyPhase are executed from factory version if there 
is no updateable version,
+  #  PcdFlashFvFspBase is base address of factory FSP, and 
PcdFlashFvSecondFspBase
+  #  is base address of updatable FSP. If PcdFlashFvSecondFspBase is 0, that 
means
+  #  there is no updatable FSP.
+  
gFspWrapperTokenSpaceGuid.PcdFlashFvSecondFspBase|0x00000000|UINT32|0x10000008
+  ## Provides the size of the factory FSP binary.
   gFspWrapperTokenSpaceGuid.PcdFlashFvFspSize|0x00048000|UINT32|0x10000004
+  ## Provides the size of the updatable FSP binary to support Dual FSP.
+  
gFspWrapperTokenSpaceGuid.PcdFlashFvSecondFspSize|0x00000000|UINT32|0x10000009
 
   ## Indicates the base address of the first Microcode Patch in the Microcode 
Region
   gFspWrapperTokenSpaceGuid.PcdCpuMicrocodePatchAddress|0x0|UINT64|0x10000005


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to