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