summaryrefslogtreecommitdiff
path: root/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c
diff options
context:
space:
mode:
Diffstat (limited to 'ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c')
-rw-r--r--ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c b/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c
index 530f7d608e..e5536ecd8e 100644
--- a/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c
+++ b/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c
@@ -97,7 +97,9 @@ ArmPlatformGetVirtualMemoryMap (
// Peripheral space after DRAM
VirtualMemoryTable[2].PhysicalBase = VirtualMemoryTable[0].Length + VirtualMemoryTable[1].Length;
VirtualMemoryTable[2].VirtualBase = VirtualMemoryTable[2].PhysicalBase;
- VirtualMemoryTable[2].Length = ArmGetPhysAddrTop () - VirtualMemoryTable[2].PhysicalBase;
+ VirtualMemoryTable[2].Length = MIN (1ULL << FixedPcdGet8 (PcdPrePiCpuMemorySize),
+ ArmGetPhysAddrTop ()) -
+ VirtualMemoryTable[2].PhysicalBase;
VirtualMemoryTable[2].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
// Remap the FD region as normal executable memory