summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChandni Cherukuri <chandni.cherukuri@arm.com>2020-01-28 12:01:49 +0530
committerDeepak Pandey <Deepak.Pandey@arm.com>2020-03-13 13:00:26 +0530
commitb6bfc4417ff13168d69c4cbf2338f62c89c82dfd (patch)
treecbfde8dbf8e140c20f13d63984b3c98991a3c421
parent68ecc19336a2a2981a655dc8db7dd7b5f4a14d31 (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.c2
-rw-r--r--Platform/ARM/N1SdpPkg/Drivers/CcixHostDxe/CcixHostDxe.c8
-rw-r--r--Platform/ARM/N1SdpPkg/Include/N1SdpPlatform.h2
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