This changes the definition and a bunch of references to
gArmTokenSpaceGuid.PcdSystemMemoryBase and
gArmTokenSpaceGuid.PcdSystemMemorySize so they can be declared as dynamic PCDs
by the platform. Also, move the non-SEC call to
ArmPlatformInitializeSystemMemory() earlier, so a platform has a chance to set
these PCDs before they are first referenced.
The purpose is allowing dynamically instantiated virtual machines to declare
the system memory by passing a device tree.
Contributed-under: TianoCore Contribution Agreement 1.0
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16079
6f19259b-4bc3-4df7-8a09-
765794883524
gArmTokenSpaceGuid.PcdHypFvBaseAddress|0|UINT32|0x0000003C\r
gArmTokenSpaceGuid.PcdHypFvSize|0|UINT32|0x0000003D\r
\r
- # System Memory (DRAM): These PCDs define the region of in-built system memory\r
- # Some platforms can get DRAM extensions, these additional regions will be declared\r
- # to UEFI by ArmPlatformLib\r
- gArmTokenSpaceGuid.PcdSystemMemoryBase|0|UINT64|0x00000029\r
- gArmTokenSpaceGuid.PcdSystemMemorySize|0|UINT64|0x0000002A\r
-\r
# Use ClusterId + CoreId to identify the PrimaryCore\r
gArmTokenSpaceGuid.PcdArmPrimaryCoreMask|0xF03|UINT32|0x00000031\r
# The Primary Core is ClusterId[0] & CoreId[0]\r
# context of virtual machine.\r
#\r
[PcdsFixedAtBuild.common, PcdsDynamic.common]\r
+ # System Memory (DRAM): These PCDs define the region of in-built system memory\r
+ # Some platforms can get DRAM extensions, these additional regions will be declared\r
+ # to UEFI by ArmPlatformLib\r
+ gArmTokenSpaceGuid.PcdSystemMemoryBase|0|UINT64|0x00000029\r
+ gArmTokenSpaceGuid.PcdSystemMemorySize|0|UINT64|0x0000002A\r
+\r
#\r
# ARM Architectural Timer\r
#\r
[FeaturePcd]\r
gArmTokenSpaceGuid.PcdArmLinuxSpinTable\r
\r
-[FixedPcd]\r
+[Pcd]\r
gArmTokenSpaceGuid.PcdSystemMemoryBase\r
gArmTokenSpaceGuid.PcdSystemMemorySize\r
\r
+[FixedPcd]\r
gArmTokenSpaceGuid.PcdArmMachineType\r
gArmTokenSpaceGuid.PcdArmLinuxFdtMaxOffset\r
gArmTokenSpaceGuid.PcdArmLinuxFdtAlignment\r
gArmTokenSpaceGuid.PcdFdBaseAddress\r
gArmTokenSpaceGuid.PcdFdSize\r
\r
- gArmTokenSpaceGuid.PcdSystemMemoryBase\r
- gArmTokenSpaceGuid.PcdSystemMemorySize\r
-\r
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize\r
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize\r
\r
+[Pcd]\r
+ gArmTokenSpaceGuid.PcdSystemMemoryBase\r
+ gArmTokenSpaceGuid.PcdSystemMemorySize\r
+\r
#/** @file\r
#\r
-# Copyright (c) 2011, ARM Ltd. All rights reserved.<BR>\r
+# Copyright (c) 2011-2014, ARM Ltd. All rights reserved.<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
[Guids]\r
gEfiMemoryTypeInformationGuid\r
\r
-[Ppis]\r
-\r
[FeaturePcd]\r
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob\r
\r
gArmTokenSpaceGuid.PcdFdBaseAddress\r
gArmTokenSpaceGuid.PcdFdSize\r
\r
- gArmTokenSpaceGuid.PcdSystemMemoryBase\r
- gArmTokenSpaceGuid.PcdSystemMemorySize\r
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize\r
\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData\r
\r
-[depex]\r
+[Pcd]\r
+ gArmTokenSpaceGuid.PcdSystemMemoryBase\r
+ gArmTokenSpaceGuid.PcdSystemMemorySize\r
+\r
+[Depex]\r
TRUE\r
\r
DEBUG ((EFI_D_ERROR, "Memory Init PEIM Loaded\n"));\r
\r
- // Ensure PcdSystemMemorySize has been set\r
- ASSERT (FixedPcdGet64 (PcdSystemMemorySize) != 0);\r
-\r
- SystemMemoryBase = (UINTN)FixedPcdGet64 (PcdSystemMemoryBase);\r
- SystemMemoryTop = SystemMemoryBase + (UINTN)FixedPcdGet64 (PcdSystemMemorySize);\r
- FdBase = (UINTN)PcdGet32 (PcdFdBaseAddress);\r
- FdTop = FdBase + (UINTN)PcdGet32 (PcdFdSize);\r
-\r
//\r
// Initialize the System Memory (DRAM)\r
//\r
ArmPlatformInitializeSystemMemory ();\r
}\r
\r
+ // Ensure PcdSystemMemorySize has been set\r
+ ASSERT (PcdGet64 (PcdSystemMemorySize) != 0);\r
+\r
+ SystemMemoryBase = (UINTN)PcdGet64 (PcdSystemMemoryBase);\r
+ SystemMemoryTop = SystemMemoryBase + (UINTN)PcdGet64 (PcdSystemMemorySize);\r
+ FdBase = (UINTN)PcdGet32 (PcdFdBaseAddress);\r
+ FdTop = FdBase + (UINTN)PcdGet32 (PcdFdSize);\r
+\r
//\r
// Declare the UEFI memory to PEI\r
//\r
#/** @file\r
#\r
-# Copyright (c) 2011, ARM Ltd. All rights reserved.<BR>\r
+# Copyright (c) 2011-2014, ARM Ltd. All rights reserved.<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
gArmTokenSpaceGuid.PcdFdBaseAddress\r
gArmTokenSpaceGuid.PcdFdSize\r
\r
- gArmTokenSpaceGuid.PcdSystemMemoryBase\r
- gArmTokenSpaceGuid.PcdSystemMemorySize\r
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize\r
\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData\r
\r
+[Pcd]\r
+ gArmTokenSpaceGuid.PcdSystemMemoryBase\r
+ gArmTokenSpaceGuid.PcdSystemMemorySize\r
+\r
[Depex]\r
TRUE\r
\r
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize\r
\r
- gArmTokenSpaceGuid.PcdSystemMemoryBase\r
- gArmTokenSpaceGuid.PcdSystemMemorySize\r
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize\r
\r
gArmPlatformTokenSpaceGuid.PcdCoreCount\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData\r
+\r
+[Pcd]\r
+ gArmTokenSpaceGuid.PcdSystemMemoryBase\r
+ gArmTokenSpaceGuid.PcdSystemMemorySize\r