diff options
author | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-01-04 16:17:59 +0000 |
---|---|---|
committer | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-01-04 16:17:59 +0000 |
commit | c1c2669c6bb3ed4e23c06a93e60450a4fc3eccf2 (patch) | |
tree | 844feddcd621f20d1d6e27eb3efc0bc437367112 /OvmfPkg/PlatformPei | |
parent | 8cf01cae78c1e7b823587aac1b672a8c5adccaa9 (diff) | |
download | edk2-c1c2669c6bb3ed4e23c06a93e60450a4fc3eccf2.tar.gz edk2-c1c2669c6bb3ed4e23c06a93e60450a4fc3eccf2.tar.bz2 edk2-c1c2669c6bb3ed4e23c06a93e60450a4fc3eccf2.zip |
OVMF: Update OVMF FD/FV build to minimize ROM size
* Only SEC is uncompressed now
* The MAIN FV with PEI & DXE can easily shrink and grow as needed
* The final output will now be OVMF.Fv rather than OVMF.fd
* The final output size will be a multiple of 64kb
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9672 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/PlatformPei')
-rw-r--r-- | OvmfPkg/PlatformPei/Fv.c | 26 | ||||
-rw-r--r-- | OvmfPkg/PlatformPei/MemDetect.c | 16 | ||||
-rw-r--r-- | OvmfPkg/PlatformPei/PlatformPei.inf | 6 |
3 files changed, 27 insertions, 21 deletions
diff --git a/OvmfPkg/PlatformPei/Fv.c b/OvmfPkg/PlatformPei/Fv.c index 7ae35237b2..f9e2635208 100644 --- a/OvmfPkg/PlatformPei/Fv.c +++ b/OvmfPkg/PlatformPei/Fv.c @@ -1,7 +1,7 @@ /** @file
Build FV related hobs for platform.
- Copyright (c) 2006 - 2009, Intel Corporation
+ Copyright (c) 2006 - 2010, 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
@@ -14,10 +14,8 @@ #include "PiPei.h"
#include <Library/DebugLib.h>
-#include <Library/PeimEntryPoint.h>
#include <Library/HobLib.h>
#include <Library/PeiServicesLib.h>
-#include <Library/PeiServicesTablePointerLib.h>
#include <Library/PcdLib.h>
@@ -35,25 +33,27 @@ PeiFvInitialization ( VOID
)
{
- EFI_PHYSICAL_ADDRESS FdBase;
+ EFI_PHYSICAL_ADDRESS FdBase;
DEBUG ((EFI_D_ERROR, "Platform PEI Firmware Volume Initialization\n"));
DEBUG (
(EFI_D_ERROR, "Firmware Volume HOB: 0x%x 0x%x\n",
- PcdGet32 (PcdOvmfFlashFvRecoveryBase),
- PcdGet32 (PcdOvmfFlashFvRecoverySize)
+ PcdGet32 (PcdOvmfMemFvBase),
+ PcdGet32 (PcdOvmfMemFvSize)
)
);
- FdBase = PcdGet32 (PcdOvmfFlashFvRecoveryBase) - PcdGet32 (PcdVariableStoreSize) - PcdGet32 (PcdFlashNvStorageFtwSpareSize);
- BuildFvHob (PcdGet32 (PcdOvmfFlashFvRecoveryBase), PcdGet32 (PcdOvmfFlashFvRecoverySize));
+ FdBase = PcdGet32 (PcdOvmfMemFvBase) - PcdGet32 (PcdVariableStoreSize) - PcdGet32 (PcdFlashNvStorageFtwSpareSize);
+ BuildFvHob (PcdGet32 (PcdOvmfMemFvBase), PcdGet32 (PcdOvmfMemFvSize));
- BuildResourceDescriptorHob (
- EFI_RESOURCE_FIRMWARE_DEVICE,
- (EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED | EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE),
- FdBase,
- PcdGet32 (PcdOvmfFirmwareFdSize)
+ //
+ // Create a memory allocation HOB.
+ //
+ BuildMemoryAllocationHob (
+ PcdGet32 (PcdOvmfMemFvBase),
+ PcdGet32 (PcdOvmfMemFvSize),
+ EfiBootServicesData
);
return EFI_SUCCESS;
diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c index daa83a0014..30ee2b1772 100644 --- a/OvmfPkg/PlatformPei/MemDetect.c +++ b/OvmfPkg/PlatformPei/MemDetect.c @@ -27,6 +27,7 @@ Module Name: #include <Library/DebugLib.h>
#include <Library/HobLib.h>
#include <Library/IoLib.h>
+#include <Library/PcdLib.h>
#include <Library/PeimEntryPoint.h>
#include <Library/ResourcePublicationLib.h>
@@ -79,8 +80,15 @@ MemDetect ( //
TotalMemorySize = (UINT64)GetSystemMemorySize ();
- MemoryBase = 0x800000;
- MemorySize = TotalMemorySize - MemoryBase - 0x100000;
+ //
+ // Determine the range of memory to use during PEI
+ //
+ MemoryBase = PcdGet32 (PcdOvmfMemFvBase) + PcdGet32 (PcdOvmfMemFvSize);
+ MemorySize = TotalMemorySize - MemoryBase;
+ if (MemorySize > SIZE_16MB) {
+ MemoryBase = TotalMemorySize - SIZE_16MB;
+ MemorySize = SIZE_16MB;
+ }
//
// Publish this memory to the PEI Core
@@ -92,8 +100,8 @@ MemDetect ( // Create memory HOBs
//
AddMemoryBaseSizeHob (MemoryBase, MemorySize);
- AddMemoryRangeHob (0x100000, 0x800000);
- AddMemoryRangeHob (0x000000, 0x0A0000);
+ AddMemoryRangeHob (BASE_1MB, MemoryBase);
+ AddMemoryRangeHob (0, BASE_512KB + BASE_128KB);
return EFI_SUCCESS;
}
diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf index df6545199b..1ef3a368cb 100644 --- a/OvmfPkg/PlatformPei/PlatformPei.inf +++ b/OvmfPkg/PlatformPei/PlatformPei.inf @@ -54,10 +54,8 @@ PeimEntryPoint
[FixedPcd.common]
- gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashFvRecoveryBase
- gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashFvRecoverySize
- gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase
- gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize
+ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfMemFvBase
+ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfMemFvSize
gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|