From nobody Sat Sep 21 00:54:58 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+67211+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+67211+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1604975081; cv=none; d=zohomail.com; s=zohoarc; b=AYa5sZ/nFFEkPDLsBC8KwOw4kFriJ62Il67TCwPivpigk1cvLqyIGS5oUjci/RNHG2RZL49OfBcGUWiZ8M/LU9bzM4GqTUJk+e6HZc6gb3II/CrObivNmkmGy1uGuNQ3wG5OHPFG9xTTxg4zizm7HQu9bLz8Tdzylj42ZsUNL0I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604975081; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=AWFMys/ZAq4i0ohN/uDSL72XScTn4v573KxGUMPOps0=; b=kmDiSRgQHX1luuerTI3DLVuypAUL12tOruMlreVz2+3yweGuoss1NDSyRveEsGvxHh9FoP+NhSvZ8x4c+vrchA1iPtIvS+VxoImEJrf5a05BJTnLkqbuy/8pLAX8DEmZmGIijRrjZOAwsNigoAL9ruQUi6mcecXWPzBG/NGMRPE= 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+67211+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 1604975081245389.7804826680193; Mon, 9 Nov 2020 18:24:41 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id VQKhYY1788612xVJSyLpPPF6; Mon, 09 Nov 2020 18:24:40 -0800 X-Received: from mga17.intel.com (mga17.intel.com []) by mx.groups.io with SMTP id smtpd.web08.22208.1604975079377218235 for ; Mon, 09 Nov 2020 18:24:39 -0800 IronPort-SDR: bjM4KpcJSUWmtiPDD4i6AEAMM1ns77WnKOYy3XczEHAKlz/lEng6+GSfx21xPaDbYX5uKVQP3/ 2EPMY3xHOMnQ== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="149755501" X-IronPort-AV: E=Sophos;i="5.77,465,1596524400"; d="scan'208";a="149755501" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 18:24:38 -0800 IronPort-SDR: 7gi5HnCLCQoBADmuHTdGlXqoH1JT+sIxhh0HEcW9WHMDutxnzgfGLWREqpsrfLamqVhtIvpjvn cfPNaJimJ8Bw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,465,1596524400"; d="scan'208";a="541136711" X-Received: from shwdesssddpdwei.ccr.corp.intel.com ([10.239.157.46]) by orsmga005.jf.intel.com with ESMTP; 09 Nov 2020 18:24:36 -0800 From: "Sheng Wei" To: devel@edk2.groups.io Cc: Eric Dong , Ray Ni , Laszlo Ersek , Rahul Kumar , Jiewen Yao Subject: [edk2-devel] [PATCH v6 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Correct the Cr3 typo Date: Tue, 10 Nov 2020 10:24:29 +0800 Message-Id: <20201110022430.19560-2-w.sheng@intel.com> In-Reply-To: <20201110022430.19560-1-w.sheng@intel.com> References: <20201110022430.19560-1-w.sheng@intel.com> Precedence: Bulk List-Unsubscribe: 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,w.sheng@intel.com X-Gm-Message-State: qiEKEVArqPOu5RogOK0bygDMx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1604975080; bh=ZhyLPj7+oMv2f4zRF0IvJDu80r6j1NxXgjjbZWEYvmI=; h=Cc:Date:From:Reply-To:Subject:To; b=ohPUifuPQtnPjW67k01hfefYWYa9wetW5iH/0r/s94Wp9xMe9VkRidUMX2epUzGEOh2 78hlxQPd5anycSlMsqaUKMto0F2d0sWRK3QkASDIxnJKRrjTVAIXogC1VbrCUwn3ftegp BbSiti05VGp9vsqVrbaPO6pnXP9JMHRx3J0= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Change the variable name from mInternalGr3 to mInternalCr3. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3015 Signed-off-by: Sheng Wei Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Cc: Jiewen Yao --- UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c b/UefiCpuPk= g/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c index ebfc46ad45..d67f036aea 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c @@ -32,7 +32,7 @@ PAGE_ATTRIBUTE_TABLE mPageAttributeTable[] =3D { {Page1G, SIZE_1GB, PAGING_1G_ADDRESS_MASK_64}, }; =20 -UINTN mInternalGr3; +UINTN mInternalCr3; =20 /** Set the internal page table base address. @@ -46,7 +46,7 @@ SetPageTableBase ( IN UINTN Cr3 ) { - mInternalGr3 =3D Cr3; + mInternalCr3 =3D Cr3; } =20 /** @@ -59,8 +59,8 @@ GetPageTableBase ( VOID ) { - if (mInternalGr3 !=3D 0) { - return mInternalGr3; + if (mInternalCr3 !=3D 0) { + return mInternalCr3; } return (AsmReadCr3 () & PAGING_4K_ADDRESS_MASK_64); } @@ -252,7 +252,7 @@ ConvertPageEntryAttribute ( if ((Attributes & EFI_MEMORY_RO) !=3D 0) { if (IsSet) { NewPageEntry &=3D ~(UINT64)IA32_PG_RW; - if (mInternalGr3 !=3D 0) { + if (mInternalCr3 !=3D 0) { // Environment setup // ReadOnly page need set Dirty bit for shadow stack NewPageEntry |=3D IA32_PG_D; --=20 2.16.2.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 (#67211): https://edk2.groups.io/g/devel/message/67211 Mute This Topic: https://groups.io/mt/78152031/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 Sep 21 00:54:58 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+67212+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+67212+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1604975081; cv=none; d=zohomail.com; s=zohoarc; b=HD5/mVII2bIr6e8B78WWZGNcb9ojTgTvq9yK/X4sRzr9830ppeuXI8ROrcdzVHoC6izvaquqmeyMCzfMEmZoV/7HWrYruaEhigh8gFkH0peCO6ZU0+zeV6NrjYvERmKSVQX3FfUe2tzlQX5Ca87460pJzRoNgaFUHJcr0EKQcxw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604975081; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=r+eDZUc5hmU4OGdq7h7tapE9d/JAVl89tMe8a6gXpNM=; b=AcpOKkP5k+b8LdkhrrSWcwqAbRQZth9HksGdRWKarP9TCqdmd4HTn6iL8USU9qglVTKzgH6w/pI5jTOXgf6a2HK6WaRo7O9yqmpPUIjuB+o25K/1Zca557F4EnhiXpPhUeUsO6Yb5VIpikFlTeYgbRI8Yd7Dt3YD+GV9Jn3tmRM= 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+67212+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 16049750813151009.2660921522721; Mon, 9 Nov 2020 18:24:41 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id yyiOYY1788612xHNli6thYGM; Mon, 09 Nov 2020 18:24:40 -0800 X-Received: from mga17.intel.com (mga17.intel.com []) by mx.groups.io with SMTP id smtpd.web08.22208.1604975079377218235 for ; Mon, 09 Nov 2020 18:24:40 -0800 IronPort-SDR: y8+VywncJjO1ZqmZkXTYBI8wyQ3KElM5XbNmcgMRebtEnqzeuAw2T2Ix7mTfy81MhBxejZy8nX h1LbeZ92czjQ== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="149755505" X-IronPort-AV: E=Sophos;i="5.77,465,1596524400"; d="scan'208";a="149755505" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 18:24:40 -0800 IronPort-SDR: g2H6Gl1RwQt04F1R91w6PplrwHwmeKnjpsDzkcABwr9PlCilWSTe7oKilLEjrS96FgjmdtbrXk pFW+Pn/ZYnWQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,465,1596524400"; d="scan'208";a="541136716" X-Received: from shwdesssddpdwei.ccr.corp.intel.com ([10.239.157.46]) by orsmga005.jf.intel.com with ESMTP; 09 Nov 2020 18:24:38 -0800 From: "Sheng Wei" To: devel@edk2.groups.io Cc: Eric Dong , Ray Ni , Laszlo Ersek , Rahul Kumar , Jiewen Yao Subject: [edk2-devel] [PATCH v6 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Reflect page table depth with page table address Date: Tue, 10 Nov 2020 10:24:30 +0800 Message-Id: <20201110022430.19560-3-w.sheng@intel.com> In-Reply-To: <20201110022430.19560-1-w.sheng@intel.com> References: <20201110022430.19560-1-w.sheng@intel.com> Precedence: Bulk List-Unsubscribe: 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,w.sheng@intel.com X-Gm-Message-State: IoHRl7XJbxvF9odlugptkIUsx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1604975080; bh=BrFmfQ+l4aXMxolcPvtzKupqMN+ZetMHPzRJ7/bv7Ng=; h=Cc:Date:From:Reply-To:Subject:To; b=p31Pao7TnpkqZyyYeRk79Wwf2+cpCJanydumRooL5tKb1cJDfPp2XbqEk/N2psLAlKi 4UYI3BNJjljn0PhYSGhUsCZ6Hw8H9dJkTmPcRGJEq8nrYhwQRzZim7J1j9ZprXgAnf3dN blW64BX8I7zzb8N2sNHT8eB3V8ldYbOWA2A= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" When trying to get page table base, if mInternalCr3 is zero, it will use the page table from CR3, and reflect the page table depth by CR4 LA57 bit. If mInternalCr3 is non zero, it will use the page table from mInternalCr3 and reflect the page table depth of mInternalCr3 at same time. In the case of X64, we use m5LevelPagingNeeded to reflect the depth of the page table. And in the case of IA32, it will not the page table depth information. This patch is a bug fix when enable CET feature with 5 level paging. The SMM page tables are allocated / initialized in PiCpuSmmEntry(). When CET is enabled, PiCpuSmmEntry() must further modify the attribute of shadow stack pages. This page table is not set to CR3 in PiCpuSmmEntry(). So the page table base address is set to mInternalCr3 for modifty the page table attribute. It could not use CR4 LA57 bit to reflect the page table depth for mInternalCr3. So we create a architecture-specific implementation GetPageTable() with 2 output parameters. One parameter is used to output the page table address. Another parameter is used to reflect if it is 5 level paging or not. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3015 Signed-off-by: Sheng Wei Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Cc: Jiewen Yao --- UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 24 ++++++++++++- UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | 12 ++++--- UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c | 27 +++------------ UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 40 ++++++++++++++++++= +--- 4 files changed, 70 insertions(+), 33 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c b/UefiCpuPkg/PiSmmCpu= DxeSmm/Ia32/PageTbl.c index 2483f2ea84..f5d64392bd 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c @@ -10,6 +10,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent =20 #include "PiSmmCpuDxeSmm.h" =20 +extern UINTN mInternalCr3; + /** Disable CET. **/ @@ -28,6 +30,26 @@ EnableCet ( VOID ); =20 +/** + Get page table base address and the depth of the page table. + + @param[out] Base Page table base address. + @param[out] FiveLevels TRUE means 5 level paging. FALSE means 4 level p= aging. +**/ +VOID +GetPageTable ( + OUT UINTN *Base, + OUT BOOLEAN *FiveLevels OPTIONAL + ) +{ + *Base =3D ((mInternalCr3 =3D=3D 0) ? + (AsmReadCr3 () & PAGING_4K_ADDRESS_MASK_64) : + mInternalCr3); + if (FiveLevels !=3D NULL) { + *FiveLevels =3D FALSE; + } +} + /** Create PageTable for SMM use. =20 @@ -268,7 +290,7 @@ SetPageTableAttributes ( DEBUG ((DEBUG_INFO, "Start...\n")); PageTableSplitted =3D FALSE; =20 - L3PageTable =3D (UINT64 *)GetPageTableBase (); + GetPageTable ((UINTN *)&L3PageTable, NULL); =20 SmmSetMemoryAttributesEx ((EFI_PHYSICAL_ADDRESS)(UINTN)L3PageTable, SI= ZE_4KB, EFI_MEMORY_RO, &IsSplitted); PageTableSplitted =3D (PageTableSplitted || IsSplitted); diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h b/UefiCpuPkg/PiSmmC= puDxeSmm/PiSmmCpuDxeSmm.h index 7fb3a2d9e4..59bc764140 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h @@ -942,13 +942,15 @@ SetPageTableAttributes ( ); =20 /** - Return page table base. + Get page table base address and the depth of the page table. =20 - @return page table base. + @param[out] Base Page table base address. + @param[out] FiveLevels TRUE means 5 level paging. FALSE means 4 level p= aging. **/ -UINTN -GetPageTableBase ( - VOID +VOID +GetPageTable ( + OUT UINTN *Base, + OUT BOOLEAN *FiveLevels OPTIONAL ); =20 /** diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c b/UefiCpuPk= g/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c index d67f036aea..fe71b77295 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c @@ -49,22 +49,6 @@ SetPageTableBase ( mInternalCr3 =3D Cr3; } =20 -/** - Return page table base. - - @return page table base. -**/ -UINTN -GetPageTableBase ( - VOID - ) -{ - if (mInternalCr3 !=3D 0) { - return mInternalCr3; - } - return (AsmReadCr3 () & PAGING_4K_ADDRESS_MASK_64); -} - /** Return length according to page attributes. =20 @@ -131,8 +115,8 @@ GetPageTableEntry ( UINT64 *L3PageTable; UINT64 *L4PageTable; UINT64 *L5PageTable; - IA32_CR4 Cr4; BOOLEAN Enable5LevelPaging; + UINT64 *PageTableBase =3D NULL; =20 Index5 =3D ((UINTN)RShiftU64 (Address, 48)) & PAGING_PAE_INDEX_MASK; Index4 =3D ((UINTN)RShiftU64 (Address, 39)) & PAGING_PAE_INDEX_MASK; @@ -140,12 +124,11 @@ GetPageTableEntry ( Index2 =3D ((UINTN)Address >> 21) & PAGING_PAE_INDEX_MASK; Index1 =3D ((UINTN)Address >> 12) & PAGING_PAE_INDEX_MASK; =20 - Cr4.UintN =3D AsmReadCr4 (); - Enable5LevelPaging =3D (BOOLEAN) (Cr4.Bits.LA57 =3D=3D 1); + GetPageTable ((UINTN *)&PageTableBase, &Enable5LevelPaging); =20 if (sizeof(UINTN) =3D=3D sizeof(UINT64)) { if (Enable5LevelPaging) { - L5PageTable =3D (UINT64 *)GetPageTableBase (); + L5PageTable =3D PageTableBase; if (L5PageTable[Index5] =3D=3D 0) { *PageAttribute =3D PageNone; return NULL; @@ -153,7 +136,7 @@ GetPageTableEntry ( =20 L4PageTable =3D (UINT64 *)(UINTN)(L5PageTable[Index5] & ~mAddressEnc= Mask & PAGING_4K_ADDRESS_MASK_64); } else { - L4PageTable =3D (UINT64 *)GetPageTableBase (); + L4PageTable =3D PageTableBase; } if (L4PageTable[Index4] =3D=3D 0) { *PageAttribute =3D PageNone; @@ -162,7 +145,7 @@ GetPageTableEntry ( =20 L3PageTable =3D (UINT64 *)(UINTN)(L4PageTable[Index4] & ~mAddressEncMa= sk & PAGING_4K_ADDRESS_MASK_64); } else { - L3PageTable =3D (UINT64 *)GetPageTableBase (); + L3PageTable =3D PageTableBase; } if (L3PageTable[Index3] =3D=3D 0) { *PageAttribute =3D PageNone; diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c b/UefiCpuPkg/PiSmmCpuD= xeSmm/X64/PageTbl.c index 810985df20..51469d3b88 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c @@ -19,6 +19,8 @@ BOOLEAN mCpuSmmRestrictedMemo= ryAccess; BOOLEAN m5LevelPagingNeeded; X86_ASSEMBLY_PATCH_LABEL gPatch5LevelPagingNeeded; =20 +extern UINTN mInternalCr3; + /** Disable CET. **/ @@ -104,6 +106,35 @@ Is5LevelPagingNeeded ( } } =20 +/** + Get page table base address and the depth of the page table. + + @param[out] Base Page table base address. + @param[out] FiveLevels TRUE means 5 level paging. FALSE means 4 level p= aging. +**/ +VOID +GetPageTable ( + OUT UINTN *Base, + OUT BOOLEAN *FiveLevels OPTIONAL + ) +{ + IA32_CR4 Cr4; + + if (mInternalCr3 =3D=3D 0) { + *Base =3D AsmReadCr3 () & PAGING_4K_ADDRESS_MASK_64; + if (FiveLevels !=3D NULL) { + Cr4.UintN =3D AsmReadCr4 (); + *FiveLevels =3D (BOOLEAN)(Cr4.Bits.LA57 =3D=3D 1); + } + return; + } + + *Base =3D mInternalCr3; + if (FiveLevels !=3D NULL) { + *FiveLevels =3D m5LevelPagingNeeded; + } +} + /** Set sub-entries number in entry. =20 @@ -1114,11 +1145,10 @@ SetPageTableAttributes ( BOOLEAN IsSplitted; BOOLEAN PageTableSplitted; BOOLEAN CetEnabled; - IA32_CR4 Cr4; BOOLEAN Enable5LevelPaging; + UINT64 *PageTableBase =3D NULL; =20 - Cr4.UintN =3D AsmReadCr4 (); - Enable5LevelPaging =3D (BOOLEAN) (Cr4.Bits.LA57 =3D=3D 1); + GetPageTable ((UINTN *)&PageTableBase, &Enable5LevelPaging); =20 // // Don't mark page table memory as read-only if @@ -1164,7 +1194,7 @@ SetPageTableAttributes ( PageTableSplitted =3D FALSE; L5PageTable =3D NULL; if (Enable5LevelPaging) { - L5PageTable =3D (UINT64 *)GetPageTableBase (); + L5PageTable =3D PageTableBase; SmmSetMemoryAttributesEx ((EFI_PHYSICAL_ADDRESS)(UINTN)L5PageTable, = SIZE_4KB, EFI_MEMORY_RO, &IsSplitted); PageTableSplitted =3D (PageTableSplitted || IsSplitted); } @@ -1176,7 +1206,7 @@ SetPageTableAttributes ( continue; } } else { - L4PageTable =3D (UINT64 *)GetPageTableBase (); + L4PageTable =3D PageTableBase; } SmmSetMemoryAttributesEx ((EFI_PHYSICAL_ADDRESS)(UINTN)L4PageTable, = SIZE_4KB, EFI_MEMORY_RO, &IsSplitted); PageTableSplitted =3D (PageTableSplitted || IsSplitted); --=20 2.16.2.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 (#67212): https://edk2.groups.io/g/devel/message/67212 Mute This Topic: https://groups.io/mt/78152032/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-