Re: [edk2-platforms][PATCH V1 1/1] Platform/ARM/N1Sdp: Fix RemoteDdrSize cast


Thomas Abraham
 

Hi Sahil,

On 06/01/2023 06:07, sahil via groups.io wrote:
RemoteDdrSize calculation wraps around when booting N1Sdp in
multichip mode. Casting it to UINT64 to fix the issue.
The change looks okay but can the commit message be expanded to explain how this issue surfaced. RemoteDdrSize was probably added to support multi-chip. So what changed since then for this issue to show up?

Thanks,
Thomas.

Signed-off-by: sahil <sahil@...>
---
Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c | 2 +-
Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
index c15020f595c3..b11c0425fe25 100644
--- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
+++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
@@ -1254,7 +1254,7 @@ InitializePlatformRepository (
PlatRepoInfo->MemAffInfo[LOCAL_DDR_REGION2].Length = Dram2Size;
if (PlatInfo->MultichipMode == 1) {
- RemoteDdrSize = ((PlatInfo->RemoteDdrSize - 2) * SIZE_1GB);
+ RemoteDdrSize = ((UINT64)(PlatInfo->RemoteDdrSize - 2) * SIZE_1GB);
// Update Remote DDR Region1
PlatRepoInfo->MemAffInfo[REMOTE_DDR_REGION1].ProximityDomain = 1;
diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
index 1d53ec75aa49..5cacd437474b 100644
--- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
+++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
@@ -157,7 +157,7 @@ ArmPlatformGetVirtualMemoryMap (
DramBlock2Size);
if (PlatInfo->MultichipMode == 1) {
- RemoteDdrSize = ((PlatInfo->RemoteDdrSize - 2) * SIZE_1GB);
+ RemoteDdrSize = ((UINT64)(PlatInfo->RemoteDdrSize - 2) * SIZE_1GB);
BuildResourceDescriptorHob (
EFI_RESOURCE_SYSTEM_MEMORY,

Join {devel@edk2.groups.io to automatically receive all group messages.