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 /EdkNt32Pkg/Pei/FlashMap | |
parent | 19d66cd590564c4cf7b0ed39d1bf262cdb14cfe2 (diff) | |
download | edk2-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/FlashMap')
-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 |
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>
|