From nobody Fri Oct 18 05:24:35 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+101520+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+101520+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1679443025; cv=none; d=zohomail.com; s=zohoarc; b=F4rVCoOoCUriFMVnscju2TJ8u8fKgo25CORFnIFNlbe36Q6ck/YCw0SiqYp2ALfedN3ZB5c9TSX67I/gU5q0v6kSWv2/XBasMJqdEHe4m0Xjy3EBEadJGo9ELWlVfK/E8ggO120QcVzeaShbeXi7OenuCcg546ayjNiTfrsofMc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679443025; 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=nUKJ3fiPzaQIkhu90Vt4jzuJ0NBSW7PobeYL2d+MQbs=; b=B6ooIV6kgubkvLaMys2BcZJp6Hx0LyHxJc9k8yvKE/71Sf9xN+khtjI+eN3XMhULxWfifgZrzRLztIJkHMc8g6x6p9WCz65ZoKbrWx7L7hrjx7pogJ8hfs8eh8uIHzDBpzEXavsr31bBf7qUmRjsY5WxipdugCUTmda9mN2EQH8= 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+101520+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 1679443025756299.79690945954917; Tue, 21 Mar 2023 16:57:05 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id Mea3YY1788612xwgB7bXdE9p; Tue, 21 Mar 2023 16:57:05 -0700 X-Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.30789.1679443023007772831 for ; Tue, 21 Mar 2023 16:57:03 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10656"; a="341441514" X-IronPort-AV: E=Sophos;i="5.98,280,1673942400"; d="scan'208";a="341441514" X-Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Mar 2023 16:57:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10656"; a="805627742" X-IronPort-AV: E=Sophos;i="5.98,280,1673942400"; d="scan'208";a="805627742" X-Received: from shwdeopenlab706.ccr.corp.intel.com ([10.239.55.95]) by orsmga004.jf.intel.com with ESMTP; 21 Mar 2023 16:56:58 -0700 From: "Ni, Ray" To: devel@edk2.groups.io Cc: Eric Dong , Rahul Kumar , Gerd Hoffmann , Michael D Kinney , Ahmad Anadani Subject: [edk2-devel] [PATCH 3/6] UefiCpuPkg/MtrrLib: Substract TME-MK KEY_ID_BITS from CPU max PA Date: Wed, 22 Mar 2023 07:56:47 +0800 Message-Id: <20230321235650.675-4-ray.ni@intel.com> In-Reply-To: <20230321235650.675-1-ray.ni@intel.com> References: <20230321235650.675-1-ray.ni@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,ray.ni@intel.com X-Gm-Message-State: SPbNepFQE59QeqgPC1z2biLux1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1679443025; bh=gHz14572Qd6Ujm4TK5Cd36buA+ETyUaZya5ykJ0FTSo=; h=Cc:Date:From:Reply-To:Subject:To; b=MB0A7dD6A8YrZ5gMjAH/xX7mIyFz6mz8zz9UlAdYAonNijDrGu8+h10AA++O+k9pLBt O4S+AsWK5h1C5UMKU3eCb7tZbjEGC+l60kmVMxSVzxs/mKYm+nXf89AaRMgsFVUy51yec ZSbSP0qFea3W0JRfUXxpXCXLS0PnxZNB7Ow= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1679443026867100007 Content-Type: text/plain; charset="utf-8" CPUID enumeration of MAX_PA is unaffected by TME-MK activation and will continue to report the maximum physical address bits available for software to use, irrespective of the number of KeyID bits. So, we need to check if TME is enabled and adjust the PA size accordingly. Signed-off-by: Ray Ni Cc: Eric Dong Cc: Rahul Kumar Cc: Gerd Hoffmann Cc: Michael D Kinney Cc: Ahmad Anadani Reviewed-by: Michael D Kinney --- UefiCpuPkg/Library/MtrrLib/MtrrLib.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c b/UefiCpuPkg/Library/Mtrr= Lib/MtrrLib.c index e5c862c83d..a66357e305 100644 --- a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c +++ b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c @@ -756,8 +756,11 @@ MtrrLibInitializeMtrrMask ( OUT UINT64 *MtrrValidAddressMask ) { - UINT32 MaxExtendedFunction; - CPUID_VIR_PHY_ADDRESS_SIZE_EAX VirPhyAddressSize; + UINT32 MaxExtendedFunction; + CPUID_VIR_PHY_ADDRESS_SIZE_EAX VirPhyAddressSize; + UINT32 MaxFunction; + CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS_ECX ExtendedFeatureFlagsEcx; + MSR_IA32_TME_ACTIVATE_REGISTER TmeActivate; =20 AsmCpuid (CPUID_EXTENDED_FUNCTION, &MaxExtendedFunction, NULL, NULL, NUL= L); =20 @@ -767,6 +770,23 @@ MtrrLibInitializeMtrrMask ( VirPhyAddressSize.Bits.PhysicalAddressBits =3D 36; } =20 + // + // CPUID enumeration of MAX_PA is unaffected by TME-MK activation and wi= ll continue + // to report the maximum physical address bits available for software to= use, + // irrespective of the number of KeyID bits. + // So, we need to check if TME is enabled and adjust the PA size accordi= ngly. + // + AsmCpuid (CPUID_SIGNATURE, &MaxFunction, NULL, NULL, NULL); + if (MaxFunction >=3D CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS) { + AsmCpuidEx (CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS, 0, NULL, NULL, &E= xtendedFeatureFlagsEcx.Uint32, NULL); + if (ExtendedFeatureFlagsEcx.Bits.TME_EN =3D=3D 1) { + TmeActivate.Uint64 =3D AsmReadMsr64 (MSR_IA32_TME_ACTIVATE); + if (TmeActivate.Bits.TmeEnable =3D=3D 1) { + VirPhyAddressSize.Bits.PhysicalAddressBits -=3D TmeActivate.Bits.M= kTmeKeyidBits; + } + } + } + *MtrrValidBitsMask =3D LShiftU64 (1, VirPhyAddressSize.Bits.PhysicalA= ddressBits) - 1; *MtrrValidAddressMask =3D *MtrrValidBitsMask & 0xfffffffffffff000ULL; } --=20 2.39.1.windows.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 (#101520): https://edk2.groups.io/g/devel/message/101520 Mute This Topic: https://groups.io/mt/97767967/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076= /xyzzy [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-