diff options
author | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-08-09 05:09:30 +0000 |
---|---|---|
committer | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-08-09 05:09:30 +0000 |
commit | dd70a8c4e6c8c439dfcc7c94c478c76ab8fda1ec (patch) | |
tree | 326c0ee0925101676438a0e138eb251141b792d3 | |
parent | 19d66cd590564c4cf7b0ed39d1bf262cdb14cfe2 (diff) | |
download | edk2-dd70a8c4e6c8c439dfcc7c94c478c76ab8fda1ec.zip edk2-dd70a8c4e6c8c439dfcc7c94c478c76ab8fda1ec.tar.gz edk2-dd70a8c4e6c8c439dfcc7c94c478c76ab8fda1ec.tar.bz2 |
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
-rw-r--r-- | EdkModulePkg/Universal/Variable/Pei/Variable.msa | 26 | ||||
-rw-r--r-- | EdkNt32Pkg/Nt32.fpd | 24 | ||||
-rw-r--r-- | EdkNt32Pkg/Pei/FlashMap/FlashMap.c | 6 | ||||
-rw-r--r-- | EdkNt32Pkg/Pei/FlashMap/FlashMap.dxs | 2 | ||||
-rw-r--r-- | EdkNt32Pkg/Pei/FlashMap/FlashMap.msa | 41 |
5 files changed, 70 insertions, 29 deletions
diff --git a/EdkModulePkg/Universal/Variable/Pei/Variable.msa b/EdkModulePkg/Universal/Variable/Pei/Variable.msa index 5fa1028..4dcffcf 100644 --- a/EdkModulePkg/Universal/Variable/Pei/Variable.msa +++ b/EdkModulePkg/Universal/Variable/Pei/Variable.msa @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?>
-<!--Copyright (c) 2006, Intel Corporation -All rights reserved. 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 -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +<!--Copyright (c) 2006, Intel Corporation
+All rights reserved. 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
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
<MsaHeader>
@@ -16,11 +16,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.--> <Abstract>Component description file for PeiVariable module.</Abstract>
<Description>Framework PEIM to provide the Variable functionality.</Description>
<Copyright>Copyright (c) 2006, Intel Corporation</Copyright>
- <License>All rights reserved. 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 - http://opensource.org/licenses/bsd-license.php - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + <License>All rights reserved. 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
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
</MsaHeader>
@@ -78,7 +78,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.--> </Extern>
</Externs>
<PcdCoded>
- <PcdEntry PcdItemType="FIXED_AT_BUILD">
+ <PcdEntry PcdItemType="DYNAMIC">
<C_Name>PcdFlashNvStorageVariableBase</C_Name>
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
<HelpText>
diff --git a/EdkNt32Pkg/Nt32.fpd b/EdkNt32Pkg/Nt32.fpd index d9cb3d2..64ed3aa 100644 --- a/EdkNt32Pkg/Nt32.fpd +++ b/EdkNt32Pkg/Nt32.fpd @@ -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="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="9dbf6f25-0da2-4a1d-8e12-e78de6ab4d0e" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/> </Libraries> <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"> <C_Name>PcdMaximumUnicodeStringLength</C_Name> <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"/> </Libraries> <PcdBuildDefinition> - <PcdData ItemType="FIXED_AT_BUILD"> + <PcdData ItemType="DYNAMIC"> <C_Name>PcdFlashNvStorageVariableBase</C_Name> <Token>0x30000001</Token> <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName> <DatumType>UINT32</DatumType> <MaxDatumSize>4</MaxDatumSize> - <Value>0x00280000</Value> + <Value>0</Value> </PcdData> <PcdData ItemType="FIXED_AT_BUILD"> <C_Name>PcdMaximumUnicodeStringLength</C_Name> @@ -6810,6 +6819,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. </FrameworkModules> <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"> <C_Name>PcdWinNtMemorySize</C_Name> <Token>0x00001005</Token> <TokenSpaceGuidCName>gEfiEdkNt32PkgTokenSpaceGuid</TokenSpaceGuidCName> diff --git a/EdkNt32Pkg/Pei/FlashMap/FlashMap.c b/EdkNt32Pkg/Pei/FlashMap/FlashMap.c index b459257..54dc137a 100644 --- a/EdkNt32Pkg/Pei/FlashMap/FlashMap.c +++ b/EdkNt32Pkg/Pei/FlashMap/FlashMap.c @@ -202,6 +202,12 @@ Returns: &gEfiFirmwareVolumeBlockProtocolGuid,
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;
default:
diff --git a/EdkNt32Pkg/Pei/FlashMap/FlashMap.dxs b/EdkNt32Pkg/Pei/FlashMap/FlashMap.dxs index 0c197de..f75e7aa 100644 --- a/EdkNt32Pkg/Pei/FlashMap/FlashMap.dxs +++ b/EdkNt32Pkg/Pei/FlashMap/FlashMap.dxs @@ -23,6 +23,6 @@ Abstract: #include <PeimDepex.h>
DEPENDENCY_START
- TRUE
+ PCD_PPI_GUID
DEPENDENCY_END
diff --git a/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa b/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa index 1b662c6..2dba783 100644 --- a/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa +++ b/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?>
-<!--Copyright (c) 2006, Intel Corporation -All rights reserved. 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 -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +<!--Copyright (c) 2006, Intel Corporation
+All rights reserved. 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
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
<MsaHeader>
@@ -16,11 +16,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.--> <Abstract>Component description file for FlashMap PEI module</Abstract>
<Description>This module installs FlashMap PPI which is used to get flash layout information.</Description>
<Copyright>Copyright (c) 2006, Intel Corporation</Copyright>
- <License>All rights reserved. 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 - http://opensource.org/licenses/bsd-license.php - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + <License>All rights reserved. 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
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
</MsaHeader>
@@ -48,6 +48,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.--> <LibraryClass Usage="ALWAYS_CONSUMED">
<Keyword>BaseMemoryLib</Keyword>
</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">
+ <Keyword>PcdLib</Keyword>
+ </LibraryClass>
</LibraryClassDefinitions>
<SourceFiles>
<Filename>FlashMap.c</Filename>
@@ -89,4 +92,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.--> <ModuleEntryPoint>PeimInitializeFlashMap</ModuleEntryPoint>
</Extern>
</Externs>
-</ModuleSurfaceArea>
\ No newline at end of file + <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>
|