[edk2-devel] [PATCH 12/14] MdePkg: The prototype definition of EfiMemoryAcceptProtocol

Min Xu posted 14 patches 2 years, 5 months ago
There is a newer version of this series
[edk2-devel] [PATCH 12/14] MdePkg: The prototype definition of EfiMemoryAcceptProtocol
Posted by Min Xu 2 years, 5 months ago
From: Jiaqi Gao <jiaqi.gao@intel.com>

RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3937

EfiMemoryAcceptProtocol is defined in MdePkg, the method AcceptMemory()
can be called when memory needs to be accepted.

EfiMemoryAcceptProtocol can be installed by architecture-specific drivers
such as TdxDxe.This allows different isolation architectures to realize
their own low-level methods to accept memory.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Jiaqi Gao <jiaqi.gao@intel.com>
Signed-off-by: Min Xu <min.m.xu@intel.com>
---
 MdePkg/Include/Protocol/MemoryAccept.h | 37 ++++++++++++++++++++++++++
 MdePkg/MdePkg.dec                      |  3 +++
 2 files changed, 40 insertions(+)
 create mode 100644 MdePkg/Include/Protocol/MemoryAccept.h

diff --git a/MdePkg/Include/Protocol/MemoryAccept.h b/MdePkg/Include/Protocol/MemoryAccept.h
new file mode 100644
index 000000000000..27b43ce81126
--- /dev/null
+++ b/MdePkg/Include/Protocol/MemoryAccept.h
@@ -0,0 +1,37 @@
+/** @file
+  The file provides the protocol to provide interface to accept memory.
+
+  Copyright (c) 2021 - 2022, Intel Corporation. All rights reserved.<BR>
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MEMORY_ACCEPT_H_
+#define MEMORY_ACCEPT_H_
+
+#define EFI_MEMORY_ACCEPT_PROTOCOL_GUID \
+  { 0x38c74800, 0x5590, 0x4db4, { 0xa0, 0xf3, 0x67, 0x5d, 0x9b, 0x8e, 0x80, 0x26 } };
+
+typedef struct _EFI_MEMORY_ACCEPT_PROTOCOL EFI_MEMORY_ACCEPT_PROTOCOL;
+
+/**
+  @param This                   A pointer to a MEMORY_ACCEPT_PROTOCOL.
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ACCEPT_MEMORY)(
+  IN  EFI_MEMORY_ACCEPT_PROTOCOL    *This,
+  IN  EFI_PHYSICAL_ADDRESS          StartAddress,
+  IN  UINTN                         Size
+  );
+
+///
+/// The MEMORY_ACCEPT_PROTOCOL provides the ability for memory services
+/// to accept memory.
+///
+struct _EFI_MEMORY_ACCEPT_PROTOCOL {
+  EFI_ACCEPT_MEMORY    AcceptMemory;
+};
+
+extern EFI_GUID  gEfiMemoryAcceptProtocolGuid;
+
+#endif
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index f1ebf9e251c1..de3c56758b95 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -1019,6 +1019,9 @@
   gEfiPeiDelayedDispatchPpiGuid  = { 0x869c711d, 0x649c, 0x44fe, { 0x8b, 0x9e, 0x2c, 0xbb, 0x29, 0x11, 0xc3, 0xe6 }}
 
 [Protocols]
+  ## Include/Protocol/MemoryAccept.h
+  gEfiMemoryAcceptProtocolGuid   = { 0x38c74800, 0x5590, 0x4db4, { 0xa0, 0xf3, 0x67, 0x5d, 0x9b, 0x8e, 0x80, 0x26 }}
+
   ## Include/Protocol/Pcd.h
   gPcdProtocolGuid               = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }}
 
-- 
2.29.2.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#90228): https://edk2.groups.io/g/devel/message/90228
Mute This Topic: https://groups.io/mt/91570211/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 12/14] MdePkg: The prototype definition of EfiMemoryAcceptProtocol
Posted by Yao, Jiewen 2 years, 5 months ago
Hi
I don't remember it is accepted in UEFI protocol.
As such, we cannot use EFI_ prefix, and we cannot put it to MdePkg.

I recommend we use EDKII_ prefix, and move it to MdeModulePkg as first step.

Thank you
Yao Jiewen


> -----Original Message-----
> From: Xu, Min M <min.m.xu@intel.com>
> Sent: Monday, June 6, 2022 11:00 AM
> To: devel@edk2.groups.io
> Cc: Gao, Jiaqi <jiaqi.gao@intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Liu,
> Zhiguang <zhiguang.liu@intel.com>; Aktas, Erdem <erdemaktas@google.com>;
> Gerd Hoffmann <kraxel@redhat.com>; James Bottomley <jejb@linux.ibm.com>;
> Yao, Jiewen <jiewen.yao@intel.com>; Tom Lendacky
> <thomas.lendacky@amd.com>; Xu, Min M <min.m.xu@intel.com>
> Subject: [PATCH 12/14] MdePkg: The prototype definition of
> EfiMemoryAcceptProtocol
> 
> From: Jiaqi Gao <jiaqi.gao@intel.com>
> 
> RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3937
> 
> EfiMemoryAcceptProtocol is defined in MdePkg, the method AcceptMemory()
> can be called when memory needs to be accepted.
> 
> EfiMemoryAcceptProtocol can be installed by architecture-specific drivers
> such as TdxDxe.This allows different isolation architectures to realize
> their own low-level methods to accept memory.
> 
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Cc: Erdem Aktas <erdemaktas@google.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: James Bottomley <jejb@linux.ibm.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Signed-off-by: Jiaqi Gao <jiaqi.gao@intel.com>
> Signed-off-by: Min Xu <min.m.xu@intel.com>
> ---
>  MdePkg/Include/Protocol/MemoryAccept.h | 37
> ++++++++++++++++++++++++++
>  MdePkg/MdePkg.dec                      |  3 +++
>  2 files changed, 40 insertions(+)
>  create mode 100644 MdePkg/Include/Protocol/MemoryAccept.h
> 
> diff --git a/MdePkg/Include/Protocol/MemoryAccept.h
> b/MdePkg/Include/Protocol/MemoryAccept.h
> new file mode 100644
> index 000000000000..27b43ce81126
> --- /dev/null
> +++ b/MdePkg/Include/Protocol/MemoryAccept.h
> @@ -0,0 +1,37 @@
> +/** @file
> +  The file provides the protocol to provide interface to accept memory.
> +
> +  Copyright (c) 2021 - 2022, Intel Corporation. All rights reserved.<BR>
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#ifndef MEMORY_ACCEPT_H_
> +#define MEMORY_ACCEPT_H_
> +
> +#define EFI_MEMORY_ACCEPT_PROTOCOL_GUID \
> +  { 0x38c74800, 0x5590, 0x4db4, { 0xa0, 0xf3, 0x67, 0x5d, 0x9b, 0x8e, 0x80,
> 0x26 } };
> +
> +typedef struct _EFI_MEMORY_ACCEPT_PROTOCOL
> EFI_MEMORY_ACCEPT_PROTOCOL;
> +
> +/**
> +  @param This                   A pointer to a MEMORY_ACCEPT_PROTOCOL.
> +**/
> +typedef
> +EFI_STATUS
> +(EFIAPI *EFI_ACCEPT_MEMORY)(
> +  IN  EFI_MEMORY_ACCEPT_PROTOCOL    *This,
> +  IN  EFI_PHYSICAL_ADDRESS          StartAddress,
> +  IN  UINTN                         Size
> +  );
> +
> +///
> +/// The MEMORY_ACCEPT_PROTOCOL provides the ability for memory services
> +/// to accept memory.
> +///
> +struct _EFI_MEMORY_ACCEPT_PROTOCOL {
> +  EFI_ACCEPT_MEMORY    AcceptMemory;
> +};
> +
> +extern EFI_GUID  gEfiMemoryAcceptProtocolGuid;
> +
> +#endif
> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
> index f1ebf9e251c1..de3c56758b95 100644
> --- a/MdePkg/MdePkg.dec
> +++ b/MdePkg/MdePkg.dec
> @@ -1019,6 +1019,9 @@
>    gEfiPeiDelayedDispatchPpiGuid  = { 0x869c711d, 0x649c, 0x44fe, { 0x8b, 0x9e,
> 0x2c, 0xbb, 0x29, 0x11, 0xc3, 0xe6 }}
> 
>  [Protocols]
> +  ## Include/Protocol/MemoryAccept.h
> +  gEfiMemoryAcceptProtocolGuid   = { 0x38c74800, 0x5590, 0x4db4, { 0xa0,
> 0xf3, 0x67, 0x5d, 0x9b, 0x8e, 0x80, 0x26 }}
> +
>    ## Include/Protocol/Pcd.h
>    gPcdProtocolGuid               = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90,
> 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }}
> 
> --
> 2.29.2.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#90233): https://edk2.groups.io/g/devel/message/90233
Mute This Topic: https://groups.io/mt/91570211/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 12/14] MdePkg: The prototype definition of EfiMemoryAcceptProtocol
Posted by Min Xu 2 years, 5 months ago
On June 6, 2022 11:22 AM, Yao Jiewen wrote:
> 
> Hi
> I don't remember it is accepted in UEFI protocol.
> As such, we cannot use EFI_ prefix, and we cannot put it to MdePkg.
> 
> I recommend we use EDKII_ prefix, and move it to MdeModulePkg as first
> step.
> 
Thanks for the reminder. It will be updated in the next version.

Thanks
Min


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#90312): https://edk2.groups.io/g/devel/message/90312
Mute This Topic: https://groups.io/mt/91570211/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-