From 237888287c2ca298d84fa2ea40ffff8b66865db6 Mon Sep 17 00:00:00 2001 From: Marcin Wojtas Date: Sun, 25 Jul 2021 14:55:37 +0200 Subject: [PATCH] Marvell: Armada7k8k/OcteonTx: Allow tuning PCIE config space size Until now it was assumed that the configuration space size is 256MB. Allow setting different values in the board description library instance for each platform. Signed-off-by: Marcin Wojtas --- .../Armada7k8k/Library/Armada7k8kLib/Armada7k8kLibMem.c | 4 +++- Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kLib/Armada7k8kLibMem.c b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kLib/Armada7k8kLibMem.c index 853c1b4e..43aacb7a 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kLib/Armada7k8kLibMem.c +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kLib/Armada7k8kLibMem.c @@ -141,7 +141,9 @@ ArmPlatformGetVirtualMemoryMap ( for (PcieIndex = 0; PcieIndex < PcieControllerCount; PcieIndex++) { mVirtualMemoryTable[++Index].PhysicalBase = PcieControllers[PcieIndex].ConfigSpaceAddress; mVirtualMemoryTable[Index].VirtualBase = PcieControllers[PcieIndex].ConfigSpaceAddress; - mVirtualMemoryTable[Index].Length = SIZE_256MB; + mVirtualMemoryTable[Index].Length = (PcieControllers[PcieIndex].ConfigSpaceSize == 0) ? + SIZE_256MB : + PcieControllers[PcieIndex].ConfigSpaceSize; mVirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; } diff --git a/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h b/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h index 2ad19aae..80c55eb3 100644 --- a/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h +++ b/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h @@ -111,6 +111,7 @@ typedef struct { typedef struct { EFI_PHYSICAL_ADDRESS PcieDbiAddress; EFI_PHYSICAL_ADDRESS ConfigSpaceAddress; + UINT64 ConfigSpaceSize; BOOLEAN HaveResetGpio; MV_GPIO_PIN PcieResetGpio; UINT64 PcieBusMin;