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;