]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg,ArmPlatformPkg: Allow dynamic PCDs for memory base and size
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 9 Sep 2014 16:11:30 +0000 (16:11 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 9 Sep 2014 16:11:30 +0000 (16:11 +0000)
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

ArmPkg/ArmPkg.dec
ArmPkg/Library/BdsLib/BdsLib.inf
ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
ArmPlatformPkg/PrePi/PeiUniCore.inf

index ae22457b5fbcf82ea86b72d3232318f0e2b4d998..05bc1dcd6d613c042c01f304b6ee13aac5a5de9e 100644 (file)
   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
index ddd65aae8e2cdc7fd3162a9abdf2e14834388742..02409e1392fb62019a353fb485a970782b101127 100644 (file)
 [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
index 5d3a93fb7207e21c3ec572461670e0939e934e01..596f5595412e7f68db306ea74875bab6ad7fd46c 100644 (file)
   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
index 4b21caa0279ecfce59a4df38b127a5cbd31409a3..1e5b93e8a5078df0e5c66cd31abac56c408a31f7 100755 (executable)
@@ -1,6 +1,6 @@
 #/** @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
@@ -39,8 +39,6 @@
 [Guids]\r
   gEfiMemoryTypeInformationGuid\r
 \r
-[Ppis]\r
-\r
 [FeaturePcd]\r
   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob\r
 \r
@@ -48,8 +46,6 @@
   gArmTokenSpaceGuid.PcdFdBaseAddress\r
   gArmTokenSpaceGuid.PcdFdSize\r
 \r
-  gArmTokenSpaceGuid.PcdSystemMemoryBase\r
-  gArmTokenSpaceGuid.PcdSystemMemorySize\r
   gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize\r
 \r
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory\r
@@ -62,5 +58,9 @@
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode\r
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData\r
 \r
-[depex]\r
+[Pcd]\r
+  gArmTokenSpaceGuid.PcdSystemMemoryBase\r
+  gArmTokenSpaceGuid.PcdSystemMemorySize\r
+\r
+[Depex]\r
   TRUE\r
index 4821fdc2fa89cfa2b3bca8b39b3a9af2a2f570a9..587c4b5ce3a3fa87db1127ca15ea3bbdcb1a2ef5 100755 (executable)
@@ -103,14 +103,6 @@ InitializeMemory (
 \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
@@ -119,6 +111,14 @@ InitializeMemory (
     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
index 504026e90f6cd981186dffe8d7edc95424cd5f73..6374b63f8524d588702269f25db9fa4f2b84e5e1 100755 (executable)
@@ -1,6 +1,6 @@
 #/** @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
@@ -55,8 +55,6 @@
   gArmTokenSpaceGuid.PcdFdBaseAddress\r
   gArmTokenSpaceGuid.PcdFdSize\r
 \r
-  gArmTokenSpaceGuid.PcdSystemMemoryBase\r
-  gArmTokenSpaceGuid.PcdSystemMemorySize\r
   gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize\r
 \r
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory\r
@@ -69,5 +67,9 @@
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode\r
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData\r
 \r
+[Pcd]\r
+  gArmTokenSpaceGuid.PcdSystemMemoryBase\r
+  gArmTokenSpaceGuid.PcdSystemMemorySize\r
+\r
 [Depex]\r
   TRUE\r
index 1c0737bdedcb369cf91ee848729480ef0f84990c..f8925737ff628852e2d9f5deb3c5a34e9d9332d4 100755 (executable)
@@ -88,8 +88,6 @@
 \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