OvmfPkg/AcpiPlatformDxe/Qemu: Decrease upper limit for PCI window 32

In a later patch we will want to mark the flash memory as a
runtime services data memory range. This will allow a new runtime
services firmware block driver to read & write flash memory when
the OS has set up virtual memory protection.

Since this memory range will appear as runtime services data, we
need to adjust the limit when scanning for PCI window 32 down to
just below the flash device. If we don't adjust the limit, then
the algorithm in PopulateFwData will fail because it will see a
EfiGcdMemoryTypeSystemMemory memory range just below 4GB.

v2:
 * This patch replaces the v1 patch:
   "OvmfPkg/AcpiPlatformDxe/Qemu: Allow high runtime memory regions"

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@14837 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Jordan Justen 2013-11-12 18:34:36 +00:00 committed by jljusten
parent e58e5bcd23
commit 2662fa8dcd
2 changed files with 2 additions and 1 deletions

View File

@ -62,6 +62,7 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiTableStorageFile gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiTableStorageFile
gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress
[Depex] [Depex]
gEfiAcpiTableProtocolGuid gEfiAcpiTableProtocolGuid

View File

@ -250,7 +250,7 @@ PopulateFwData(
Desc = &AllDesc[CurDesc]; Desc = &AllDesc[CurDesc];
ExclTop = Desc->BaseAddress + Desc->Length; ExclTop = Desc->BaseAddress + Desc->Length;
if (ExclTop <= BASE_4GB) { if (ExclTop <= (UINT64) PcdGet32 (PcdOvmfFdBaseAddress)) {
switch (Desc->GcdMemoryType) { switch (Desc->GcdMemoryType) {
case EfiGcdMemoryTypeNonExistent: case EfiGcdMemoryTypeNonExistent:
break; break;