summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Sec/SecMain.c
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2014-01-21 19:38:43 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2014-01-21 19:38:43 +0000
commit7cb6b0e068092d6a92d49b532703b70713e9d277 (patch)
treea9c564ed6773466c9740e99f7b328abe7c08132b /OvmfPkg/Sec/SecMain.c
parentb382ede3864e17e8827dbc90c7d4f1540b94ff3f (diff)
downloadedk2-7cb6b0e068092d6a92d49b532703b70713e9d277.tar.gz
edk2-7cb6b0e068092d6a92d49b532703b70713e9d277.tar.bz2
edk2-7cb6b0e068092d6a92d49b532703b70713e9d277.zip
OvmfPkg: Move SEC/PEI Temporary RAM from 0x70000 to 0x810000
Note: The Temporary RAM memory size is being reduced from 64KB to 32KB. This still appears to be more than adequate for OVMF's early PEI phase. We will be adding another 32KB range of RAM just above this range for use on S3 resume. The range is declared as part of MEMFD, so it is easier to identify the memory range. We also now assign PCDs to the memory range. The PCDs are used to set the initial SEC/PEI stack in SEC's assembly code. The PCDs are also used in the SEC C code to setup the Temporary RAM PPI. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15147 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/Sec/SecMain.c')
-rw-r--r--OvmfPkg/Sec/SecMain.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/OvmfPkg/Sec/SecMain.c b/OvmfPkg/Sec/SecMain.c
index ece1c9b517..8bdf6e5238 100644
--- a/OvmfPkg/Sec/SecMain.c
+++ b/OvmfPkg/Sec/SecMain.c
@@ -631,12 +631,16 @@ SecCoreStartupWithStack (
// |-------------| <-- SecCoreData.TemporaryRamBase
//
+ ASSERT ((UINTN) (PcdGet32 (PcdOvmfSecPeiTempRamBase) +
+ PcdGet32 (PcdOvmfSecPeiTempRamSize)) ==
+ (UINTN) TopOfCurrentStack);
+
//
// Initialize SEC hand-off state
//
SecCoreData.DataSize = sizeof(EFI_SEC_PEI_HAND_OFF);
- SecCoreData.TemporaryRamSize = SIZE_64KB;
+ SecCoreData.TemporaryRamSize = (UINTN) PcdGet32 (PcdOvmfSecPeiTempRamSize);
SecCoreData.TemporaryRamBase = (VOID*)((UINT8 *)TopOfCurrentStack - SecCoreData.TemporaryRamSize);
SecCoreData.PeiTemporaryRamBase = SecCoreData.TemporaryRamBase;