]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c
ArmPlatformPkg: ASSERT that PcdSystemMemoryBase does not exceed MAX_ADDRESS
[mirror_edk2.git] / ArmPlatformPkg / MemoryInitPei / MemoryInitPeim.c
index 93ab16ca4a74cd9513e62b9857af91b205597c71..e7880d30b1c85b6381bbb2cb9018cd0653ff7d0a 100755 (executable)
@@ -96,7 +96,7 @@ InitializeMemory (
 {\r
   EFI_STATUS                            Status;\r
   UINTN                                 SystemMemoryBase;\r
-  UINT                                SystemMemoryTop;\r
+  UINT64                                SystemMemoryTop;\r
   UINTN                                 FdBase;\r
   UINTN                                 FdTop;\r
   UINTN                                 UefiMemoryBase;\r
@@ -113,9 +113,13 @@ InitializeMemory (
 \r
   // Ensure PcdSystemMemorySize has been set\r
   ASSERT (PcdGet64 (PcdSystemMemorySize) != 0);\r
+  ASSERT (PcdGet64 (PcdSystemMemoryBase) < (UINT64)MAX_ADDRESS);\r
 \r
   SystemMemoryBase = (UINTN)PcdGet64 (PcdSystemMemoryBase);\r
-  SystemMemoryTop = SystemMemoryBase + (UINTN)PcdGet64 (PcdSystemMemorySize);\r
+  SystemMemoryTop = SystemMemoryBase + PcdGet64 (PcdSystemMemorySize);\r
+  if (SystemMemoryTop - 1 > MAX_ADDRESS) {\r
+    SystemMemoryTop = (UINT64)MAX_ADDRESS + 1;\r
+  }\r
   FdBase = (UINTN)PcdGet64 (PcdFdBaseAddress);\r
   FdTop = FdBase + (UINTN)PcdGet32 (PcdFdSize);\r
 \r