Re: [edk2-devel] [edk2-platforms][PATCH V2 09/14] ManageabilityPkg/MctpProtocol: Add MctpProtocol

2023-04-20 Thread Nickle Wang via groups.io
Please find my comment below.

Thanks,
Nickle

> -Original Message-
> From: abner.ch...@amd.com 
> Sent: Tuesday, April 18, 2023 3:16 PM
> To: devel@edk2.groups.io
> Cc: Isaac Oram ; Abdul Lateef Attar
> ; Nickle Wang ; Igor Kulchytskyy
> 
> Subject: [edk2-platforms][PATCH V2 09/14] ManageabilityPkg/MctpProtocol:
> Add MctpProtocol
> 
> External email: Use caution opening links or attachments
> 
> 
> From: Abner Chang 
> 
> MctpProtocol that transmits MCTP message over manageability transport
> interface library.
> 
> Signed-off-by: Abner Chang 
> Cc: Isaac Oram 
> Cc: Abdul Lateef Attar 
> Cc: Nickle Wang 
> Cc: Igor Kulchytskyy 
> ---
>  .../Include/Dsc/Manageability.dsc |   1 +
>  .../MctpProtocol/Dxe/MctpProtocolDxe.inf  |  53 ++
>  .../Include/Protocol/MctpProtocol.h   | 102 
>  .../MctpProtocol/Common/MctpProtocolCommon.h  | 139
> ++  .../MctpProtocol/Common/MctpProtocolCommon.c  | 472
> ++  .../Universal/MctpProtocol/Dxe/MctpProtocol.c | 218
> 
>  6 files changed, 985 insertions(+)
>  create mode 100644
> Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf
>  create mode 100644
> Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h
>  create mode 100644
> Features/ManageabilityPkg/Universal/MctpProtocol/Common/MctpProtocolCo
> mmon.h
>  create mode 100644
> Features/ManageabilityPkg/Universal/MctpProtocol/Common/MctpProtocolCo
> mmon.c
>  create mode 100644
> Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocol.c
> 
> diff --git a/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc
> b/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc
> index 2a354ad898..17f067c6d0 100644
> --- a/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc
> +++ b/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc
> @@ -33,4 +33,5 @@
>  [Components.X64]
>ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm.inf
> 
> ManageabilityPkg/Universal/PldmSmbiosTransferDxe/PldmSmbiosTransferDxe.i
> nf
> +  ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf
> 
> diff --git
> a/Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.in
> f
> b/Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.in
> f
> new file mode 100644
> index 00..483fbcc04b
> --- /dev/null
> +++ b/Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolD
> +++ xe.inf
> @@ -0,0 +1,53 @@
> +## @file
> +# MCTP Protocol DXE Driver.
> +#
> +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights
> +reserved. # SPDX-License-Identifier: BSD-2-Clause-Patent ##
> +
> +[Defines]
> +  INF_VERSION= 0x0001001d
> +  BASE_NAME  = MctpDxe
> +  FILE_GUID  = 58AF169A-AA3F-462B-B0F1-25FBE6C97978
> +  MODULE_TYPE= DXE_DRIVER
> +  VERSION_STRING = 1.0
> +  ENTRY_POINT= DxeMctpEntry
> +  UNLOAD_IMAGE   = MctpUnloadImage
> +
> +#
> +#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
> +#
> +
> +[Sources]
> +  MctpProtocol.c
> +  ../Common/MctpProtocolCommon.c
> +  ../Common/MctpProtocolCommon.h
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> +  MdeModulePkg/MdeModulePkg.dec
> +  ManageabilityPkg/ManageabilityPkg.dec
> +
> +[LibraryClasses]
> +  BaseMemoryLib
> +  DebugLib
> +  MemoryAllocationLib
> +  ManageabilityTransportHelperLib
> +  ManageabilityTransportLib
> +  UefiDriverEntryPoint
> +  UefiBootServicesTableLib
> +
> +[Guids]
> +  gManageabilityProtocolMctpGuid
> +
> +[Protocols]
> +  gEdkiiMctpProtocolGuid
> +
> +[FixedPcd]
> +  gManageabilityPkgTokenSpaceGuid.PcdMctpKcsMemoryMappedIo
> +  gManageabilityPkgTokenSpaceGuid.PcdMctpKcsBaseAddress
> +  gManageabilityPkgTokenSpaceGuid.PcdMctpSourceEndpointId
> +  gManageabilityPkgTokenSpaceGuid.PcdMctpDestinationEndpointId
> +
> +[Depex]
> +  TRUE
> diff --git a/Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h
> b/Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h
> new file mode 100644
> index 00..85e42f157d
> --- /dev/null
> +++ b/Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h
> @@ -0,0 +1,102 @@
> +/** @file
> +  Protocol of EDKII MCTP Protocol.
> +
> +  Copyright (C) 2023 Advanced Micro Devices, Inc. All rights
> + reserved.
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#ifndef EDKII_MCTP_PROTOCOL_H_
> +#define EDKII_MCTP_PROTOCOL_H_
> +
> +#include 
> +
> +typedef struct  _EDKII_MCTP_PROTOCOL EDKII_MCTP_PROTOCOL;
> +
> +#define EDKII_MCTP_PROTOCOL_GUID \
> +  { \
> +0xE93465C1, 0x9A31, 0x4C96, 0x92, 0x56, 0x22, 0x0A, 0xE1, 0x80,
> +0xB4, 0x1B \
> +  }
> +
> +#define EDKII_MCTP_PROTOCOL_VERSION_MAJOR  1 #define
> +EDKII_MCTP_PROTOCOL_VERSION_MINOR  0
> +#define EDKII_MCTP_PROTOCOL_VERSION
> ((EDKII_MCTP_PROTOCOL_VERSION_MAJOR << 8) |\
> +
> +EDKII_MCTP_PROTOCOL_VERSION_MINOR)
> +
> +/**
> +  This service enables submitting message via EDKII MCTP 

[edk2-devel] [edk2-platforms][PATCH V2 09/14] ManageabilityPkg/MctpProtocol: Add MctpProtocol

2023-04-18 Thread Chang, Abner via groups.io
From: Abner Chang 

MctpProtocol that transmits MCTP message
over manageability transport interface
library.

Signed-off-by: Abner Chang 
Cc: Isaac Oram 
Cc: Abdul Lateef Attar 
Cc: Nickle Wang 
Cc: Igor Kulchytskyy 
---
 .../Include/Dsc/Manageability.dsc |   1 +
 .../MctpProtocol/Dxe/MctpProtocolDxe.inf  |  53 ++
 .../Include/Protocol/MctpProtocol.h   | 102 
 .../MctpProtocol/Common/MctpProtocolCommon.h  | 139 ++
 .../MctpProtocol/Common/MctpProtocolCommon.c  | 472 ++
 .../Universal/MctpProtocol/Dxe/MctpProtocol.c | 218 
 6 files changed, 985 insertions(+)
 create mode 100644 
Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf
 create mode 100644 Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h
 create mode 100644 
Features/ManageabilityPkg/Universal/MctpProtocol/Common/MctpProtocolCommon.h
 create mode 100644 
Features/ManageabilityPkg/Universal/MctpProtocol/Common/MctpProtocolCommon.c
 create mode 100644 
Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocol.c

diff --git a/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc 
b/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc
index 2a354ad898..17f067c6d0 100644
--- a/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc
+++ b/Features/ManageabilityPkg/Include/Dsc/Manageability.dsc
@@ -33,4 +33,5 @@
 [Components.X64]
   ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm.inf
   ManageabilityPkg/Universal/PldmSmbiosTransferDxe/PldmSmbiosTransferDxe.inf
+  ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf
 
diff --git 
a/Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf 
b/Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf
new file mode 100644
index 00..483fbcc04b
--- /dev/null
+++ b/Features/ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf
@@ -0,0 +1,53 @@
+## @file
+# MCTP Protocol DXE Driver.
+#
+# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  INF_VERSION= 0x0001001d
+  BASE_NAME  = MctpDxe
+  FILE_GUID  = 58AF169A-AA3F-462B-B0F1-25FBE6C97978
+  MODULE_TYPE= DXE_DRIVER
+  VERSION_STRING = 1.0
+  ENTRY_POINT= DxeMctpEntry
+  UNLOAD_IMAGE   = MctpUnloadImage
+
+#
+#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
+#
+
+[Sources]
+  MctpProtocol.c
+  ../Common/MctpProtocolCommon.c
+  ../Common/MctpProtocolCommon.h
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  ManageabilityPkg/ManageabilityPkg.dec
+
+[LibraryClasses]
+  BaseMemoryLib
+  DebugLib
+  MemoryAllocationLib
+  ManageabilityTransportHelperLib
+  ManageabilityTransportLib
+  UefiDriverEntryPoint
+  UefiBootServicesTableLib
+
+[Guids]
+  gManageabilityProtocolMctpGuid
+
+[Protocols]
+  gEdkiiMctpProtocolGuid
+
+[FixedPcd]
+  gManageabilityPkgTokenSpaceGuid.PcdMctpKcsMemoryMappedIo
+  gManageabilityPkgTokenSpaceGuid.PcdMctpKcsBaseAddress
+  gManageabilityPkgTokenSpaceGuid.PcdMctpSourceEndpointId
+  gManageabilityPkgTokenSpaceGuid.PcdMctpDestinationEndpointId
+
+[Depex]
+  TRUE
diff --git a/Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h 
b/Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h
new file mode 100644
index 00..85e42f157d
--- /dev/null
+++ b/Features/ManageabilityPkg/Include/Protocol/MctpProtocol.h
@@ -0,0 +1,102 @@
+/** @file
+  Protocol of EDKII MCTP Protocol.
+
+  Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef EDKII_MCTP_PROTOCOL_H_
+#define EDKII_MCTP_PROTOCOL_H_
+
+#include 
+
+typedef struct  _EDKII_MCTP_PROTOCOL EDKII_MCTP_PROTOCOL;
+
+#define EDKII_MCTP_PROTOCOL_GUID \
+  { \
+0xE93465C1, 0x9A31, 0x4C96, 0x92, 0x56, 0x22, 0x0A, 0xE1, 0x80, 0xB4, 0x1B 
\
+  }
+
+#define EDKII_MCTP_PROTOCOL_VERSION_MAJOR  1
+#define EDKII_MCTP_PROTOCOL_VERSION_MINOR  0
+#define EDKII_MCTP_PROTOCOL_VERSION((EDKII_MCTP_PROTOCOL_VERSION_MAJOR 
<< 8) |\
+   EDKII_MCTP_PROTOCOL_VERSION_MINOR)
+
+/**
+  This service enables submitting message via EDKII MCTP protocol.
+
+  @param[in] This   EDKII_MCTP_PROTOCOL instance.
+  @param[in] MctpType   MCTP message type.
+  @param[in] MctpSourceEndpointId   MCTP source endpoint ID.
+  @param[in] MctpDestinationEndpointId  MCTP source endpoint ID.
+  @param[in] RequestDataIntegrityCheck  Indicates whether MCTP message 
has
+integrity check byte.
+  @param[in] RequestDataMessage Data.
+  @param[in] RequestDataSizeSize of message Data.
+  @param[in] RequestTimeout Timeout