From: Wasim Khan <wasim.k...@nxp.com> LX2160A SoC has 6 PCIe controllers with 32GB space available for each controller. A platform may have different PCIe controllers enabled based on the RCW used to boot platform. Add space for all PCIe controllers in VirtualMemoryMap.
Signed-off-by: Wasim Khan <wasim.k...@nxp.com> --- Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf | 2 ++ Silicon/NXP/LX2160A/Include/Soc.h | 3 +++ Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLibMem.c | 11 ++++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf b/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf index e1ab682c1976..d98a2539410f 100644 --- a/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf +++ b/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLib.inf @@ -37,6 +37,8 @@ [Sources.AArch64] [FixedPcd] gArmTokenSpaceGuid.PcdArmPrimaryCore gArmTokenSpaceGuid.PcdArmPrimaryCoreMask + gNxpQoriqLsTokenSpaceGuid.PcdNumPciController + gNxpQoriqLsTokenSpaceGuid.PcdPciExp1BaseAddr [Ppis] gArmMpCoreInfoPpiGuid diff --git a/Silicon/NXP/LX2160A/Include/Soc.h b/Silicon/NXP/LX2160A/Include/Soc.h index 6c745d580a6d..d62b8adcdbe7 100644 --- a/Silicon/NXP/LX2160A/Include/Soc.h +++ b/Silicon/NXP/LX2160A/Include/Soc.h @@ -26,6 +26,9 @@ #define LX2160A_FSPI0_PHYS_ADDRESS (BASE_512MB) #define LX2160A_FSPI0_SIZE (SIZE_256MB) +#define LX2160A_PCI1_PHYS_ADDRESS FixedPcdGet64 (PcdPciExp1BaseAddr) +#define LX2160A_PCI_SIZE SIZE_32GB + #define LX2160A_DCFG_ADDRESS NXP_LAYERSCAPE_CHASSIS3V2_DCFG_ADDRESS // SVR diff --git a/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLibMem.c b/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLibMem.c index 391dab265ad7..98a6b2fc4ed4 100644 --- a/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLibMem.c +++ b/Platform/NXP/LX2160aRdbPkg/Library/ArmPlatformLib/ArmPlatformLibMem.c @@ -12,7 +12,7 @@ #include <Library/MemoryAllocationLib.h> #include <Soc.h> -#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 6 +#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS (6 + FixedPcdGet32 (PcdNumPciController)) /** Return the Virtual Memory Map of your platform @@ -30,6 +30,7 @@ ArmPlatformGetVirtualMemoryMap ( ) { UINTN Index; + UINT32 I; ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; Index = 0; @@ -71,6 +72,14 @@ ArmPlatformGetVirtualMemoryMap ( VirtualMemoryTable[Index].Length = LX2160A_FSPI0_SIZE; VirtualMemoryTable[Index++].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + // PCIe Space + for (I = 0; I < FixedPcdGet32 (PcdNumPciController); I++) { + VirtualMemoryTable[Index].PhysicalBase = LX2160A_PCI1_PHYS_ADDRESS + I * LX2160A_PCI_SIZE; + VirtualMemoryTable[Index].VirtualBase = LX2160A_PCI1_PHYS_ADDRESS + I * LX2160A_PCI_SIZE; + VirtualMemoryTable[Index].Length = LX2160A_PCI_SIZE; + VirtualMemoryTable[Index++].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + } + // End of Table ZeroMem (&VirtualMemoryTable[Index], sizeof (ARM_MEMORY_REGION_DESCRIPTOR)); -- 2.7.4 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#61789): https://edk2.groups.io/g/devel/message/61789 Mute This Topic: https://groups.io/mt/75189879/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-