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
This commit is contained in:
jljusten
2010-01-04 16:17:59 +00:00
parent 8cf01cae78
commit c1c2669c6b
13 changed files with 564 additions and 304 deletions

View File

@@ -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;
}