From b437b5ca4c1a6725897dfd0740de6ef20cacd226 Mon Sep 17 00:00:00 2001 From: Jiaxin Wu Date: Mon, 2 Sep 2024 15:22:00 +0800 Subject: [PATCH] UefiCpuPkg/PiSmmCpuDxeSmm: Remove RestrictedMemoryAccess check for MM CPU The PcdCpuSmmRestrictedMemoryAccess is declared as either a dynamic or fixed PCD. It is not recommended for use in the MM CPU driver. Furthermore, IsRestrictedMemoryAccess() is only needed for SMM. Therefor, there is no need for MM to consume the PcdCpuSmmRestrictedMemoryAccess. So, this patch is to add the SMM specific file for its own functions, with the change, the dependency of the MM CPU driver on PcdCpuSmmRestrictedMemoryAccess can be removed. Signed-off-by: Jiaxin Wu --- UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 14 ------------ .../PiSmmCpuDxeSmm/Ia32/SmmFuncsArchDxeSmm.c | 22 +++++++++++++++++++ UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | 2 ++ .../PiSmmCpuDxeSmm/PiSmmCpuStandaloneMm.inf | 3 --- UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 14 ------------ .../PiSmmCpuDxeSmm/X64/SmmFuncsArchDxeSmm.c | 22 +++++++++++++++++++ 6 files changed, 46 insertions(+), 31 deletions(-) create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmFuncsArchDxeSmm.c create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArchDxeSmm.c diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c index 1294485c60..e1ce36bf78 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c @@ -229,17 +229,3 @@ RestoreCr2 ( { return; } - -/** - Return whether access to non-SMRAM is restricted. - - @retval TRUE Access to non-SMRAM is restricted. - @retval FALSE Access to non-SMRAM is not restricted. -**/ -BOOLEAN -IsRestrictedMemoryAccess ( - VOID - ) -{ - return TRUE; -} diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmFuncsArchDxeSmm.c b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmFuncsArchDxeSmm.c new file mode 100644 index 0000000000..21f7992fd8 --- /dev/null +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmFuncsArchDxeSmm.c @@ -0,0 +1,22 @@ +/** @file + +Copyright (c) 2024, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "PiSmmCpuCommon.h" + +/** + Return whether access to non-SMRAM is restricted. + + @retval TRUE Access to non-SMRAM is restricted. + @retval FALSE Access to non-SMRAM is not restricted. +**/ +BOOLEAN +IsRestrictedMemoryAccess ( + VOID + ) +{ + return TRUE; +} diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf index d8eda7825f..8c4be7e588 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf @@ -56,6 +56,7 @@ Ia32/SmiEntry.nasm Ia32/SmiException.nasm Ia32/Cet.nasm + Ia32/SmmFuncsArchDxeSmm.c [Sources.X64] X64/PageTbl.c @@ -65,6 +66,7 @@ X64/SmiEntry.nasm X64/SmiException.nasm X64/Cet.nasm + X64/SmmFuncsArchDxeSmm.c [Packages] MdePkg/MdePkg.dec diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuStandaloneMm.inf b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuStandaloneMm.inf index 13b8ce17bd..d0ae5e709d 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuStandaloneMm.inf +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuStandaloneMm.inf @@ -131,6 +131,3 @@ [Depex] TRUE - -[Pcd.X64] - gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmRestrictedMemoryAccess ## CONSUMES diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c index 4043e26955..160e33b4ed 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c @@ -866,17 +866,3 @@ RestoreCr2 ( { AsmWriteCr2 (Cr2); } - -/** - Return whether access to non-SMRAM is restricted. - - @retval TRUE Access to non-SMRAM is restricted. - @retval FALSE Access to non-SMRAM is not restricted. -**/ -BOOLEAN -IsRestrictedMemoryAccess ( - VOID - ) -{ - return PcdGetBool (PcdCpuSmmRestrictedMemoryAccess); -} diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArchDxeSmm.c b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArchDxeSmm.c new file mode 100644 index 0000000000..e812a43312 --- /dev/null +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArchDxeSmm.c @@ -0,0 +1,22 @@ +/** @file + +Copyright (c) 2024, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "PiSmmCpuCommon.h" + +/** + Return whether access to non-SMRAM is restricted. + + @retval TRUE Access to non-SMRAM is restricted. + @retval FALSE Access to non-SMRAM is not restricted. +**/ +BOOLEAN +IsRestrictedMemoryAccess ( + VOID + ) +{ + return PcdGetBool (PcdCpuSmmRestrictedMemoryAccess); +}