mirror of https://github.com/acidanthera/audk.git
Variable PEIM use to PCD entry to get the base address of NV Storegae region.
This patch changes: 1) make the PcdFlashNvStorageVariableBase PCD entry type in Variable PEIM to be "DYNAMIC", which means it can be flexible to be FIX_AT_BUILD, DYNAMIC or PATCH_IN_MODULE. 2) make FlashMap depends on PCD_PPI 3) make FlashMap PEIM to the value of PcdFlashNvStorageVariableBase according NT emulator's FwhPPI installed by NT32 emulator's SEC. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1223 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
19d66cd590
commit
dd70a8c4e6
|
@ -78,7 +78,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
|
||||||
</Extern>
|
</Extern>
|
||||||
</Externs>
|
</Externs>
|
||||||
<PcdCoded>
|
<PcdCoded>
|
||||||
<PcdEntry PcdItemType="FIXED_AT_BUILD">
|
<PcdEntry PcdItemType="DYNAMIC">
|
||||||
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
|
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
|
||||||
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
<HelpText>
|
<HelpText>
|
||||||
|
|
|
@ -711,8 +711,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
<Instance ModuleGuid="8c690838-7a22-45c4-aa58-a33e3e515cd4" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
<Instance ModuleGuid="8c690838-7a22-45c4-aa58-a33e3e515cd4" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
<Instance ModuleGuid="bda39d3a-451b-4350-8266-81ab10fa0523" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
<Instance ModuleGuid="bda39d3a-451b-4350-8266-81ab10fa0523" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
<Instance ModuleGuid="27d67720-ea68-48ae-93da-a3a074c90e30" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
<Instance ModuleGuid="27d67720-ea68-48ae-93da-a3a074c90e30" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Instance ModuleGuid="9dbf6f25-0da2-4a1d-8e12-e78de6ab4d0e" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
</Libraries>
|
</Libraries>
|
||||||
<PcdBuildDefinition>
|
<PcdBuildDefinition>
|
||||||
|
<PcdData ItemType="DYNAMIC">
|
||||||
|
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
|
||||||
|
<Token>0x30000001</Token>
|
||||||
|
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
|
<DatumType>UINT32</DatumType>
|
||||||
|
<MaxDatumSize>4</MaxDatumSize>
|
||||||
|
<Value>0</Value>
|
||||||
|
</PcdData>
|
||||||
<PcdData ItemType="FIXED_AT_BUILD">
|
<PcdData ItemType="FIXED_AT_BUILD">
|
||||||
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
|
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
|
||||||
<Token>0x00000001</Token>
|
<Token>0x00000001</Token>
|
||||||
|
@ -877,13 +886,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
<Instance ModuleGuid="9dbf6f25-0da2-4a1d-8e12-e78de6ab4d0e" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
<Instance ModuleGuid="9dbf6f25-0da2-4a1d-8e12-e78de6ab4d0e" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
</Libraries>
|
</Libraries>
|
||||||
<PcdBuildDefinition>
|
<PcdBuildDefinition>
|
||||||
<PcdData ItemType="FIXED_AT_BUILD">
|
<PcdData ItemType="DYNAMIC">
|
||||||
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
|
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
|
||||||
<Token>0x30000001</Token>
|
<Token>0x30000001</Token>
|
||||||
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
<DatumType>UINT32</DatumType>
|
<DatumType>UINT32</DatumType>
|
||||||
<MaxDatumSize>4</MaxDatumSize>
|
<MaxDatumSize>4</MaxDatumSize>
|
||||||
<Value>0x00280000</Value>
|
<Value>0</Value>
|
||||||
</PcdData>
|
</PcdData>
|
||||||
<PcdData ItemType="FIXED_AT_BUILD">
|
<PcdData ItemType="FIXED_AT_BUILD">
|
||||||
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
|
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
|
||||||
|
@ -6809,6 +6818,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
</ModuleSA>
|
</ModuleSA>
|
||||||
</FrameworkModules>
|
</FrameworkModules>
|
||||||
<DynamicPcdBuildDefinitions>
|
<DynamicPcdBuildDefinitions>
|
||||||
|
<PcdBuildData ItemType="DYNAMIC">
|
||||||
|
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
|
||||||
|
<Token>0x30000001</Token>
|
||||||
|
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
|
<DatumType>UINT32</DatumType>
|
||||||
|
<MaxDatumSize>4</MaxDatumSize>
|
||||||
|
<SkuInfo>
|
||||||
|
<SkuId>0</SkuId>
|
||||||
|
<Value>0</Value>
|
||||||
|
</SkuInfo>
|
||||||
|
</PcdBuildData>
|
||||||
<PcdBuildData ItemType="DYNAMIC">
|
<PcdBuildData ItemType="DYNAMIC">
|
||||||
<C_Name>PcdWinNtMemorySize</C_Name>
|
<C_Name>PcdWinNtMemorySize</C_Name>
|
||||||
<Token>0x00001005</Token>
|
<Token>0x00001005</Token>
|
||||||
|
|
|
@ -202,6 +202,12 @@ Returns:
|
||||||
&gEfiFirmwareVolumeBlockProtocolGuid,
|
&gEfiFirmwareVolumeBlockProtocolGuid,
|
||||||
sizeof (EFI_GUID)
|
sizeof (EFI_GUID)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// We also update a PCD entry so that any driver that depend on
|
||||||
|
// PCD entry PcdFlashNvStorageVariableBase will get the information.
|
||||||
|
//
|
||||||
|
PcdSet32 (PcdFlashNvStorageVariableBase, (UINT32) FlashHobData.SubAreaData.Base);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -23,6 +23,6 @@ Abstract:
|
||||||
#include <PeimDepex.h>
|
#include <PeimDepex.h>
|
||||||
|
|
||||||
DEPENDENCY_START
|
DEPENDENCY_START
|
||||||
TRUE
|
PCD_PPI_GUID
|
||||||
DEPENDENCY_END
|
DEPENDENCY_END
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
|
||||||
<LibraryClass Usage="ALWAYS_CONSUMED">
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
<Keyword>BaseMemoryLib</Keyword>
|
<Keyword>BaseMemoryLib</Keyword>
|
||||||
</LibraryClass>
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PcdLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
</LibraryClassDefinitions>
|
</LibraryClassDefinitions>
|
||||||
<SourceFiles>
|
<SourceFiles>
|
||||||
<Filename>FlashMap.c</Filename>
|
<Filename>FlashMap.c</Filename>
|
||||||
|
@ -89,4 +92,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
|
||||||
<ModuleEntryPoint>PeimInitializeFlashMap</ModuleEntryPoint>
|
<ModuleEntryPoint>PeimInitializeFlashMap</ModuleEntryPoint>
|
||||||
</Extern>
|
</Extern>
|
||||||
</Externs>
|
</Externs>
|
||||||
|
<PcdCoded>
|
||||||
|
<PcdEntry PcdItemType="DYNAMIC">
|
||||||
|
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
|
||||||
|
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
|
<HelpText>The driver sets the NV Storage FV base address defined by this PCD.
|
||||||
|
This base address point to an EFI_FIRMWARE_VOLUMN_HEADER struct. Variable PEIM
|
||||||
|
will get the base address from this PCD. In NT emulator, this PCD is a DYNAMIC
|
||||||
|
type, as FD is mapped to process space by WinNT OS. On real platform, it is
|
||||||
|
normally a FIXED_AT_BUILD type as system memory map is fixed to BIOS.
|
||||||
|
</HelpText>
|
||||||
|
</PcdEntry>
|
||||||
|
</PcdCoded>
|
||||||
</ModuleSurfaceArea>
|
</ModuleSurfaceArea>
|
Loading…
Reference in New Issue