[PATCH] MdePkg/Include: Add DMTF PLDM Base definitions


Chang, Abner
 

From: Abner Chang <abner.chang@...>

BZ #4396
This change adds definitions for DMTF PLDM
base specification.

Spec ref:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1.1.0.pdf

Signed-off-by: Abner Chang <abner.chang@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhiguang Liu <zhiguang.liu@...>
Cc: Nickle Wang <nicklew@...>
Cc: Igor Kulchytskyy <igork@...>
Cc: Isaac Oram <isaac.w.oram@...>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@...>
---
MdePkg/Include/IndustryStandard/Pldm.h | 81 ++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 MdePkg/Include/IndustryStandard/Pldm.h

diff --git a/MdePkg/Include/IndustryStandard/Pldm.h b/MdePkg/Include/IndustryStandard/Pldm.h
new file mode 100644
index 00000000000..82d65b71874
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Pldm.h
@@ -0,0 +1,81 @@
+/**
+ The definitions of DMTF Platform Level Data Model (PLDM)
+ Base Specification.
+
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ DMTF Platform Level Data Model (PLDM) Base Specification
+ Version 1.1.0
+ https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1.1.0.pdf
+
+**/
+
+#ifndef PLDM_H_
+#define PLDM_H_
+
+#pragma pack(1)
+
+#define PLDM_MESSAGE_HEADER_VERSION 0
+
+///
+/// General definitions from Platform Level Data Model (PLDM) Base
+/// Specification (DMTF DSP0240)
+///
+typedef struct {
+ UINT8 InstanceId : 5; ///< Request instance ID.
+ UINT8 Reserved : 1; ///< Reserved bit.
+ UINT8 DatagramBit : 1; ///< used to indicate whether the Instance ID field is
+ ///< being used for tracking and matching requests and
+ ///< responses, or just being used for asynchronous
+ ///< notifications.
+ UINT8 RequestBit : 1; ///< Request bit.
+ UINT8 PldmType : 6; ///< PLDM message type.
+ UINT8 HeaderVersion : 2; ///< Header version.
+ UINT8 PldmTypeCommandCode; ///< The command code of PLDM message type.
+} PLDM_MESSAGE_HEADER;
+
+typedef PLDM_MESSAGE_HEADER PLDM_REQUEST_HEADER;
+
+#define PLDM_MESSAGE_HEADER_IS_REQUEST 1
+#define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1
+#define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f
+
+typedef struct {
+ PLDM_MESSAGE_HEADER PldmHeader;
+ UINT8 PldmCompletionCode; ///< PLDM completion of response message.
+} PLDM_RESPONSE_HEADER;
+
+#pragma pack()
+
+#define PLDM_HEADER_VERSION 0x00
+
+#define PLDM_COMPLETION_CODE_SUCCESS 0x00
+#define PLDM_COMPLETION_CODE_ERROR 0x01
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_DATA 0x02
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_LENGTH 0x03
+#define PLDM_COMPLETION_CODE_ERROR_NOT_READY 0x04
+#define PLDM_COMPLETION_CODE_ERROR_UNSUPPORTED_PLDM_CMD 0x05
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_PLDM_TYPE 0x20
+#define PLDM_COMPLETION_CODE_SPECIFIC_START 0x80
+#define PLDM_COMPLETION_CODE_SPECIFIC_END 0xff
+
+///
+/// Type Code definitions from Platform Level Data Model (PLDM) IDs
+/// and Codes Specification (DMTF DSP0245)
+/// https://www.dmtf.org/sites/default/files/standards/documents/DSP0245_1.3.0.pdf
+///
+#define PLDM_TYPE_MESSAGE_CONTROL_AND_DISCOVERY 0x00
+#define PLDM_TYPE_SMBIOS 0x01
+#define PLDM_TYPE_PLATFORM_MONITORING_AND_CONTROL 0x02
+#define PLDM_TYPE_BIOS_CONTROL_AND_CONFIGURATION 0x03
+
+#define PLDM_TRANSFER_FLAG_START 0x01
+#define PLDM_TRANSFER_FLAG_MIDDLE 0x02
+#define PLDM_TRANSFER_FLAG_END 0x04
+#define PLDM_TRANSFER_FLAG_START_AND_END 0x05
+
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_NEXT_PART 0x00
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_FIRST_PART 0x01
+#endif // PLDM_H_
--
2.37.1.windows.1


Chang, Abner
 

[AMD Official Use Only - General]

Hi Maintainers,
Please review this.
Thanks
Abner

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang,
Abner via groups.io
Sent: Sunday, April 2, 2023 9:52 AM
To: devel@edk2.groups.io
Cc: Michael D Kinney <michael.d.kinney@...>; Liming Gao
<gaoliming@...>; Zhiguang Liu <zhiguang.liu@...>; Nickle
Wang <nicklew@...>; Igor Kulchytskyy <igork@...>; Isaac
Oram <isaac.w.oram@...>; Attar, AbdulLateef (Abdul Lateef)
<AbdulLateef.Attar@...>
Subject: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


From: Abner Chang <abner.chang@...>

BZ #4396
This change adds definitions for DMTF PLDM base specification.

Spec ref:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1
.1.0.pdf

Signed-off-by: Abner Chang <abner.chang@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhiguang Liu <zhiguang.liu@...>
Cc: Nickle Wang <nicklew@...>
Cc: Igor Kulchytskyy <igork@...>
Cc: Isaac Oram <isaac.w.oram@...>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@...>
---
MdePkg/Include/IndustryStandard/Pldm.h | 81
++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 MdePkg/Include/IndustryStandard/Pldm.h

diff --git a/MdePkg/Include/IndustryStandard/Pldm.h
b/MdePkg/Include/IndustryStandard/Pldm.h
new file mode 100644
index 00000000000..82d65b71874
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Pldm.h
@@ -0,0 +1,81 @@
+/**
+ The definitions of DMTF Platform Level Data Model (PLDM)
+ Base Specification.
+
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ DMTF Platform Level Data Model (PLDM) Base Specification Version
+ 1.1.0
+
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1
+ .1.0.pdf
+
+**/
+
+#ifndef PLDM_H_
+#define PLDM_H_
+
+#pragma pack(1)
+
+#define PLDM_MESSAGE_HEADER_VERSION 0
+
+///
+/// General definitions from Platform Level Data Model (PLDM) Base ///
+Specification (DMTF DSP0240) /// typedef struct {
+ UINT8 InstanceId : 5; ///< Request instance ID.
+ UINT8 Reserved : 1; ///< Reserved bit.
+ UINT8 DatagramBit : 1; ///< used to indicate whether the Instance
ID field is
+ ///< being used for tracking and matching requests and
+ ///< responses, or just being used for asynchronous
+ ///< notifications.
+ UINT8 RequestBit : 1; ///< Request bit.
+ UINT8 PldmType : 6; ///< PLDM message type.
+ UINT8 HeaderVersion : 2; ///< Header version.
+ UINT8 PldmTypeCommandCode; ///< The command code of PLDM
message type.
+} PLDM_MESSAGE_HEADER;
+
+typedef PLDM_MESSAGE_HEADER PLDM_REQUEST_HEADER;
+
+#define PLDM_MESSAGE_HEADER_IS_REQUEST 1
+#define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1
+#define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f
+
+typedef struct {
+ PLDM_MESSAGE_HEADER PldmHeader;
+ UINT8 PldmCompletionCode; ///< PLDM completion of response
message.
+} PLDM_RESPONSE_HEADER;
+
+#pragma pack()
+
+#define PLDM_HEADER_VERSION 0x00
+
+#define PLDM_COMPLETION_CODE_SUCCESS 0x00
+#define PLDM_COMPLETION_CODE_ERROR 0x01
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_DATA 0x02
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_LENGTH 0x03
+#define PLDM_COMPLETION_CODE_ERROR_NOT_READY 0x04
+#define PLDM_COMPLETION_CODE_ERROR_UNSUPPORTED_PLDM_CMD
0x05
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_PLDM_TYPE 0x20
+#define PLDM_COMPLETION_CODE_SPECIFIC_START 0x80
+#define PLDM_COMPLETION_CODE_SPECIFIC_END 0xff
+
+///
+/// Type Code definitions from Platform Level Data Model (PLDM) IDs ///
+and Codes Specification (DMTF DSP0245) ///
+https://www.dmtf.org/sites/default/files/standards/documents/DSP0245_
1.
+3.0.pdf
+///
+#define PLDM_TYPE_MESSAGE_CONTROL_AND_DISCOVERY 0x00
+#define PLDM_TYPE_SMBIOS 0x01
+#define PLDM_TYPE_PLATFORM_MONITORING_AND_CONTROL 0x02
+#define PLDM_TYPE_BIOS_CONTROL_AND_CONFIGURATION 0x03
+
+#define PLDM_TRANSFER_FLAG_START 0x01
+#define PLDM_TRANSFER_FLAG_MIDDLE 0x02
+#define PLDM_TRANSFER_FLAG_END 0x04
+#define PLDM_TRANSFER_FLAG_START_AND_END 0x05
+
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_NEXT_PART 0x00
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_FIRST_PART 0x01
#endif //
+PLDM_H_
--
2.37.1.windows.1





Michael D Kinney
 

I see PldmSmbiosTransfer.h includes this file. Are there any other files that will include this file?

Could this content be folded into PldmSmbiosTransfer.h to reduce total number of include files?

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, Abner via groups.io
Sent: Saturday, April 1, 2023 6:52 PM
To: devel@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor Kulchytskyy <igork@...>; Oram, Isaac W
<isaac.w.oram@...>; Abdul Lateef Attar <AbdulLateef.Attar@...>
Subject: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base definitions

From: Abner Chang <abner.chang@...>

BZ #4396
This change adds definitions for DMTF PLDM
base specification.

Spec ref:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1.1.0.pdf

Signed-off-by: Abner Chang <abner.chang@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhiguang Liu <zhiguang.liu@...>
Cc: Nickle Wang <nicklew@...>
Cc: Igor Kulchytskyy <igork@...>
Cc: Isaac Oram <isaac.w.oram@...>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@...>
---
MdePkg/Include/IndustryStandard/Pldm.h | 81 ++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 MdePkg/Include/IndustryStandard/Pldm.h

diff --git a/MdePkg/Include/IndustryStandard/Pldm.h b/MdePkg/Include/IndustryStandard/Pldm.h
new file mode 100644
index 00000000000..82d65b71874
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Pldm.h
@@ -0,0 +1,81 @@
+/**
+ The definitions of DMTF Platform Level Data Model (PLDM)
+ Base Specification.
+
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ DMTF Platform Level Data Model (PLDM) Base Specification
+ Version 1.1.0
+ https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1.1.0.pdf
+
+**/
+
+#ifndef PLDM_H_
+#define PLDM_H_
+
+#pragma pack(1)
+
+#define PLDM_MESSAGE_HEADER_VERSION 0
+
+///
+/// General definitions from Platform Level Data Model (PLDM) Base
+/// Specification (DMTF DSP0240)
+///
+typedef struct {
+ UINT8 InstanceId : 5; ///< Request instance ID.
+ UINT8 Reserved : 1; ///< Reserved bit.
+ UINT8 DatagramBit : 1; ///< used to indicate whether the Instance ID field is
+ ///< being used for tracking and matching requests and
+ ///< responses, or just being used for asynchronous
+ ///< notifications.
+ UINT8 RequestBit : 1; ///< Request bit.
+ UINT8 PldmType : 6; ///< PLDM message type.
+ UINT8 HeaderVersion : 2; ///< Header version.
+ UINT8 PldmTypeCommandCode; ///< The command code of PLDM message type.
+} PLDM_MESSAGE_HEADER;
+
+typedef PLDM_MESSAGE_HEADER PLDM_REQUEST_HEADER;
+
+#define PLDM_MESSAGE_HEADER_IS_REQUEST 1
+#define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1
+#define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f
+
+typedef struct {
+ PLDM_MESSAGE_HEADER PldmHeader;
+ UINT8 PldmCompletionCode; ///< PLDM completion of response message.
+} PLDM_RESPONSE_HEADER;
+
+#pragma pack()
+
+#define PLDM_HEADER_VERSION 0x00
+
+#define PLDM_COMPLETION_CODE_SUCCESS 0x00
+#define PLDM_COMPLETION_CODE_ERROR 0x01
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_DATA 0x02
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_LENGTH 0x03
+#define PLDM_COMPLETION_CODE_ERROR_NOT_READY 0x04
+#define PLDM_COMPLETION_CODE_ERROR_UNSUPPORTED_PLDM_CMD 0x05
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_PLDM_TYPE 0x20
+#define PLDM_COMPLETION_CODE_SPECIFIC_START 0x80
+#define PLDM_COMPLETION_CODE_SPECIFIC_END 0xff
+
+///
+/// Type Code definitions from Platform Level Data Model (PLDM) IDs
+/// and Codes Specification (DMTF DSP0245)
+/// https://www.dmtf.org/sites/default/files/standards/documents/DSP0245_1.3.0.pdf
+///
+#define PLDM_TYPE_MESSAGE_CONTROL_AND_DISCOVERY 0x00
+#define PLDM_TYPE_SMBIOS 0x01
+#define PLDM_TYPE_PLATFORM_MONITORING_AND_CONTROL 0x02
+#define PLDM_TYPE_BIOS_CONTROL_AND_CONFIGURATION 0x03
+
+#define PLDM_TRANSFER_FLAG_START 0x01
+#define PLDM_TRANSFER_FLAG_MIDDLE 0x02
+#define PLDM_TRANSFER_FLAG_END 0x04
+#define PLDM_TRANSFER_FLAG_START_AND_END 0x05
+
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_NEXT_PART 0x00
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_FIRST_PART 0x01
+#endif // PLDM_H_
--
2.37.1.windows.1





Chang, Abner
 

[AMD Official Use Only - General]

There are couple subordinate specifications base on PLDM base spec. There is possible someone introduces another PLDM C header file that includes PLDM base definitions. So PLDM base definitions should be separated.

Abner

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael
D Kinney via groups.io
Sent: Wednesday, April 19, 2023 1:50 AM
To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>; Kinney,
Michael D <michael.d.kinney@...>
Subject: Re: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


I see PldmSmbiosTransfer.h includes this file. Are there any other files that
will include this file?

Could this content be folded into PldmSmbiosTransfer.h to reduce total
number of include files?

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang,
Abner via groups.io
Sent: Saturday, April 1, 2023 6:52 PM
To: devel@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming
<gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>;
Nickle Wang <nicklew@...>; Igor Kulchytskyy <igork@...>;
Oram, Isaac W <isaac.w.oram@...>; Abdul Lateef Attar
<AbdulLateef.Attar@...>
Subject: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

From: Abner Chang <abner.chang@...>

BZ #4396
This change adds definitions for DMTF PLDM base specification.

Spec ref:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1
.1.0.pdf

Signed-off-by: Abner Chang <abner.chang@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhiguang Liu <zhiguang.liu@...>
Cc: Nickle Wang <nicklew@...>
Cc: Igor Kulchytskyy <igork@...>
Cc: Isaac Oram <isaac.w.oram@...>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@...>
---
MdePkg/Include/IndustryStandard/Pldm.h | 81
++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 MdePkg/Include/IndustryStandard/Pldm.h

diff --git a/MdePkg/Include/IndustryStandard/Pldm.h
b/MdePkg/Include/IndustryStandard/Pldm.h
new file mode 100644
index 00000000000..82d65b71874
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Pldm.h
@@ -0,0 +1,81 @@
+/**
+ The definitions of DMTF Platform Level Data Model (PLDM)
+ Base Specification.
+
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ DMTF Platform Level Data Model (PLDM) Base Specification Version
+ 1.1.0
+
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240
+ _1.1.0.pdf
+
+**/
+
+#ifndef PLDM_H_
+#define PLDM_H_
+
+#pragma pack(1)
+
+#define PLDM_MESSAGE_HEADER_VERSION 0
+
+///
+/// General definitions from Platform Level Data Model (PLDM) Base
+/// Specification (DMTF DSP0240) /// typedef struct {
+ UINT8 InstanceId : 5; ///< Request instance ID.
+ UINT8 Reserved : 1; ///< Reserved bit.
+ UINT8 DatagramBit : 1; ///< used to indicate whether the Instance
ID field is
+ ///< being used for tracking and matching requests
and
+ ///< responses, or just being used for asynchronous
+ ///< notifications.
+ UINT8 RequestBit : 1; ///< Request bit.
+ UINT8 PldmType : 6; ///< PLDM message type.
+ UINT8 HeaderVersion : 2; ///< Header version.
+ UINT8 PldmTypeCommandCode; ///< The command code of PLDM
message type.
+} PLDM_MESSAGE_HEADER;
+
+typedef PLDM_MESSAGE_HEADER PLDM_REQUEST_HEADER;
+
+#define PLDM_MESSAGE_HEADER_IS_REQUEST 1
+#define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1
+#define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f
+
+typedef struct {
+ PLDM_MESSAGE_HEADER PldmHeader;
+ UINT8 PldmCompletionCode; ///< PLDM completion of
response message.
+} PLDM_RESPONSE_HEADER;
+
+#pragma pack()
+
+#define PLDM_HEADER_VERSION 0x00
+
+#define PLDM_COMPLETION_CODE_SUCCESS 0x00
+#define PLDM_COMPLETION_CODE_ERROR 0x01
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_DATA 0x02
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_LENGTH 0x03
+#define PLDM_COMPLETION_CODE_ERROR_NOT_READY 0x04
+#define
PLDM_COMPLETION_CODE_ERROR_UNSUPPORTED_PLDM_CMD 0x05
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_PLDM_TYPE
0x20
+#define PLDM_COMPLETION_CODE_SPECIFIC_START 0x80
+#define PLDM_COMPLETION_CODE_SPECIFIC_END 0xff
+
+///
+/// Type Code definitions from Platform Level Data Model (PLDM) IDs
+/// and Codes Specification (DMTF DSP0245) ///
+https://www.dmtf.org/sites/default/files/standards/documents/DSP0245_
+1.3.0.pdf
+///
+#define PLDM_TYPE_MESSAGE_CONTROL_AND_DISCOVERY 0x00
+#define PLDM_TYPE_SMBIOS 0x01
+#define PLDM_TYPE_PLATFORM_MONITORING_AND_CONTROL 0x02
+#define PLDM_TYPE_BIOS_CONTROL_AND_CONFIGURATION 0x03
+
+#define PLDM_TRANSFER_FLAG_START 0x01
+#define PLDM_TRANSFER_FLAG_MIDDLE 0x02
+#define PLDM_TRANSFER_FLAG_END 0x04
+#define PLDM_TRANSFER_FLAG_START_AND_END 0x05
+
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_NEXT_PART 0x00
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_FIRST_PART 0x01
#endif //
+PLDM_H_
--
2.37.1.windows.1








Michael D Kinney
 

Reviewed-by: Michael D Kinney <michael.d.kinney@...>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, Abner via groups.io
Sent: Tuesday, April 18, 2023 7:14 PM
To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>; Attar, AbdulLateef (Abdul Lateef)
<AbdulLateef.Attar@...>
Subject: Re: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base definitions

[AMD Official Use Only - General]

There are couple subordinate specifications base on PLDM base spec. There is possible someone introduces another PLDM C
header file that includes PLDM base definitions. So PLDM base definitions should be separated.

Abner

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael
D Kinney via groups.io
Sent: Wednesday, April 19, 2023 1:50 AM
To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>; Kinney,
Michael D <michael.d.kinney@...>
Subject: Re: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


I see PldmSmbiosTransfer.h includes this file. Are there any other files that
will include this file?

Could this content be folded into PldmSmbiosTransfer.h to reduce total
number of include files?

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang,
Abner via groups.io
Sent: Saturday, April 1, 2023 6:52 PM
To: devel@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming
<gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>;
Nickle Wang <nicklew@...>; Igor Kulchytskyy <igork@...>;
Oram, Isaac W <isaac.w.oram@...>; Abdul Lateef Attar
<AbdulLateef.Attar@...>
Subject: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

From: Abner Chang <abner.chang@...>

BZ #4396
This change adds definitions for DMTF PLDM base specification.

Spec ref:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1
.1.0.pdf

Signed-off-by: Abner Chang <abner.chang@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhiguang Liu <zhiguang.liu@...>
Cc: Nickle Wang <nicklew@...>
Cc: Igor Kulchytskyy <igork@...>
Cc: Isaac Oram <isaac.w.oram@...>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@...>
---
MdePkg/Include/IndustryStandard/Pldm.h | 81
++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 MdePkg/Include/IndustryStandard/Pldm.h

diff --git a/MdePkg/Include/IndustryStandard/Pldm.h
b/MdePkg/Include/IndustryStandard/Pldm.h
new file mode 100644
index 00000000000..82d65b71874
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Pldm.h
@@ -0,0 +1,81 @@
+/**
+ The definitions of DMTF Platform Level Data Model (PLDM)
+ Base Specification.
+
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ DMTF Platform Level Data Model (PLDM) Base Specification Version
+ 1.1.0
+
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240
+ _1.1.0.pdf
+
+**/
+
+#ifndef PLDM_H_
+#define PLDM_H_
+
+#pragma pack(1)
+
+#define PLDM_MESSAGE_HEADER_VERSION 0
+
+///
+/// General definitions from Platform Level Data Model (PLDM) Base
+/// Specification (DMTF DSP0240) /// typedef struct {
+ UINT8 InstanceId : 5; ///< Request instance ID.
+ UINT8 Reserved : 1; ///< Reserved bit.
+ UINT8 DatagramBit : 1; ///< used to indicate whether the Instance
ID field is
+ ///< being used for tracking and matching requests
and
+ ///< responses, or just being used for asynchronous
+ ///< notifications.
+ UINT8 RequestBit : 1; ///< Request bit.
+ UINT8 PldmType : 6; ///< PLDM message type.
+ UINT8 HeaderVersion : 2; ///< Header version.
+ UINT8 PldmTypeCommandCode; ///< The command code of PLDM
message type.
+} PLDM_MESSAGE_HEADER;
+
+typedef PLDM_MESSAGE_HEADER PLDM_REQUEST_HEADER;
+
+#define PLDM_MESSAGE_HEADER_IS_REQUEST 1
+#define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1
+#define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f
+
+typedef struct {
+ PLDM_MESSAGE_HEADER PldmHeader;
+ UINT8 PldmCompletionCode; ///< PLDM completion of
response message.
+} PLDM_RESPONSE_HEADER;
+
+#pragma pack()
+
+#define PLDM_HEADER_VERSION 0x00
+
+#define PLDM_COMPLETION_CODE_SUCCESS 0x00
+#define PLDM_COMPLETION_CODE_ERROR 0x01
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_DATA 0x02
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_LENGTH 0x03
+#define PLDM_COMPLETION_CODE_ERROR_NOT_READY 0x04
+#define
PLDM_COMPLETION_CODE_ERROR_UNSUPPORTED_PLDM_CMD 0x05
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_PLDM_TYPE
0x20
+#define PLDM_COMPLETION_CODE_SPECIFIC_START 0x80
+#define PLDM_COMPLETION_CODE_SPECIFIC_END 0xff
+
+///
+/// Type Code definitions from Platform Level Data Model (PLDM) IDs
+/// and Codes Specification (DMTF DSP0245) ///
+https://www.dmtf.org/sites/default/files/standards/documents/DSP0245_
+1.3.0.pdf
+///
+#define PLDM_TYPE_MESSAGE_CONTROL_AND_DISCOVERY 0x00
+#define PLDM_TYPE_SMBIOS 0x01
+#define PLDM_TYPE_PLATFORM_MONITORING_AND_CONTROL 0x02
+#define PLDM_TYPE_BIOS_CONTROL_AND_CONFIGURATION 0x03
+
+#define PLDM_TRANSFER_FLAG_START 0x01
+#define PLDM_TRANSFER_FLAG_MIDDLE 0x02
+#define PLDM_TRANSFER_FLAG_END 0x04
+#define PLDM_TRANSFER_FLAG_START_AND_END 0x05
+
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_NEXT_PART 0x00
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_FIRST_PART 0x01
#endif //
+PLDM_H_
--
2.37.1.windows.1










Chang, Abner
 

[AMD Official Use Only - General]

Hi Mike and liming,
Here are two PRs for PLDM related C header files, which are all passed CI. Please help to push it to master branch.

https://github.com/tianocore/edk2/pull/4287
https://github.com/tianocore/edk2/pull/4288

Thanks
Abner

-----Original Message-----
From: Kinney, Michael D <michael.d.kinney@...>
Sent: Wednesday, April 19, 2023 11:05 PM
To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>; Kinney,
Michael D <michael.d.kinney@...>
Subject: RE: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


Reviewed-by: Michael D Kinney <michael.d.kinney@...>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang,
Abner via groups.io
Sent: Tuesday, April 18, 2023 7:14 PM
To: devel@edk2.groups.io; Kinney, Michael D
<michael.d.kinney@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>
Subject: Re: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

[AMD Official Use Only - General]

There are couple subordinate specifications base on PLDM base spec.
There is possible someone introduces another PLDM C header file that
includes PLDM base definitions. So PLDM base definitions should be
separated.

Abner

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
Michael D Kinney via groups.io
Sent: Wednesday, April 19, 2023 1:50 AM
To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W
<isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>;
Kinney, Michael D <michael.d.kinney@...>
Subject: Re: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM
Base
definitions

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


I see PldmSmbiosTransfer.h includes this file. Are there any other
files that will include this file?

Could this content be folded into PldmSmbiosTransfer.h to reduce
total number of include files?

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
Chang, Abner via groups.io
Sent: Saturday, April 1, 2023 6:52 PM
To: devel@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming
<gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W
<isaac.w.oram@...>; Abdul Lateef Attar
<AbdulLateef.Attar@...>
Subject: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

From: Abner Chang <abner.chang@...>

BZ #4396
This change adds definitions for DMTF PLDM base specification.

Spec ref:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240
_1
.1.0.pdf

Signed-off-by: Abner Chang <abner.chang@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhiguang Liu <zhiguang.liu@...>
Cc: Nickle Wang <nicklew@...>
Cc: Igor Kulchytskyy <igork@...>
Cc: Isaac Oram <isaac.w.oram@...>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@...>
---
MdePkg/Include/IndustryStandard/Pldm.h | 81
++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 MdePkg/Include/IndustryStandard/Pldm.h

diff --git a/MdePkg/Include/IndustryStandard/Pldm.h
b/MdePkg/Include/IndustryStandard/Pldm.h
new file mode 100644
index 00000000000..82d65b71874
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Pldm.h
@@ -0,0 +1,81 @@
+/**
+ The definitions of DMTF Platform Level Data Model (PLDM)
+ Base Specification.
+
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ DMTF Platform Level Data Model (PLDM) Base Specification
+ Version
+ 1.1.0
+
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240
+ _1.1.0.pdf
+
+**/
+
+#ifndef PLDM_H_
+#define PLDM_H_
+
+#pragma pack(1)
+
+#define PLDM_MESSAGE_HEADER_VERSION 0
+
+///
+/// General definitions from Platform Level Data Model (PLDM)
+Base /// Specification (DMTF DSP0240) /// typedef struct {
+ UINT8 InstanceId : 5; ///< Request instance ID.
+ UINT8 Reserved : 1; ///< Reserved bit.
+ UINT8 DatagramBit : 1; ///< used to indicate whether the
Instance
ID field is
+ ///< being used for
+ tracking and matching requests
and
+ ///< responses, or just being used for
asynchronous
+ ///< notifications.
+ UINT8 RequestBit : 1; ///< Request bit.
+ UINT8 PldmType : 6; ///< PLDM message type.
+ UINT8 HeaderVersion : 2; ///< Header version.
+ UINT8 PldmTypeCommandCode; ///< The command code of
PLDM
message type.
+} PLDM_MESSAGE_HEADER;
+
+typedef PLDM_MESSAGE_HEADER PLDM_REQUEST_HEADER;
+
+#define PLDM_MESSAGE_HEADER_IS_REQUEST 1
+#define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1
+#define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f
+
+typedef struct {
+ PLDM_MESSAGE_HEADER PldmHeader;
+ UINT8 PldmCompletionCode; ///< PLDM completion of
response message.
+} PLDM_RESPONSE_HEADER;
+
+#pragma pack()
+
+#define PLDM_HEADER_VERSION 0x00
+
+#define PLDM_COMPLETION_CODE_SUCCESS 0x00
+#define PLDM_COMPLETION_CODE_ERROR 0x01
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_DATA 0x02
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_LENGTH
0x03
+#define PLDM_COMPLETION_CODE_ERROR_NOT_READY 0x04
+#define
PLDM_COMPLETION_CODE_ERROR_UNSUPPORTED_PLDM_CMD 0x05
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_PLDM_TYPE
0x20
+#define PLDM_COMPLETION_CODE_SPECIFIC_START 0x80
+#define PLDM_COMPLETION_CODE_SPECIFIC_END 0xff
+
+///
+/// Type Code definitions from Platform Level Data Model (PLDM)
+IDs /// and Codes Specification (DMTF DSP0245) ///
+https://www.dmtf.org/sites/default/files/standards/documents/DSP024
+5_
+1.3.0.pdf
+///
+#define PLDM_TYPE_MESSAGE_CONTROL_AND_DISCOVERY 0x00
+#define PLDM_TYPE_SMBIOS 0x01
+#define PLDM_TYPE_PLATFORM_MONITORING_AND_CONTROL
0x02
+#define PLDM_TYPE_BIOS_CONTROL_AND_CONFIGURATION 0x03
+
+#define PLDM_TRANSFER_FLAG_START 0x01
+#define PLDM_TRANSFER_FLAG_MIDDLE 0x02
+#define PLDM_TRANSFER_FLAG_END 0x04
+#define PLDM_TRANSFER_FLAG_START_AND_END 0x05
+
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_NEXT_PART 0x00
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_FIRST_PART 0x01
#endif //
+PLDM_H_
--
2.37.1.windows.1










Michael D Kinney
 

Merged

Mike

-----Original Message-----
From: Chang, Abner <Abner.Chang@...>
Sent: Wednesday, April 19, 2023 8:25 PM
To: Kinney, Michael D <michael.d.kinney@...>; devel@edk2.groups.io
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>; Attar, AbdulLateef (Abdul Lateef)
<AbdulLateef.Attar@...>
Subject: RE: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base definitions

[AMD Official Use Only - General]

Hi Mike and liming,
Here are two PRs for PLDM related C header files, which are all passed CI. Please help to push it to master branch.

https://github.com/tianocore/edk2/pull/4287
https://github.com/tianocore/edk2/pull/4288

Thanks
Abner

-----Original Message-----
From: Kinney, Michael D <michael.d.kinney@...>
Sent: Wednesday, April 19, 2023 11:05 PM
To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>; Kinney,
Michael D <michael.d.kinney@...>
Subject: RE: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


Reviewed-by: Michael D Kinney <michael.d.kinney@...>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang,
Abner via groups.io
Sent: Tuesday, April 18, 2023 7:14 PM
To: devel@edk2.groups.io; Kinney, Michael D
<michael.d.kinney@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W <isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>
Subject: Re: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

[AMD Official Use Only - General]

There are couple subordinate specifications base on PLDM base spec.
There is possible someone introduces another PLDM C header file that
includes PLDM base definitions. So PLDM base definitions should be
separated.

Abner

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
Michael D Kinney via groups.io
Sent: Wednesday, April 19, 2023 1:50 AM
To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@...>
Cc: Gao, Liming <gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W
<isaac.w.oram@...>;
Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>;
Kinney, Michael D <michael.d.kinney@...>
Subject: Re: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM
Base
definitions

Caution: This message originated from an External Source. Use proper
caution when opening attachments, clicking links, or responding.


I see PldmSmbiosTransfer.h includes this file. Are there any other
files that will include this file?

Could this content be folded into PldmSmbiosTransfer.h to reduce
total number of include files?

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
Chang, Abner via groups.io
Sent: Saturday, April 1, 2023 6:52 PM
To: devel@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming
<gaoliming@...>; Liu, Zhiguang
<zhiguang.liu@...>; Nickle Wang <nicklew@...>; Igor
Kulchytskyy <igork@...>; Oram, Isaac W
<isaac.w.oram@...>; Abdul Lateef Attar
<AbdulLateef.Attar@...>
Subject: [edk2-devel] [PATCH] MdePkg/Include: Add DMTF PLDM Base
definitions

From: Abner Chang <abner.chang@...>

BZ #4396
This change adds definitions for DMTF PLDM base specification.

Spec ref:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240
_1
.1.0.pdf

Signed-off-by: Abner Chang <abner.chang@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhiguang Liu <zhiguang.liu@...>
Cc: Nickle Wang <nicklew@...>
Cc: Igor Kulchytskyy <igork@...>
Cc: Isaac Oram <isaac.w.oram@...>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@...>
---
MdePkg/Include/IndustryStandard/Pldm.h | 81
++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 MdePkg/Include/IndustryStandard/Pldm.h

diff --git a/MdePkg/Include/IndustryStandard/Pldm.h
b/MdePkg/Include/IndustryStandard/Pldm.h
new file mode 100644
index 00000000000..82d65b71874
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Pldm.h
@@ -0,0 +1,81 @@
+/**
+ The definitions of DMTF Platform Level Data Model (PLDM)
+ Base Specification.
+
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ DMTF Platform Level Data Model (PLDM) Base Specification
+ Version
+ 1.1.0
+
https://www.dmtf.org/sites/default/files/standards/documents/DSP0240
+ _1.1.0.pdf
+
+**/
+
+#ifndef PLDM_H_
+#define PLDM_H_
+
+#pragma pack(1)
+
+#define PLDM_MESSAGE_HEADER_VERSION 0
+
+///
+/// General definitions from Platform Level Data Model (PLDM)
+Base /// Specification (DMTF DSP0240) /// typedef struct {
+ UINT8 InstanceId : 5; ///< Request instance ID.
+ UINT8 Reserved : 1; ///< Reserved bit.
+ UINT8 DatagramBit : 1; ///< used to indicate whether the
Instance
ID field is
+ ///< being used for
+ tracking and matching requests
and
+ ///< responses, or just being used for
asynchronous
+ ///< notifications.
+ UINT8 RequestBit : 1; ///< Request bit.
+ UINT8 PldmType : 6; ///< PLDM message type.
+ UINT8 HeaderVersion : 2; ///< Header version.
+ UINT8 PldmTypeCommandCode; ///< The command code of
PLDM
message type.
+} PLDM_MESSAGE_HEADER;
+
+typedef PLDM_MESSAGE_HEADER PLDM_REQUEST_HEADER;
+
+#define PLDM_MESSAGE_HEADER_IS_REQUEST 1
+#define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1
+#define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f
+
+typedef struct {
+ PLDM_MESSAGE_HEADER PldmHeader;
+ UINT8 PldmCompletionCode; ///< PLDM completion of
response message.
+} PLDM_RESPONSE_HEADER;
+
+#pragma pack()
+
+#define PLDM_HEADER_VERSION 0x00
+
+#define PLDM_COMPLETION_CODE_SUCCESS 0x00
+#define PLDM_COMPLETION_CODE_ERROR 0x01
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_DATA 0x02
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_LENGTH
0x03
+#define PLDM_COMPLETION_CODE_ERROR_NOT_READY 0x04
+#define
PLDM_COMPLETION_CODE_ERROR_UNSUPPORTED_PLDM_CMD 0x05
+#define PLDM_COMPLETION_CODE_ERROR_INVALID_PLDM_TYPE
0x20
+#define PLDM_COMPLETION_CODE_SPECIFIC_START 0x80
+#define PLDM_COMPLETION_CODE_SPECIFIC_END 0xff
+
+///
+/// Type Code definitions from Platform Level Data Model (PLDM)
+IDs /// and Codes Specification (DMTF DSP0245) ///
+https://www.dmtf.org/sites/default/files/standards/documents/DSP024
+5_
+1.3.0.pdf
+///
+#define PLDM_TYPE_MESSAGE_CONTROL_AND_DISCOVERY 0x00
+#define PLDM_TYPE_SMBIOS 0x01
+#define PLDM_TYPE_PLATFORM_MONITORING_AND_CONTROL
0x02
+#define PLDM_TYPE_BIOS_CONTROL_AND_CONFIGURATION 0x03
+
+#define PLDM_TRANSFER_FLAG_START 0x01
+#define PLDM_TRANSFER_FLAG_MIDDLE 0x02
+#define PLDM_TRANSFER_FLAG_END 0x04
+#define PLDM_TRANSFER_FLAG_START_AND_END 0x05
+
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_NEXT_PART 0x00
+#define PLDM_TRANSFER_OPERATION_FLAG_GET_FIRST_PART 0x01
#endif //
+PLDM_H_
--
2.37.1.windows.1