| From 44b69c8d7c8ed665b4f8d8a9953ea23a731d221f Mon Sep 17 00:00:00 2001 |
| From: Your Name <you@example.com> |
| Date: Fri, 10 Mar 2023 18:46:49 +0000 |
| Subject: [PATCH] Revert "ArmVirtPkg/QemuVirtMemInfoLib: use HOB not PCD to |
| record the memory size" |
| |
| This reverts commit 7136d5491e225c57f1d73e4a1b7ac27ed656ff72. |
| |
| Upstream-Status: Inappropriate [other] |
| Signed-off-by: Jon Mason <jon.mason@arm.com> |
| |
| --- |
| ArmVirtPkg/ArmVirtPkg.dec | 1 - |
| ArmVirtPkg/ArmVirtQemu.dsc | 6 ++-- |
| .../ArmVirtMemoryInitPeiLib.c | 14 ++------ |
| .../ArmVirtMemoryInitPeiLib.inf | 1 - |
| .../QemuVirtMemInfoLib/QemuVirtMemInfoLib.c | 35 ++----------------- |
| .../QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf | 5 +-- |
| .../QemuVirtMemInfoPeiLib.inf | 8 ++--- |
| .../QemuVirtMemInfoPeiLibConstructor.c | 30 +++++++--------- |
| 8 files changed, 25 insertions(+), 75 deletions(-) |
| |
| diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec |
| index 4645c91a83..d2d325d71e 100644 |
| --- a/ArmVirtPkg/ArmVirtPkg.dec |
| +++ b/ArmVirtPkg/ArmVirtPkg.dec |
| @@ -32,7 +32,6 @@ |
| gArmVirtTokenSpaceGuid = { 0x0B6F5CA7, 0x4F53, 0x445A, { 0xB7, 0x6E, 0x2E, 0x36, 0x5B, 0x80, 0x63, 0x66 } }
|
| gEarlyPL011BaseAddressGuid = { 0xB199DEA9, 0xFD5C, 0x4A84, { 0x80, 0x82, 0x2F, 0x41, 0x70, 0x78, 0x03, 0x05 } }
|
| gEarly16550UartBaseAddressGuid = { 0xea67ca3e, 0x1f54, 0x436b, { 0x97, 0x88, 0xd4, 0xeb, 0x29, 0xc3, 0x42, 0x67 } }
|
| - gArmVirtSystemMemorySizeGuid = { 0x504eccb9, 0x1bf0, 0x4420, { 0x86, 0x5d, 0xdc, 0x66, 0x06, 0xd4, 0x13, 0xbf } }
|
|
|
| [PcdsFeatureFlag]
|
| #
|
| diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc |
| index 72a0cacab4..2e786dad12 100644 |
| --- a/ArmVirtPkg/ArmVirtQemu.dsc |
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc |
| @@ -226,9 +226,6 @@ |
| # Shadowing PEI modules is absolutely pointless when the NOR flash is emulated
|
| gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnBoot|FALSE
|
|
|
| - # System Memory Size -- 128 MB initially, actual size will be fetched from DT
|
| - gArmTokenSpaceGuid.PcdSystemMemorySize|0x8000000
|
| -
|
| [PcdsFixedAtBuild.AARCH64]
|
| # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
|
| # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
|
| @@ -245,6 +242,9 @@ |
| # enumeration to complete before installing ACPI tables.
|
| gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
|
|
|
| + # System Memory Size -- 1 MB initially, actual size will be fetched from DT
|
| + gArmTokenSpaceGuid.PcdSystemMemorySize|0x00100000
|
| +
|
| gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0
|
| gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0
|
| gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0
|
| diff --git a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c |
| index 72e5c65af7..98d90ad420 100644 |
| --- a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c |
| +++ b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c |
| @@ -52,19 +52,10 @@ MemoryPeim ( |
| {
|
| EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttributes;
|
| UINT64 SystemMemoryTop;
|
| - UINT64 SystemMemorySize;
|
| - VOID *Hob;
|
|
|
| // Ensure PcdSystemMemorySize has been set
|
| ASSERT (PcdGet64 (PcdSystemMemorySize) != 0);
|
|
|
| - SystemMemorySize = PcdGet64 (PcdSystemMemorySize);
|
| -
|
| - Hob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid);
|
| - if (Hob != NULL) {
|
| - SystemMemorySize = *(UINT64 *)GET_GUID_HOB_DATA (Hob);
|
| - }
|
| -
|
| //
|
| // Now, the permanent memory has been installed, we can call AllocatePages()
|
| //
|
| @@ -75,7 +66,8 @@ MemoryPeim ( |
| EFI_RESOURCE_ATTRIBUTE_TESTED
|
| );
|
|
|
| - SystemMemoryTop = PcdGet64 (PcdSystemMemoryBase) + SystemMemorySize;
|
| + SystemMemoryTop = PcdGet64 (PcdSystemMemoryBase) +
|
| + PcdGet64 (PcdSystemMemorySize);
|
|
|
| if (SystemMemoryTop - 1 > MAX_ALLOC_ADDRESS) {
|
| BuildResourceDescriptorHob (
|
| @@ -95,7 +87,7 @@ MemoryPeim ( |
| EFI_RESOURCE_SYSTEM_MEMORY,
|
| ResourceAttributes,
|
| PcdGet64 (PcdSystemMemoryBase),
|
| - SystemMemorySize
|
| + PcdGet64 (PcdSystemMemorySize)
|
| );
|
| }
|
|
|
| diff --git a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf |
| index 48d9c66b22..21327f79f4 100644 |
| --- a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf |
| +++ b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf |
| @@ -34,7 +34,6 @@ |
| CacheMaintenanceLib
|
|
|
| [Guids]
|
| - gArmVirtSystemMemorySizeGuid
|
| gEfiMemoryTypeInformationGuid
|
|
|
| [FeaturePcd]
|
| diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c |
| index 9cf43f06c0..cf569bed99 100644 |
| --- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c |
| +++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c |
| @@ -6,12 +6,10 @@ |
|
|
| **/
|
|
|
| -#include <Uefi.h>
|
| -#include <Pi/PiMultiPhase.h>
|
| +#include <Base.h>
|
| #include <Library/ArmLib.h>
|
| #include <Library/BaseMemoryLib.h>
|
| #include <Library/DebugLib.h>
|
| -#include <Library/HobLib.h>
|
| #include <Library/MemoryAllocationLib.h>
|
|
|
| // Number of Virtual Memory Map Descriptors
|
| @@ -26,28 +24,6 @@ |
| #define MACH_VIRT_PERIPH_BASE 0x08000000
|
| #define MACH_VIRT_PERIPH_SIZE SIZE_128MB
|
|
|
| -/**
|
| - Default library constructur that obtains the memory size from a PCD.
|
| -
|
| - @return Always returns RETURN_SUCCESS
|
| -
|
| -**/
|
| -RETURN_STATUS
|
| -EFIAPI
|
| -QemuVirtMemInfoLibConstructor (
|
| - VOID
|
| - )
|
| -{
|
| - UINT64 Size;
|
| - VOID *Hob;
|
| -
|
| - Size = PcdGet64 (PcdSystemMemorySize);
|
| - Hob = BuildGuidDataHob (&gArmVirtSystemMemorySizeGuid, &Size, sizeof Size);
|
| - ASSERT (Hob != NULL);
|
| -
|
| - return RETURN_SUCCESS;
|
| -}
|
| -
|
| /**
|
| Return the Virtual Memory Map of your platform
|
|
|
| @@ -67,16 +43,9 @@ ArmVirtGetMemoryMap ( |
| )
|
| {
|
| ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable;
|
| - VOID *MemorySizeHob;
|
|
|
| ASSERT (VirtualMemoryMap != NULL);
|
|
|
| - MemorySizeHob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid);
|
| - ASSERT (MemorySizeHob != NULL);
|
| - if (MemorySizeHob == NULL) {
|
| - return;
|
| - }
|
| -
|
| VirtualMemoryTable = AllocatePool (
|
| sizeof (ARM_MEMORY_REGION_DESCRIPTOR) *
|
| MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS
|
| @@ -90,7 +59,7 @@ ArmVirtGetMemoryMap ( |
| // System DRAM
|
| VirtualMemoryTable[0].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
|
| VirtualMemoryTable[0].VirtualBase = VirtualMemoryTable[0].PhysicalBase;
|
| - VirtualMemoryTable[0].Length = *(UINT64 *)GET_GUID_HOB_DATA (MemorySizeHob);
|
| + VirtualMemoryTable[0].Length = PcdGet64 (PcdSystemMemorySize);
|
| VirtualMemoryTable[0].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
|
|
|
| DEBUG ((
|
| diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf |
| index 6acad8bbd7..7150de6c10 100644 |
| --- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf |
| +++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf |
| @@ -14,7 +14,6 @@ |
| MODULE_TYPE = BASE
|
| VERSION_STRING = 1.0
|
| LIBRARY_CLASS = ArmVirtMemInfoLib
|
| - CONSTRUCTOR = QemuVirtMemInfoLibConstructor
|
|
|
| [Sources]
|
| QemuVirtMemInfoLib.c
|
| @@ -31,9 +30,7 @@ |
| BaseMemoryLib
|
| DebugLib
|
| MemoryAllocationLib
|
| -
|
| -[Guids]
|
| - gArmVirtSystemMemorySizeGuid
|
| + PcdLib
|
|
|
| [Pcd]
|
| gArmTokenSpaceGuid.PcdFvBaseAddress
|
| diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf |
| index f045e39a41..7ecf6dfbb7 100644 |
| --- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf |
| +++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf |
| @@ -32,16 +32,16 @@ |
| BaseMemoryLib
|
| DebugLib
|
| FdtLib
|
| + PcdLib
|
| MemoryAllocationLib
|
|
|
| -[Guids]
|
| - gArmVirtSystemMemorySizeGuid
|
| -
|
| -[FixedPcd]
|
| +[Pcd]
|
| gArmTokenSpaceGuid.PcdFdBaseAddress
|
| gArmTokenSpaceGuid.PcdFvBaseAddress
|
| gArmTokenSpaceGuid.PcdSystemMemoryBase
|
| gArmTokenSpaceGuid.PcdSystemMemorySize
|
| +
|
| +[FixedPcd]
|
| gArmTokenSpaceGuid.PcdFdSize
|
| gArmTokenSpaceGuid.PcdFvSize
|
| gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress
|
| diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c |
| index c47ab82966..33d3597d57 100644 |
| --- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c |
| +++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c |
| @@ -6,10 +6,9 @@ |
|
|
| **/
|
|
|
| -#include <Uefi.h>
|
| -#include <Pi/PiMultiPhase.h>
|
| +#include <Base.h>
|
| #include <Library/DebugLib.h>
|
| -#include <Library/HobLib.h>
|
| +#include <Library/PcdLib.h>
|
| #include <libfdt.h>
|
|
|
| RETURN_STATUS
|
| @@ -18,14 +17,14 @@ QemuVirtMemInfoPeiLibConstructor ( |
| VOID
|
| )
|
| {
|
| - VOID *DeviceTreeBase;
|
| - INT32 Node, Prev;
|
| - UINT64 NewBase, CurBase;
|
| - UINT64 NewSize, CurSize;
|
| - CONST CHAR8 *Type;
|
| - INT32 Len;
|
| - CONST UINT64 *RegProp;
|
| - VOID *Hob;
|
| + VOID *DeviceTreeBase;
|
| + INT32 Node, Prev;
|
| + UINT64 NewBase, CurBase;
|
| + UINT64 NewSize, CurSize;
|
| + CONST CHAR8 *Type;
|
| + INT32 Len;
|
| + CONST UINT64 *RegProp;
|
| + RETURN_STATUS PcdStatus;
|
|
|
| NewBase = 0;
|
| NewSize = 0;
|
| @@ -87,13 +86,8 @@ QemuVirtMemInfoPeiLibConstructor ( |
| // Make sure the start of DRAM matches our expectation
|
| //
|
| ASSERT (FixedPcdGet64 (PcdSystemMemoryBase) == NewBase);
|
| -
|
| - Hob = BuildGuidDataHob (
|
| - &gArmVirtSystemMemorySizeGuid,
|
| - &NewSize,
|
| - sizeof NewSize
|
| - );
|
| - ASSERT (Hob != NULL);
|
| + PcdStatus = PcdSet64S (PcdSystemMemorySize, NewSize);
|
| + ASSERT_RETURN_ERROR (PcdStatus);
|
|
|
| //
|
| // We need to make sure that the machine we are running on has at least
|