]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: introduce PublishPeiMemory
authorWei Liu <wei.liu2@citrix.com>
Sun, 8 Dec 2013 01:36:07 +0000 (01:36 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 8 Dec 2013 01:36:07 +0000 (01:36 +0000)
MemDetect actully does too many things, the underlying platform might
want to have more control over memory layout.

Extract the functionality of publishing PEI memory to a dedicated
function.

Also fixed wrong comment while I was there.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14944 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/PlatformPei/MemDetect.c
OvmfPkg/PlatformPei/Platform.h

index 9f6ca1942e294d2ce01d5628b9aa5ecc429f79d1..9145ebb89daa1448c6ad91842cbe11f6ace0697c 100644 (file)
@@ -83,11 +83,45 @@ GetSystemMemorySizeAbove4gb (
   return LShiftU64 (Size, 16);\r
 }\r
 \r
+/**\r
+  Publish PEI core memory\r
+\r
+  @return EFI_SUCCESS     The PEIM initialized successfully.\r
+\r
+**/\r
+EFI_STATUS\r
+PublishPeiMemory (\r
+  VOID\r
+  )\r
+{\r
+  EFI_STATUS                  Status;\r
+  EFI_PHYSICAL_ADDRESS        MemoryBase;\r
+  UINT64                      MemorySize;\r
+  UINT64                      LowerMemorySize;\r
+\r
+  LowerMemorySize = GetSystemMemorySizeBelow4gb ();\r
+\r
+  MemoryBase = PcdGet32 (PcdOvmfMemFvBase) + PcdGet32 (PcdOvmfMemFvSize);\r
+  MemorySize = LowerMemorySize - MemoryBase;\r
+  if (MemorySize > SIZE_64MB) {\r
+    MemoryBase = LowerMemorySize - SIZE_64MB;\r
+    MemorySize = SIZE_64MB;\r
+  }\r
+\r
+  //\r
+  // Publish this memory to the PEI Core\r
+  //\r
+  Status = PublishSystemMemory(MemoryBase, MemorySize);\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  return Status;\r
+}\r
+\r
 \r
 /**\r
   Peform Memory Detection\r
 \r
-  @return EFI_SUCCESS     The PEIM initialized successfully.\r
+  @return Top of memory\r
 \r
 **/\r
 EFI_PHYSICAL_ADDRESS\r
index d63d124064af66870de525a93173e936309e461d..7344c610bb2d3935d17067fac64e677804e9f0e5 100644 (file)
@@ -57,6 +57,11 @@ AddUntestedMemoryRangeHob (
   EFI_PHYSICAL_ADDRESS        MemoryLimit\r
   );\r
 \r
+EFI_STATUS\r
+PublishPeiMemory (\r
+  VOID\r
+  );\r
+\r
 EFI_PHYSICAL_ADDRESS\r
 MemDetect (\r
   VOID\r