From: "gaoliming" <gaoliming@byosoft.com.cn>
To: <devel@edk2.groups.io>, <kun.q@outlook.com>,
<jiewen.yao@intel.com>, "'Wu, Hao A'" <hao.a.wu@intel.com>,
"'Kinney, Michael D'" <michael.d.kinney@intel.com>,
"'Liu, Zhiguang'" <zhiguang.liu@intel.com>
Cc: "'Wang, Jian J'" <jian.j.wang@intel.com>,
"'Dong, Eric'" <eric.dong@intel.com>,
"'Ni, Ray'" <ray.ni@intel.com>
Subject: 回复: [edk2-devel] [PATCH v2 1/6] MdeModulePkg: DxeMmUnblockMemoryLib: Added definition and null instance
Date: Thu, 25 Feb 2021 22:03:55 +0800 [thread overview]
Message-ID: <005901d70b7f$0e320430$2a960c90$@byosoft.com.cn> (raw)
In-Reply-To: <MWHPR06MB3102B6C622CDC2283D5AB91DF39F9@MWHPR06MB3102.namprd06.prod.outlook.com>
[-- Attachment #1: Type: text/plain, Size: 15060 bytes --]
Kun:
I agree to add new library class MmUnblockMemoryLib and its NULL
implementation into MdePkg. I want to confirm where is the real
implementation for MmUnblockMemoryLib.
Thanks
Liming
发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Kun Qin
发送时间: 2021年2月24日 9:49
收件人: devel@edk2.groups.io; jiewen.yao@intel.com; Wu, Hao A
<hao.a.wu@intel.com>; gaoliming <gaoliming@byosoft.com.cn>; Kinney, Michael
D <michael.d.kinney@intel.com>; Liu, Zhiguang <zhiguang.liu@intel.com>
抄送: Wang, Jian J <jian.j.wang@intel.com>; Dong, Eric
<eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Yao, Jiewen
<jiewen.yao@intel.com>
主题: Re: [edk2-devel] [PATCH v2 1/6] MdeModulePkg: DxeMmUnblockMemoryLib:
Added definition and null instance
Hi Jiewen,
I agree with your assessment that it could have a PEI and potentially MM
instance. Will remove the prefix and change them to `MmUnblockMemoryLib` in
v3 patches. Thanks for the input.
Regards,
Kun
From: Yao, Jiewen <mailto:jiewen.yao@intel.com>
Sent: Tuesday, February 23, 2021 17:33
To: Wu, Hao A <mailto:hao.a.wu@intel.com> ; Kun Qin
<mailto:kun.q@outlook.com> ; devel@edk2.groups.io <mailto:devel@edk2.groups.
io> ; gaoliming <mailto:gaoliming@byosoft.com.cn> ; Kinney, Michael D
<mailto:michael.d.kinney@intel.com> ; Liu, Zhiguang
<mailto:zhiguang.liu@intel.com>
Cc: Wang, Jian J <mailto:jian.j.wang@intel.com> ; Dong, Eric
<mailto:eric.dong@intel.com> ; Ni, Ray <mailto:ray.ni@intel.com> ; Yao,
Jiewen <mailto:jiewen.yao@intel.com>
Subject: Re: [edk2-devel] [PATCH v2 1/6] MdeModulePkg:
DxeMmUnblockMemoryLib: Added definition and null instance
I feel the name is confusing.
The class name is DxeMmUnblockMemoryLib. But actually, this is not related
to DXE phase.
I believe, it is also applicable to PEI phase, if we have a PEI instance.
Please correct me if I am wrong.
Also, we can have SMM instance, right?
If that is true, then I prefer to remove Dxe prefix.
From: Wu, Hao A <hao.a.wu@intel.com <mailto:hao.a.wu@intel.com> >
Sent: Wednesday, February 24, 2021 9:27 AM
To: Kun Qin <kun.q@outlook.com <mailto:kun.q@outlook.com> >;
devel@edk2.groups.io <mailto:devel@edk2.groups.io> ; Yao, Jiewen
<jiewen.yao@intel.com <mailto:jiewen.yao@intel.com> >; gaoliming
<gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn> >; Kinney,
Michael D <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com> >;
Liu, Zhiguang <zhiguang.liu@intel.com <mailto:zhiguang.liu@intel.com> >
Cc: Wang, Jian J <jian.j.wang@intel.com <mailto:jian.j.wang@intel.com> >;
Dong, Eric <eric.dong@intel.com <mailto:eric.dong@intel.com> >; Ni, Ray
<ray.ni@intel.com <mailto:ray.ni@intel.com> >
Subject: RE: [edk2-devel] [PATCH v2 1/6] MdeModulePkg:
DxeMmUnblockMemoryLib: Added definition and null instance
Thanks Kun,
For putting the new library in MdePkg, I am not sure whether this is a
similar case to SmmMemLib.
I looped Jiewen, Liming and Mike to check if they have comments on this.
Best Regards,
Hao Wu
From: Kun Qin <kun.q@outlook.com <mailto:kun.q@outlook.com> >
Sent: Wednesday, February 24, 2021 3:30 AM
To: devel@edk2.groups.io <mailto:devel@edk2.groups.io> ; Wu, Hao A
<hao.a.wu@intel.com <mailto:hao.a.wu@intel.com> >; Yao, Jiewen
<jiewen.yao@intel.com <mailto:jiewen.yao@intel.com> >; gaoliming
<gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn> >; Kinney,
Michael D <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com> >;
Liu, Zhiguang <zhiguang.liu@intel.com <mailto:zhiguang.liu@intel.com> >
Cc: Wang, Jian J <jian.j.wang@intel.com <mailto:jian.j.wang@intel.com> >;
Dong, Eric <eric.dong@intel.com <mailto:eric.dong@intel.com> >; Ni, Ray
<ray.ni@intel.com <mailto:ray.ni@intel.com> >
Subject: RE: [edk2-devel] [PATCH v2 1/6] MdeModulePkg:
DxeMmUnblockMemoryLib: Added definition and null instance
Hi Hao,
Thanks for the suggestion. I can move the library to MdePkg similar to
SmmMemLib and add the change for OVMF.
Liming/Zhiguang,
I am happy to prepare patches to cover the dependency change in ed2-platform
in a separate patch series. But please let me know if you would like to
proceed otherwise.
Thanks,
Kun
From: Wu, Hao A <mailto:hao.a.wu@intel.com>
Sent: Monday, February 22, 2021 17:42
To: Kun Qin <mailto:kun.q@outlook.com> ; devel@edk2.groups.io
<mailto:devel@edk2.groups.io> ; Yao, Jiewen <mailto:jiewen.yao@intel.com> ;
gaoliming <mailto:gaoliming@byosoft.com.cn> ; Kinney, Michael D
<mailto:michael.d.kinney@intel.com> ; Liu, Zhiguang
<mailto:zhiguang.liu@intel.com>
Cc: Wang, Jian J <mailto:jian.j.wang@intel.com> ; Dong, Eric
<mailto:eric.dong@intel.com> ; Ni, Ray <mailto:ray.ni@intel.com>
Subject: Re: [edk2-devel] [PATCH v2 1/6] MdeModulePkg:
DxeMmUnblockMemoryLib: Added definition and null instance
Hello Kun,
Sorry for the delayed response.
Except for missing the UNI file for the newly added library, I do not have
other comment for the implementation at this moment.
But I am wondering if this library can be added into the MdePkg as the case
for MdePkg\Library\SmmMemLib\
I have looped in Jiewen, Liming and Mike for comments.
Also, since:
* New library dependency for VariableSmmRuntimeDxe.inf
* INF file separation and new library dependency in Tcg2Smm
I think the series needs to prepare the changes for platforms under edk2
(OVMF) and edk2-platforms repositories that consume the above 2 modules.
I am not exactly sure on how this should be handled within edk2-platforms,
so I added Liming and Zhiguang here for comments.
Best Regards,
Hao Wu
From: Kun Qin <kun.q@outlook.com <mailto:kun.q@outlook.com> >
Sent: Tuesday, February 23, 2021 6:15 AM
To: devel@edk2.groups.io <mailto:devel@edk2.groups.io> ; Wu, Hao A
<hao.a.wu@intel.com <mailto:hao.a.wu@intel.com> >
Cc: Wang, Jian J <jian.j.wang@intel.com <mailto:jian.j.wang@intel.com> >;
Dong, Eric <eric.dong@intel.com <mailto:eric.dong@intel.com> >; Ni, Ray
<ray.ni@intel.com <mailto:ray.ni@intel.com> >; Yao, Jiewen
<jiewen.yao@intel.com <mailto:jiewen.yao@intel.com> >
Subject: RE: [PATCH v2 1/6] MdeModulePkg: DxeMmUnblockMemoryLib: Added
definition and null instance
Hi Hao,
The patch series was resent with intended usage in VariableRuntime and Tcg2
drivers. Could you please provide feedback on them? Any input is
appreciated.
Regards,
Kun
From: Kun Qin <mailto:kun.q@outlook.com>
Sent: Tuesday, February 9, 2021 17:25
To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>
Cc: Jian J Wang <mailto:jian.j.wang@intel.com> ; Hao A Wu
<mailto:hao.a.wu@intel.com> ; Eric Dong <mailto:eric.dong@intel.com> ; Ray
Ni <mailto:ray.ni@intel.com> ; Jiewen Yao <mailto:jiewen.yao@intel.com>
Subject: [PATCH v2 1/6] MdeModulePkg: DxeMmUnblockMemoryLib: Added
definition and null instance
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3168
This interface definition provides an abstraction layer for DXE drivers
to request certain memory blocks to be mapped/unblocked for accessibility
inside MM environment.
Cc: Jian J Wang <jian.j.wang@intel.com <mailto:jian.j.wang@intel.com> >
Cc: Hao A Wu <hao.a.wu@intel.com <mailto:hao.a.wu@intel.com> >
Cc: Eric Dong <eric.dong@intel.com <mailto:eric.dong@intel.com> >
Cc: Ray Ni <ray.ni@intel.com <mailto:ray.ni@intel.com> >
Cc: Jiewen Yao <jiewen.yao@intel.com <mailto:jiewen.yao@intel.com> >
Signed-off-by: Kun Qin <kun.q@outlook.com <mailto:kun.q@outlook.com> >
---
Notes:
v2:
- Resend with practical usage. No change [Hao]
MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.c |
40 ++++++++++++++++++++
MdeModulePkg/Include/Library/DxeMmUnblockMemoryLib.h |
40 ++++++++++++++++++++
MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.inf |
29 ++++++++++++++
MdeModulePkg/MdeModulePkg.dec |
5 +++
MdeModulePkg/MdeModulePkg.dsc |
2 +
5 files changed, 116 insertions(+)
diff --git
a/MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.c
b/MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.c
new file mode 100644
index 000000000000..774a7e41cfb0
--- /dev/null
+++ b/MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.c
@@ -0,0 +1,40 @@
+/** @file
+ Null instance of MM Unblock Page Library.
+
+ This library provides an abstraction layer of requesting certain page
access to be unblocked
+ by MM environment if applicable.
+
+ Copyright (c), Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Uefi.h>
+
+/**
+ This API provides a way to unblock certain data pages to be accessible
inside MM environment.
+
+ @param UnblockAddress The address of buffer caller requests to
unblock, the address
+ has to be page aligned.
+ @param NumberOfPages The number of pages requested to be
unblocked from MM
+ environment.
+
+ @return EFI_SUCCESS The request goes through successfully.
+ @return EFI_NOT_AVAILABLE_YET The requested functionality is not
produced yet.
+ @return EFI_UNSUPPORTED The requested functionality is not
supported on current platform.
+ @return EFI_SECURITY_VIOLATION The requested address failed to pass
security check for
+ unblocking.
+ @return EFI_INVALID_PARAMETER Input address either NULL pointer or not
page aligned.
+ @return EFI_ACCESS_DENIED The request is rejected due to system has
passed certain boot
+ phase.
+
+**/
+EFI_STATUS
+EFIAPI
+DxeMmUnblockMemoryRequest (
+ IN EFI_PHYSICAL_ADDRESS UnblockAddress,
+ IN UINT64 NumberOfPages
+ )
+{
+ return EFI_UNSUPPORTED;
+}
diff --git a/MdeModulePkg/Include/Library/DxeMmUnblockMemoryLib.h
b/MdeModulePkg/Include/Library/DxeMmUnblockMemoryLib.h
new file mode 100644
index 000000000000..8b63eb74a078
--- /dev/null
+++ b/MdeModulePkg/Include/Library/DxeMmUnblockMemoryLib.h
@@ -0,0 +1,40 @@
+/** @file
+ MM Unblock Memory Library Interface.
+
+ This library provides an abstraction layer of requesting certain page
access to be unblocked
+ by MM environment if applicable.
+
+ Copyright (c), Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _DXE_MM_UNBLOCK_MEMORY_LIB_H_
+#define _DXE_MM_UNBLOCK_MEMORY_LIB_H_
+
+/**
+ This API provides a way to unblock certain data pages to be accessible
inside MM environment.
+
+ @param UnblockAddress The address of buffer caller requests to
unblock, the address
+ has to be page aligned.
+ @param NumberOfPages The number of pages requested to be
unblocked from MM
+ environment.
+
+ @return EFI_SUCCESS The request goes through successfully.
+ @return EFI_NOT_AVAILABLE_YET The requested functionality is not
produced yet.
+ @return EFI_UNSUPPORTED The requested functionality is not
supported on current platform.
+ @return EFI_SECURITY_VIOLATION The requested address failed to pass
security check for
+ unblocking.
+ @return EFI_INVALID_PARAMETER Input address either NULL pointer or not
page aligned.
+ @return EFI_ACCESS_DENIED The request is rejected due to system has
passed certain boot
+ phase.
+
+**/
+EFI_STATUS
+EFIAPI
+DxeMmUnblockMemoryRequest (
+ IN EFI_PHYSICAL_ADDRESS UnblockAddress,
+ IN UINT64 NumberOfPages
+);
+
+#endif // _DXE_MM_UNBLOCK_MEMORY_LIB_H_
diff --git
a/MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.inf
b/MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.inf
new file mode 100644
index 000000000000..e40462e5ab81
--- /dev/null
+++
b/MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.inf
@@ -0,0 +1,29 @@
+## @file
+# Null instance of MM Unblock Page Library.
+#
+# This library provides an abstraction layer of requesting certain page
access to be unblocked
+# by MM environment if applicable.
+#
+# Copyright (c), Microsoft Corporation.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+##
+
+[Defines]
+ INF_VERSION = 0x0001001B
+ BASE_NAME = DxeMmUnblockMemoryLibNull
+ FILE_GUID = 9E890F68-5C95-4C31-95DD-59E6286F85EA
+ MODULE_TYPE = BASE
+ VERSION_STRING = 1.0
+ LIBRARY_CLASS = DxeMmUnblockMemoryLib
+
+#
+# VALID_ARCHITECTURES = IA32 X64
+#
+
+[Sources]
+ DxeMmUnblockMemoryLibNull.c
+
+[Packages]
+ MdePkg/MdePkg.dec
diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index 148395511034..1bb5017da2c5 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -154,6 +154,11 @@ [LibraryClasses]
#
VariablePolicyHelperLib|Include/Library/VariablePolicyHelperLib.h
+ ## @libraryclass This library provides an interface for DXE drivers to
request MM environment
+ # to map/unblock a memory region for accessibility inside MM.
+ #
+ DxeMmUnblockMemoryLib|Include/Library/DxeMmUnblockMemoryLib.h
+
[Guids]
## MdeModule package token space guid
# Include/Guid/MdeModulePkgTokenSpace.h
diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc
index 7ca4a1bb3080..2bc6b8730b8b 100644
--- a/MdeModulePkg/MdeModulePkg.dsc
+++ b/MdeModulePkg/MdeModulePkg.dsc
@@ -100,6 +100,7 @@ [LibraryClasses]
SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
DisplayUpdateProgressLib|MdeModulePkg/Library/DisplayUpdateProgressLibGraphi
cs/DisplayUpdateProgressLibGraphics.inf
VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/Variabl
ePolicyHelperLib.inf
+
DxeMmUnblockMemoryLib|MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnbloc
kMemoryLibNull.inf
[LibraryClasses.EBC.PEIM]
IoLib|MdePkg/Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf
@@ -332,6 +333,7 @@ [Components]
MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
MdeModulePkg/Library/DisplayUpdateProgressLibGraphics/DisplayUpdateProgressL
ibGraphics.inf
MdeModulePkg/Library/DisplayUpdateProgressLibText/DisplayUpdateProgressLibTe
xt.inf
+ MdeModulePkg/Library/DxeMmUnblockMemoryLib/DxeMmUnblockMemoryLibNull.inf
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
--
2.30.0.windows.1
[-- Attachment #2: Type: text/html, Size: 28582 bytes --]
next prev parent reply other threads:[~2021-02-25 14:04 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20210210012457.315-1-kun.q@outlook.com>
2021-02-10 1:24 ` [PATCH v2 1/6] MdeModulePkg: DxeMmUnblockMemoryLib: Added definition and null instance Kun Qin
2021-02-22 22:15 ` Kun Qin
2021-02-23 1:42 ` Wu, Hao A
2021-02-23 19:29 ` [edk2-devel] " Kun Qin
2021-02-24 1:27 ` Wu, Hao A
2021-02-24 1:33 ` Yao, Jiewen
2021-02-24 1:48 ` Kun Qin
2021-02-25 14:03 ` gaoliming [this message]
2021-02-25 18:57 ` Kun Qin
[not found] ` <16668BE524C457EA.19172@groups.io>
2021-02-25 1:53 ` Kun Qin
2021-02-25 2:06 ` Yao, Jiewen
2021-02-25 2:20 ` Kun Qin
2021-02-10 1:24 ` [PATCH v2 2/6] MdeModulePkg: VariableSmmRuntimeDxe: Added request unblock memory interface Kun Qin
2021-02-10 1:24 ` [PATCH v2 3/6] SecurityPkg: Tcg2Smm: Switching from gSmst to gMmst Kun Qin
2021-02-24 1:20 ` Yao, Jiewen
2021-02-10 1:24 ` [PATCH v2 4/6] SecurityPkg: Tcg2Smm: Separate Tcg2Smm into 2 modules Kun Qin
2021-02-22 22:33 ` Kun Qin
2021-02-24 1:20 ` Yao, Jiewen
2021-02-10 1:24 ` [PATCH v2 5/6] SecurityPkg: Tcg2Smm: Added support for Standalone Mm Kun Qin
2021-02-24 1:26 ` Yao, Jiewen
2021-02-24 1:40 ` [edk2-devel] " Kun Qin
[not found] ` <16668B740798D6CC.26818@groups.io>
2021-02-25 2:26 ` Kun Qin
2021-03-01 8:28 ` Yao, Jiewen
2021-03-01 8:57 ` Kun Qin
2021-03-01 9:27 ` Yao, Jiewen
2021-03-01 9:45 ` Kun Qin
2021-02-10 1:24 ` [PATCH v2 6/6] SecurityPkg: Tcg2Acpi: Added unblock memory interface for NVS region Kun Qin
2021-02-24 1:24 ` Yao, Jiewen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='005901d70b7f$0e320430$2a960c90$@byosoft.com.cn' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox