diff options
author | Chandni Cherukuri <chandni.cherukuri@arm.com> | 2020-01-28 12:01:49 +0530 |
---|---|---|
committer | Deepak Pandey <Deepak.Pandey@arm.com> | 2020-03-13 13:00:26 +0530 |
commit | b6bfc4417ff13168d69c4cbf2338f62c89c82dfd (patch) | |
tree | cbfde8dbf8e140c20f13d63984b3c98991a3c421 | |
parent | 68ecc19336a2a2981a655dc8db7dd7b5f4a14d31 (diff) |
Platform/ARM: Fix EP Device Attributes(memory, opttlp, msgpack)N1SDP-2020.07.27N1SDP-2020.03.26
There are random issues seen across different EP device when
the total remote memory exposed by EP device DVSEC capabilities
is used. A stable behaviour is observed when the memory is fixed
to 8GB.
Optimized TLP and message packing has been disabled as there
are issues seen when enabling them.
Change-Id: I745522e273925c5537b311b093b4f76d287d5ef0
Signed-off-by: Chandni Cherukuri <chandni.cherukuri@arm.com>
-rw-r--r-- | Platform/ARM/Drivers/CcixDxe/CcixDeviceConfigure.c | 2 | ||||
-rw-r--r-- | Platform/ARM/N1SdpPkg/Drivers/CcixHostDxe/CcixHostDxe.c | 8 | ||||
-rw-r--r-- | Platform/ARM/N1SdpPkg/Include/N1SdpPlatform.h | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/Platform/ARM/Drivers/CcixDxe/CcixDeviceConfigure.c b/Platform/ARM/Drivers/CcixDxe/CcixDeviceConfigure.c index 9b2ee3b2..e7b80e0c 100644 --- a/Platform/ARM/Drivers/CcixDxe/CcixDeviceConfigure.c +++ b/Platform/ARM/Drivers/CcixDxe/CcixDeviceConfigure.c @@ -698,6 +698,7 @@ CheckOptTlpSupport ( } } } + Ccix->OptTlpSupported = FALSE; return EFI_SUCCESS; ErrorExit: DEBUG((DEBUG_ERROR, "%a failed: %r\n", __func__, Status)); @@ -729,6 +730,7 @@ CheckMsgPackEnabled ( break; } } + Ccix->MsgPackEnabled = FALSE; return EFI_SUCCESS; ErrorExit: DEBUG((DEBUG_ERROR, "%a failed: %r\n", __func__, Status)); diff --git a/Platform/ARM/N1SdpPkg/Drivers/CcixHostDxe/CcixHostDxe.c b/Platform/ARM/N1SdpPkg/Drivers/CcixHostDxe/CcixHostDxe.c index 7c990738..4c4048dd 100644 --- a/Platform/ARM/N1SdpPkg/Drivers/CcixHostDxe/CcixHostDxe.c +++ b/Platform/ARM/N1SdpPkg/Drivers/CcixHostDxe/CcixHostDxe.c @@ -51,11 +51,11 @@ void EPMemoryInit(void) UINT64 *Ptr = (UINT64 *)ExtMemory;
DEBUG((DEBUG_ERROR, "Initializing remote memory..."));
- for (Count = 0; Count < TotalMemorySize; Count = Count + 8)
+ for (Count = 0; Count < 0x200000000UL; Count = Count + 8)
*Ptr++ = 0x0;
DEBUG((DEBUG_ERROR, "Done\n"));
DEBUG((DEBUG_ERROR, "Flushing caches..."));
- WriteBackInvalidateDataCacheRange((void *) ExtMemory, TotalMemorySize);
+ WriteBackInvalidateDataCacheRange((void *) ExtMemory, 0x200000000UL);
DEBUG((DEBUG_ERROR, "Done\n"));
}
@@ -714,7 +714,7 @@ CcixPostConfigurationSetup( Status = gDS->AddMemorySpace (
EfiGcdMemoryTypeSystemMemory,
FixedPcdGet64 (PcdExtMemorySpace),
- TotalMemorySize,
+ 0x200000000UL,
EFI_MEMORY_SP
);
}
@@ -859,6 +859,8 @@ CcixGetCcixCapabilities ( /* Value from the register indicates the PoolSize in integer multiples of 64KB */
*MemorySize += ((Val64 | MEMPOOL_SIZE_MASK) + 1);
}
+ //hard Coding to 8 Gb as we see crash in grub accessing memory beyond
+ *MemorySize = 0x200000000UL;
}
}
return Status;
diff --git a/Platform/ARM/N1SdpPkg/Include/N1SdpPlatform.h b/Platform/ARM/N1SdpPkg/Include/N1SdpPlatform.h index 435efc53..a56d71db 100644 --- a/Platform/ARM/N1SdpPkg/Include/N1SdpPlatform.h +++ b/Platform/ARM/N1SdpPkg/Include/N1SdpPlatform.h @@ -51,5 +51,5 @@ #define N1SDP_PLAT_INFO_STRUCT_BASE 0x06008000
// Extended memory size for CCIX
-#define N1SDP_EXT_MEM_SIZE 0x400000000
+#define N1SDP_EXT_MEM_SIZE 0x200000000
#endif
|