summaryrefslogtreecommitdiff
path: root/EdkNt32Pkg/Pei
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2006-08-09 05:09:30 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2006-08-09 05:09:30 +0000
commitdd70a8c4e6c8c439dfcc7c94c478c76ab8fda1ec (patch)
tree326c0ee0925101676438a0e138eb251141b792d3 /EdkNt32Pkg/Pei
parent19d66cd590564c4cf7b0ed39d1bf262cdb14cfe2 (diff)
downloadedk2-platforms-dd70a8c4e6c8c439dfcc7c94c478c76ab8fda1ec.tar.xz
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
Diffstat (limited to 'EdkNt32Pkg/Pei')
-rw-r--r--EdkNt32Pkg/Pei/FlashMap/FlashMap.c6
-rw-r--r--EdkNt32Pkg/Pei/FlashMap/FlashMap.dxs2
-rw-r--r--EdkNt32Pkg/Pei/FlashMap/FlashMap.msa41
3 files changed, 35 insertions, 14 deletions
diff --git a/EdkNt32Pkg/Pei/FlashMap/FlashMap.c b/EdkNt32Pkg/Pei/FlashMap/FlashMap.c
index b459257285..54dc137a76 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 0c197de817..f75e7aa31e 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 1b662c6c61..2dba783f02 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>