From nobody Sat May 4 13:41:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+92572+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92572+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1660896564; cv=none; d=zohomail.com; s=zohoarc; b=fv8Gsw3rnRKMrojyPNqgxBE8H4vvsyaC9DHZKxY+fJulvX4i3omVomNuX0zUdLMtAFE8l6NgCninP7OwJcYJxAZb6D3+cpZSW5LjiUrKX/WjF0rHQyijCDbQYWduWoTkW7Q0EbiMl+/HaP/EyzsnKy28hVosYvUxLaEKkuZYdMc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660896564; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=B9W8EAb+qInWY+2AoS5HmBSP2d1mllI7eGGyZqEdLpw=; b=UpuEXIoYkf8uBRg4uplcJzwgd9mHcVFv0UGTicmdZv04YB3UhMGj3GW6jDAWc9XJaLGnvzY3UxvhuxWigaSAkDC51hoK3W2F6yuAyX00qCXq+NeLrkp9a185OZmfl1D0nPQLVPme3HRpVNSNV+RGiFSwNxjip0dyBp87DMUWal8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92572+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1660896564639434.03600848446615; Fri, 19 Aug 2022 01:09:24 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id GAXKYY1788612xBXlQg2XErE; Fri, 19 Aug 2022 01:09:24 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web08.732.1660896563455401557 for ; Fri, 19 Aug 2022 01:09:23 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B9D2D175A; Fri, 19 Aug 2022 01:09:24 -0700 (PDT) X-Received: from entos-thunderx2-desktop.shanghai.arm.com (entos-thunderx2-desktop.shanghai.arm.com [10.169.212.232]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 416D03F70D; Fri, 19 Aug 2022 01:09:21 -0700 (PDT) From: "Jianyong Wu" To: devel@edk2.groups.io, Sami.Mujawar@arm.com Cc: ardb+tianocore@kernel.org, justin.he@arm.com, jianyong.wu@arm.com Subject: [edk2-devel] [PATCH v2 1/2] CloudHv/arm: add PeiMemInfoLib Date: Fri, 19 Aug 2022 16:09:10 +0800 Message-Id: <20220819080911.188127-2-jianyong.wu@arm.com> In-Reply-To: <20220819080911.188127-1-jianyong.wu@arm.com> References: <20220819080911.188127-1-jianyong.wu@arm.com> Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jianyong.wu@arm.com X-Gm-Message-State: CSKBcyVKI17cPV9mBkImROeox1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1660896564; bh=yCWr433xXxtjSYGurwGRNq7ag2J7LQxUBvPeqqlWNYI=; h=Cc:Date:From:Reply-To:Subject:To; b=Pyois10Twj5mvTcHufrUXeF7ZvCW4RYzjevc/jUnutvUnetBXeE75CNlesnu4Rm2510 hxaA/iR68Fj0ZGu5mcyhN5wnMJjgAdsDEjmDWA7dT4v6F23eJxyyIlJ1zDzMRDxf2GFtC S73EI95D/IqoUkJEj2S9iHSCrMvyahRoI2s= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660896566186100007 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Memory layout in CLoud Hypervisor for arm is changed and is different with Qemu, thus we should build its own PeiMemInfoLib. The main change in the memory layout is that normal ram may not contiguous under 4G. The top 64M under 4G is reserved for 32bit device. What this patch does: 1. get all of the memory node from DT; 2. Add all of the memory nodes to Hob; 3. Init page table for each memory node; Signed-off-by: Jianyong Wu Reviewed-by: Sami Mujawar --- .../CloudHvVirtMemInfoLib.c | 230 ++++++++++++++++++ .../CloudHvVirtMemInfoLib.h | 42 ++++ .../CloudHvVirtMemInfoPeiLib.inf | 46 ++++ 3 files changed, 318 insertions(+) create mode 100644 ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMem= InfoLib.c create mode 100644 ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMem= InfoLib.h create mode 100644 ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMem= InfoPeiLib.inf diff --git a/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoLib= .c b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoLib.c new file mode 100644 index 0000000000..d9c434754e --- /dev/null +++ b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoLib.c @@ -0,0 +1,230 @@ +/** @file + + Copyright (c) 2022, Arm Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "CloudHvVirtMemInfoLib.h" + +CLOUDHV_MEM_NODE_INFO CloudHvMemNode[CLOUDHV_MAX_MEM_NODE_NUM]; + +RETURN_STATUS +EFIAPI +CloudHvVirtMemInfoPeiLibConstructor ( + VOID + ) +{ + VOID *DeviceTreeBase; + EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttributes; + INT32 Node, Prev; + UINT64 FirMemNodeBase, FirMemNodeSize; + UINT64 CurBase, MemBase; + UINT64 CurSize; + CONST CHAR8 *Type; + INT32 Len; + CONST UINT64 *RegProp; + RETURN_STATUS PcdStatus; + UINT8 Index; + + ZeroMem (CloudHvMemNode, sizeof(CloudHvMemNode)); + + FirMemNodeBase =3D 0; + FirMemNodeSize =3D 0; + Index =3D 0; + MemBase =3D FixedPcdGet64 (PcdSystemMemoryBase); + ResourceAttributes =3D ( + EFI_RESOURCE_ATTRIBUTE_PRESENT | + EFI_RESOURCE_ATTRIBUTE_INITIALIZED | + EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE | + EFI_RESOURCE_ATTRIBUTE_TESTED + ); + DeviceTreeBase =3D (VOID *)(UINTN)PcdGet64 (PcdDeviceTreeInitialBaseAddr= ess); + if (DeviceTreeBase =3D=3D NULL) { + return EFI_NOT_FOUND; + } + + // + // Make sure we have a valid device tree blob + // + if (fdt_check_header (DeviceTreeBase) !=3D 0) { + return EFI_NOT_FOUND; + } + + // + // Look for the lowest memory node + // + for (Prev =3D 0; ; Prev =3D Node) { + Node =3D fdt_next_node (DeviceTreeBase, Prev, NULL); + if (Node < 0) { + break; + } + + // + // Check for memory node + // + Type =3D fdt_getprop (DeviceTreeBase, Node, "device_type", &Len); + if (Type && (AsciiStrnCmp (Type, "memory", Len) =3D=3D 0)) { + // + // Get the 'reg' property of this node. For now, we will assume + // two 8 byte quantities for base and size, respectively. + // + RegProp =3D fdt_getprop (DeviceTreeBase, Node, "reg", &Len); + if ((RegProp !=3D 0) && (Len =3D=3D (2 * sizeof (UINT64)))) { + CurBase =3D fdt64_to_cpu (ReadUnaligned64 (RegProp)); + CurSize =3D fdt64_to_cpu (ReadUnaligned64 (RegProp + 1)); + + DEBUG (( + DEBUG_INFO, + "%a: System RAM @ 0x%lx - 0x%lx\n", + __FUNCTION__, + CurBase, + CurBase + CurSize - 1 + )); + + // We should build Hob seperately for the memory node except the f= irst one + if (CurBase !=3D MemBase) { + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + CurBase, + CurSize + ); + } else { + FirMemNodeBase =3D CurBase; + FirMemNodeSize =3D CurSize; + } + + CloudHvMemNode[Index].Base =3D CurBase; + CloudHvMemNode[Index].Size =3D CurSize; + Index++; + + if (Index >=3D CLOUDHV_MAX_MEM_NODE_NUM) { + DEBUG (( + DEBUG_WARN, + "%a: memory node larger than %d will not be included into Memo= ry System\n", + __FUNCTION__, + CLOUDHV_MAX_MEM_NODE_NUM + )); + break; + } + } else { + DEBUG (( + DEBUG_ERROR, + "%a: Failed to parse FDT memory node\n", + __FUNCTION__ + )); + } + } + } + + // + // Make sure the start of DRAM matches our expectation + // + if (FixedPcdGet64 (PcdSystemMemoryBase) !=3D FirMemNodeBase) { + return EFI_NOT_FOUND; + } + PcdStatus =3D PcdSet64S (PcdSystemMemorySize, FirMemNodeSize); + ASSERT_RETURN_ERROR (PcdStatus); + ASSERT ( + (((UINT64)PcdGet64 (PcdFdBaseAddress) + + (UINT64)PcdGet32 (PcdFdSize)) <=3D FirMemNodeBase) || + ((UINT64)PcdGet64 (PcdFdBaseAddress) >=3D (FirMemNodeBase + FirMemNode= Size)) + ); + + return RETURN_SUCCESS; +} + +/** + Return the Virtual Memory Map of your platform + + This Virtual Memory Map is used by MemoryInitPei Module to initialize th= e MMU + on your platform. + + @param[out] VirtualMemoryMap Array of ARM_MEMORY_REGION_DESCRIPTOR + describing a Physical-to-Virtual Memory + mapping. This array must be ended by a + zero-filled entry. The allocated memory + will not be freed. + +**/ +VOID +ArmVirtGetMemoryMap ( + OUT ARM_MEMORY_REGION_DESCRIPTOR **VirtualMemoryMap + ) +{ + ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; + UINT8 Index =3D 0, MemNodeIndex =3D 0; + + ASSERT (VirtualMemoryMap !=3D NULL); + + VirtualMemoryTable =3D AllocatePool ( + sizeof (ARM_MEMORY_REGION_DESCRIPTOR) * + MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS + ); + + if (VirtualMemoryTable =3D=3D NULL) { + DEBUG ((DEBUG_ERROR, "%a: Error: Failed AllocatePool()\n", __FUNCTION_= _)); + return; + } + // System DRAM + while ((MemNodeIndex < CLOUDHV_MAX_MEM_NODE_NUM) && (CloudHvMemNode[MemN= odeIndex].Size !=3D 0)) { + VirtualMemoryTable[Index].PhysicalBase =3D CloudHvMemNode[MemNodeIndex= ].Base; + VirtualMemoryTable[Index].VirtualBase =3D CloudHvMemNode[MemNodeIndex= ].Base; + VirtualMemoryTable[Index].Length =3D CloudHvMemNode[MemNodeIndex= ].Size; + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE= _WRITE_BACK; + + DEBUG (( + DEBUG_INFO, + "%a: Dumping System DRAM Memory Node%d Map:\n" + "\tPhysicalBase: 0x%lX\n" + "\tVirtualBase: 0x%lX\n" + "\tLength: 0x%lX\n", + __FUNCTION__, + MemNodeIndex, + VirtualMemoryTable[Index].PhysicalBase, + VirtualMemoryTable[Index].VirtualBase, + VirtualMemoryTable[Index].Length + )); + Index++; + MemNodeIndex++; + } + // Memory mapped peripherals (UART, RTC, GIC, virtio-mmio, etc) + VirtualMemoryTable[Index].PhysicalBase =3D MACH_VIRT_PERIPH_BASE; + VirtualMemoryTable[Index].VirtualBase =3D MACH_VIRT_PERIPH_BASE; + VirtualMemoryTable[Index].Length =3D MACH_VIRT_PERIPH_SIZE; + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_D= EVICE; + Index++; + + // Map the FV region as normal executable memory + VirtualMemoryTable[Index].PhysicalBase =3D PcdGet64 (PcdFvBaseAddress); + VirtualMemoryTable[Index].VirtualBase =3D VirtualMemoryTable[Index].Phy= sicalBase; + VirtualMemoryTable[Index].Length =3D FixedPcdGet32 (PcdFvSize); + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_W= RITE_BACK; + Index++; + + // Memory mapped for 32bit device (like TPM) + VirtualMemoryTable[Index].PhysicalBase =3D TOP_32BIT_DEVICE_BASE; + VirtualMemoryTable[Index].VirtualBase =3D TOP_32BIT_DEVICE_BASE; + VirtualMemoryTable[Index].Length =3D TOP_32BIT_DEVICE_SIZE; + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_D= EVICE; + Index++; + + // End of Table + ZeroMem (&VirtualMemoryTable[Index], sizeof (ARM_MEMORY_REGION_DESCRIPTO= R)); + + *VirtualMemoryMap =3D VirtualMemoryTable; +} diff --git a/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoLib= .h b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoLib.h new file mode 100644 index 0000000000..e624373472 --- /dev/null +++ b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoLib.h @@ -0,0 +1,42 @@ +/** @file + + Copyright (c) 2022, Arm Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _CLOUDHV_VIRT_MEM_INFO_LIB_H_ +#define _CLOUDHV_VIRT_MEM_INFO_LIB_H_ + +// +// Cloud Hypervisor may have more than one memory nodes. Even there is no = limit for that, +// I think 10 is enough in general. +// +#define CLOUDHV_MAX_MEM_NODE_NUM 10 + +// Record memory node info (base address and size) +typedef struct { + UINT64 Base; + UINT64 Size; +} CLOUDHV_MEM_NODE_INFO; + +// Number of Virtual Memory Map Descriptors +#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS (4 + CLOUDHV_MAX_MEM_NODE_NUM) + +// +// Core peripherals such as the UART, the GIC and the RTC are +// all mapped in the 'miscellaneous device I/O' region, which we just map +// in its entirety rather than device by device. Note that it does not +// cover any of the NOR flash banks or PCI resource windows. +// +#define MACH_VIRT_PERIPH_BASE 0x00400000 +#define MACH_VIRT_PERIPH_SIZE 0x0FC00000 + +// +// The top of the 64M memory region under 4GB reserved for device +// +#define TOP_32BIT_DEVICE_BASE 0xFC000000 +#define TOP_32BIT_DEVICE_SIZE 0x04000000 + +#endif // _CLOUDHV_VIRT_MEM_INFO_LIB_H_ diff --git a/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPei= Lib.inf b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib= .inf new file mode 100644 index 0000000000..30626776ae --- /dev/null +++ b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf @@ -0,0 +1,46 @@ +/** @file + + Copyright (c) 2022, Arm Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +[Defines] + INF_VERSION =3D 0x0001001B + BASE_NAME =3D CloudHvVirtMemInfoPeiLib + FILE_GUID =3D c7ada233-d35b-49c3-aa51-e2b5cd80c910 + MODULE_TYPE =3D BASE + VERSION_STRING =3D 1.0 + LIBRARY_CLASS =3D ArmVirtMemInfoLib|PEIM + CONSTRUCTOR =3D CloudHvVirtMemInfoPeiLibConstructor + +[Sources] + CloudHvVirtMemInfoLib.c + CloudHvVirtMemInfoLib.h + +[Packages] + ArmPkg/ArmPkg.dec + ArmVirtPkg/ArmVirtPkg.dec + EmbeddedPkg/EmbeddedPkg.dec + MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec + +[LibraryClasses] + ArmLib + BaseMemoryLib + DebugLib + FdtLib + MemoryAllocationLib + PcdLib + +[Pcd] + gArmTokenSpaceGuid.PcdFdBaseAddress + gArmTokenSpaceGuid.PcdFvBaseAddress + gArmTokenSpaceGuid.PcdSystemMemoryBase + gArmTokenSpaceGuid.PcdSystemMemorySize + +[FixedPcd] + gArmTokenSpaceGuid.PcdFdSize + gArmTokenSpaceGuid.PcdFvSize + gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#92572): https://edk2.groups.io/g/devel/message/92572 Mute This Topic: https://groups.io/mt/93120531/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sat May 4 13:41:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+92573+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92573+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1660896568; cv=none; d=zohomail.com; s=zohoarc; b=Us1krr2keY50oi3138QkhvORU/jIMRDxuE0So3R1PJ4n0NSw7mKKqlKSwhpszPd2KwS/2Lyj7dlVI00oLy0VP4/Ppg++b5fHDUVT+C3KTXfWY56WFGyXsd/4dv7yVdrNzsObdI7ZFXod2Z2jIbSWTVoMFYcDUjNxarfWOdlW5fk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660896568; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=VaKCc9yQNMsrZJxeltANuVbbs/EP16YktcyS85XFl5A=; b=O/qEOuEdOsSYsNAPnddQCodwaMb7XPCRWLZr5SUQdsWGZ2XT625ynGKsjBtSeItjTylmYQirDGv68v2+rHSO/xVBCIlj7do1r7efv0QolNbVhQBY7rvX7bK91gvB8ptl8nwlBC6WGJMlkNkf10UqBwRtPtxTifGrVOmVe6ar9yg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92573+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 166089656867053.969831550867184; Fri, 19 Aug 2022 01:09:28 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id tyOHYY1788612xjqxGElMf0h; Fri, 19 Aug 2022 01:09:27 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web08.733.1660896566386227780 for ; Fri, 19 Aug 2022 01:09:26 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 185CB1042; Fri, 19 Aug 2022 01:09:27 -0700 (PDT) X-Received: from entos-thunderx2-desktop.shanghai.arm.com (entos-thunderx2-desktop.shanghai.arm.com [10.169.212.232]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 8FD9C3F70D; Fri, 19 Aug 2022 01:09:23 -0700 (PDT) From: "Jianyong Wu" To: devel@edk2.groups.io, Sami.Mujawar@arm.com Cc: ardb+tianocore@kernel.org, justin.he@arm.com, jianyong.wu@arm.com Subject: [edk2-devel] [PATCH 2/2] CloudHv/arm: switch PeiMemLib to its own Date: Fri, 19 Aug 2022 16:09:11 +0800 Message-Id: <20220819080911.188127-3-jianyong.wu@arm.com> In-Reply-To: <20220819080911.188127-1-jianyong.wu@arm.com> References: <20220819080911.188127-1-jianyong.wu@arm.com> Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jianyong.wu@arm.com X-Gm-Message-State: pWD4LTl8e0sdRmMh1nyGlkyKx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1660896567; bh=UJ2D0sgPvnPL6e+noi18hYtdDWwLg9RxMgzxVoocJzA=; h=Cc:Date:From:Reply-To:Subject:To; b=T+Ao+1HtZtngr+Ho6WvkMjqFx+6dZ5iwZf2en55k00XAUEB+xqKjLLMfHSuwga5C1u8 tbV3/pnp+lW3qObHvV+XTe3QZZCiyLkERumCWV1qbqiDt75S37lC0sjBWQzcDjjOrhyx9 UCNJ32UriPneo+DGrnKG1jkxypOXRNsYfVg= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660896570162100001 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" As Cloud Hypervisor has its own PeiMemLib, change it in dsc file accordingly. Signed-off-by: Jianyong Wu Reviewed-by: Sami Mujawar --- ArmVirtPkg/ArmVirtCloudHv.dsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArmVirtPkg/ArmVirtCloudHv.dsc b/ArmVirtPkg/ArmVirtCloudHv.dsc index 7559386a1d..7ca7a391d9 100644 --- a/ArmVirtPkg/ArmVirtCloudHv.dsc +++ b/ArmVirtPkg/ArmVirtCloudHv.dsc @@ -60,7 +60,7 @@ !include MdePkg/MdeLibs.dsc.inc =20 [LibraryClasses.common.PEIM] - ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoP= eiLib.inf + ArmVirtMemInfoLib|ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMe= mInfoPeiLib.inf =20 [LibraryClasses.common.DXE_DRIVER] ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRepor= tStatusCodeLib.inf --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#92573): https://edk2.groups.io/g/devel/message/92573 Mute This Topic: https://groups.io/mt/93120532/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-