From nobody Sun May 19 05:22:47 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+75056+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+75056+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1620795214; cv=none; d=zohomail.com; s=zohoarc; b=L0ZhDK4pvqomFds14Usm7qhMfzotr/BjdIkhLKQ37mR1XmUc52eb5uRfHKJTt+c8Gu+znFnURUO4viRcFafDb0VGqt6rPXeOzuOYeBstbPy/efnYxhCNTYTagLd7qmNxiGVI8TPOLZATbNyQyGdDygi1jnanMnnfGjhfgxJ2OWU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620795214; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=xgD4yAA9BDmvpeL4ERCroceHAPu07O5SbHKiaj9igOE=; b=fGS7NYgKL53TzQc0soXpZ7199BUji65oaCfH7Gvq1W0+0OOujKQHpLYEfMS8znIIxvOoRas2WANdyzsjZigGZD+KtWIypP3/o+CIOwzlP4wZ9VcURXeiSFAnw0Ghy/2z5myJfgGt3GWhMVYlC+BWQFcuEEUQADelP+QFip6BA7Y= 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+75056+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1620795214823875.2791404377774; Tue, 11 May 2021 21:53:34 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id IfChYY1788612xktoQisdkfO; Tue, 11 May 2021 21:53:34 -0700 X-Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web09.2702.1620795212027889012 for ; Tue, 11 May 2021 21:53:32 -0700 IronPort-SDR: 4vAKuts4pM+MyWrdYIKt7JjVei51zBTVa6Srue8AjkqIN9OgvftY9ha1jGxpn5WwlvhV0sz8wC 9qxNu7mk9NLA== X-IronPort-AV: E=McAfee;i="6200,9189,9981"; a="199666940" X-IronPort-AV: E=Sophos;i="5.82,293,1613462400"; d="scan'208";a="199666940" X-Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2021 21:53:30 -0700 IronPort-SDR: oPXRaS3E1zBSgVXRESng9NOeu3CUYAlrc3V6oJuZGCd+63HlHWvikX7A7jsnHTB93/m6EAGBxA JKe3LDxOMnLw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,293,1613462400"; d="scan'208";a="469237118" X-Received: from ray-dev.ccr.corp.intel.com ([10.239.158.87]) by fmsmga002.fm.intel.com with ESMTP; 11 May 2021 21:53:29 -0700 From: "Ni, Ray" To: devel@edk2.groups.io Cc: Eric Dong , Laszlo Ersek , Rahul Kumar Subject: [edk2-devel] [PATCH] UefiCpuPkg/PiSmmCpu: Remove hardcode 48 address size limitation Date: Wed, 12 May 2021 12:53:10 +0800 Message-Id: <20210512045310.302-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: 1QLGFOZ5mLKNy83xn5WRkVJ0x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1620795214; bh=kFHKNAPWgIWGhnvsJi4+dJlKzNijB4Je2IVZCOHtnRo=; h=Cc:Date:From:Reply-To:Subject:To; b=Mbn3MdH+iycWA0yhBz2RJqscJHAkEEn8xvZNfFlZSBuBAZ2ksujVazLACIcwxEC5Ooq /RI5t8DGtzkHkiurwRQkEP/Ck4rJt2Zg9+WkmeuJA4esuSiCtxnnYE/OrwnRqQfzSSD41 MG174DO+8tcP6CCgVyqVcmwutRlowswLMUo= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" 5-level paging can be enabled on CPU which supports up to 52 physical address size. But when the feature was enabled, the 48 address size limit was not removed and the 5-level paging testing didn't access address >=3D 2^48. So the issue wasn't detected until recently an address >=3D 2^48 is accessed. Change-Id: Iaedc73be318d4b4122071efc3ba6e967a4b58fc3 Signed-off-by: Ray Ni Cc: Eric Dong Cc: Laszlo Ersek Cc: Rahul Kumar Reviewed-by: Eric Dong --- UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxe= Smm/MpService.c index fd6583f9d1..89143810b6 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c @@ -1887,11 +1887,13 @@ InitializeMpServiceData ( IN UINTN ShadowStackSize ) { - UINT32 Cr3; - UINTN Index; - UINT8 *GdtTssTables; - UINTN GdtTableStepSize; - CPUID_VERSION_INFO_EDX RegEdx; + UINT32 Cr3; + UINTN Index; + UINT8 *GdtTssTables; + UINTN GdtTableStepSize; + CPUID_VERSION_INFO_EDX RegEdx; + UINT32 MaxExtendedFunction; + CPUID_VIR_PHY_ADDRESS_SIZE_EAX VirPhyAddressSize; =20 // // Determine if this CPU supports machine check @@ -1918,9 +1920,17 @@ InitializeMpServiceData ( // Initialize physical address mask // NOTE: Physical memory above virtual address limit is not supported !!! // - AsmCpuid (0x80000008, (UINT32*)&Index, NULL, NULL, NULL); - gPhyMask =3D LShiftU64 (1, (UINT8)Index) - 1; - gPhyMask &=3D (1ull << 48) - EFI_PAGE_SIZE; + AsmCpuid (CPUID_EXTENDED_FUNCTION, &MaxExtendedFunction, NULL, NULL, NUL= L); + if (MaxExtendedFunction >=3D CPUID_VIR_PHY_ADDRESS_SIZE) { + AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, &VirPhyAddressSize.Uint32, NULL,= NULL, NULL); + } else { + VirPhyAddressSize.Bits.PhysicalAddressBits =3D 36; + } + gPhyMask =3D LShiftU64 (1, VirPhyAddressSize.Bits.PhysicalAddressBits) = - 1; + // + // Clear the low 12 bits + // + gPhyMask &=3D 0xfffffffffffff000ULL; =20 // // Create page tables --=20 2.31.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 (#75056): https://edk2.groups.io/g/devel/message/75056 Mute This Topic: https://groups.io/mt/82765279/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-