From nobody Sun Feb 8 17:48:07 2026 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+87235+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+87235+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1646234599; cv=none; d=zohomail.com; s=zohoarc; b=HslH6QeuQgyYlwsgjWmsDdYQbIr5YYe8VTB+JnTod8xByuXviE7NmkB/snJ1iZ/pnPFSSCtTbXCUP0PbJwtalKcYDkFijD5N2kRwjm5tIQ0HpSORAuWq8+WhYrduG7U/hDBg23RgrbL7Mh8U3gJ2pQCVgpByAi/aF3GmY/36zn0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646234599; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=4bZXRRwiLoS8jRfjkpLNSC1VC2nqyyJ45LEMAWTqZOs=; b=I6fLSgJYRW9kAVIO2yTs7m+/xhbLd51uE9+1F13LF3kpOgrAqp3fp4dP8X0lKl62ZmlxWy4SkTkPxfnA9nLNgz3HO9gcS6XG8S4zaQL9IU2q0U7/51rdDIqYwz3LxP5wGeWsu0orzXk9p5wGHe6QXtp9mXREMmSgiHm7HfgAN+A= 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+87235+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 1646234599283962.8223308737003; Wed, 2 Mar 2022 07:23:19 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id e7jUYY1788612xFupf1XDJLJ; Wed, 02 Mar 2022 07:23:19 -0800 X-Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.5530.1646212796036188164 for ; Wed, 02 Mar 2022 01:19:59 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10273"; a="233324188" X-IronPort-AV: E=Sophos;i="5.90,148,1643702400"; d="scan'208";a="233324188" X-Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Mar 2022 01:19:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,148,1643702400"; d="scan'208";a="641630321" X-Received: from shwdeopenlab704.ccr.corp.intel.com ([10.239.182.239]) by orsmga004.jf.intel.com with ESMTP; 02 Mar 2022 01:19:57 -0800 From: Yu Pu To: devel@edk2.groups.io Cc: Yu Pu , Jian J Wang , Liming Gao Subject: [edk2-devel] [PATCH v1 2/7] MdeModulePkg: Invoke GetPhysicalAddressBits() and remove the duplicated code Date: Wed, 2 Mar 2022 17:18:54 +0800 Message-Id: <20220302091859.2783-3-yu.pu@intel.com> In-Reply-To: <20220302091859.2783-1-yu.pu@intel.com> References: <20220302091859.2783-1-yu.pu@intel.com> MIME-Version: 1.0 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,yu.pu@intel.com X-Gm-Message-State: H1OWvxd3fXdOYAofNqCVA4Svx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1646234599; bh=sR7PIUGKN3EKfKXVUvL4t7/O4XrJ5WeNd1ar5Bm4MBk=; h=Cc:Date:From:Reply-To:Subject:To; b=ncRpgiqyUqg/sJmQGp/ZDriInSfo4EoCQMynQBq9/auk77lCeH4FfG20MR40z/N5xdh LGW/Jx2Qq0S/76wCdJLUDb8+L7EtShfa9Y5Lr1lvzI8wXU18SPV5+h83PRINWsZwxEpJR P6RutosgaWK4NkNtndtsxtgEdOaXJAp/X60= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1646234601205100007 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3394 Invoke GetPhysicalAddressBits() defined in UefiCpuPkg for CPU physical addr= ess mask calculation and remove the duplicated code in MdeModulePkg. Cc: Jian J Wang Cc: Liming Gao Signed-off-by: Yu Pu --- MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.c = | 9 ++------- MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c = | 14 ++------------ MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c = | 14 ++------------ MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf = | 2 ++ MdeModulePkg/MdeModulePkg.dsc = | 1 + MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.in= f | 2 ++ MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf = | 2 ++ 7 files changed, 13 insertions(+), 31 deletions(-) diff --git a/MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.c b/MdeModulePk= g/Core/DxeIplPeim/X64/VirtualMemory.c index 0700f310b203..78e91e6e9024 100644 --- a/MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.c +++ b/MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.c @@ -22,6 +22,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ =20 +#include #include #include "DxeIpl.h" #include "VirtualMemory.h" @@ -733,13 +734,7 @@ CreateIdentityMappingPageTables ( if (Hob !=3D NULL) { PhysicalAddressBits =3D ((EFI_HOB_CPU *)Hob)->SizeOfMemorySpace; } else { - AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL); - if (RegEax >=3D 0x80000008) { - AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL); - PhysicalAddressBits =3D (UINT8)RegEax; - } else { - PhysicalAddressBits =3D 36; - } + PhysicalAddressBits =3D GetPhysicalAddressBits(NULL, NULL); } =20 Page5LevelSupport =3D FALSE; diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEn= try.c b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c index 6b44f50bac70..367bf8cdd1e6 100644 --- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c +++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c @@ -10,6 +10,7 @@ Copyright (c) 2017, AMD Incorporated. All rights reserved= .
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ +#include #include "ScriptExecute.h" =20 // @@ -51,20 +52,9 @@ HookPageFaultHandler ( IN IA32_IDT_GATE_DESCRIPTOR *IdtEntry ) { - UINT32 RegEax; - UINT8 PhysicalAddressBits; UINTN PageFaultHandlerHookAddress; =20 - AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL); - if (RegEax >=3D 0x80000008) { - AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL); - PhysicalAddressBits =3D (UINT8)RegEax; - } else { - PhysicalAddressBits =3D 36; - } - - mPhyMask =3D LShiftU64 (1, PhysicalAddressBits) - 1; - mPhyMask &=3D (1ull << 48) - SIZE_4KB; + GetPhysicalAddressBits(NULL, &mPhyMask); =20 // // Set Page Fault entry to catch >4G access diff --git a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c b/MdeModulePk= g/Universal/CapsulePei/X64/X64Entry.c index 05941f9f8d56..06d6129c5e6d 100644 --- a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c +++ b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c @@ -12,6 +12,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include #include #include +#include #include "CommonHeader.h" =20 #define EXCEPTION_VECTOR_NUMBER 0x22 @@ -61,20 +62,9 @@ HookPageFaultHandler ( IN OUT PAGE_FAULT_CONTEXT *PageFaultContext ) { - UINT32 RegEax; - UINT8 PhysicalAddressBits; UINTN PageFaultHandlerHookAddress; =20 - AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL); - if (RegEax >=3D 0x80000008) { - AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL); - PhysicalAddressBits =3D (UINT8)RegEax; - } else { - PhysicalAddressBits =3D 36; - } - - PageFaultContext->PhyMask =3D LShiftU64 (1, PhysicalAddressBits) - 1; - PageFaultContext->PhyMask &=3D (1ull << 48) - SIZE_4KB; + GetPhysicalAddressBits(NULL, &(PageFaultContext->PhyMask)); =20 // // Set Page Fault entry to catch >4G access diff --git a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf b/MdeModulePkg/Core/Dx= eIplPeim/DxeIpl.inf index 19b8a4c8aefa..45808bcdcd6c 100644 --- a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf +++ b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf @@ -55,6 +55,7 @@ =20 [Packages] MdePkg/MdePkg.dec + UefiCpuPkg/UefiCpuPkg.dec MdeModulePkg/MdeModulePkg.dec =20 [Packages.ARM, Packages.AARCH64] @@ -75,6 +76,7 @@ DebugAgentLib PeiServicesTablePointerLib PerformanceLib + UefiCpuLib =20 [LibraryClasses.ARM, LibraryClasses.AARCH64] ArmMmuLib diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc index b1d83461865e..da6213c02da0 100644 --- a/MdeModulePkg/MdeModulePkg.dsc +++ b/MdeModulePkg/MdeModulePkg.dsc @@ -62,6 +62,7 @@ DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableL= ib.inf UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManag= erLib.inf VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyL= ib.inf + UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf # # Generic Modules # diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptEx= ecutorDxe.inf b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScrip= tExecutorDxe.inf index fb149c2f0271..dd3dd2fc8c10 100644 --- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorD= xe.inf +++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorD= xe.inf @@ -41,6 +41,7 @@ =20 [Packages] MdePkg/MdePkg.dec + UefiCpuPkg/UefiCpuPkg.dec MdeModulePkg/MdeModulePkg.dec =20 [LibraryClasses] @@ -54,6 +55,7 @@ UefiBootServicesTableLib CacheMaintenanceLib UefiLib + UefiCpuLib DebugAgentLib LockBoxLib CpuExceptionHandlerLib diff --git a/MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf b/MdeModulePk= g/Universal/CapsulePei/CapsuleX64.inf index 35d2535a5b48..75813b1e5481 100644 --- a/MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf +++ b/MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf @@ -38,12 +38,14 @@ [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec + UefiCpuPkg/UefiCpuPkg.dec =20 [LibraryClasses] BaseLib DebugLib CpuExceptionHandlerLib DebugAgentLib + UefiCpuLib =20 [Depex] FALSE --=20 2.30.0.windows.2 -=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 (#87235): https://edk2.groups.io/g/devel/message/87235 Mute This Topic: https://groups.io/mt/89503325/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-