MCTP implementation in ARM sub-system

PLDM acts as the application layer, PLDM specification dictates what data to transferred in each packet.

MCTP is the transport layer. Like TCP, it deals with fragmentation and re-ordering.

 

PLDM specification defines the request and response formats for each of these commands. To better understand the transactions, GetTID could be taken as an example. BMC terminal forms the GetTID PLDM packet and transfers it to MCTP layer. MCTP forwards the command to the loopback interface which sends the packet to itself. Loopback receiver then forwards the packet to MCTP which forwards it to the MCP terminal. This could be thought as the first cycle or the request cycle.

MCP terminal decodes the packet, forms the response and sends it back to MCTP. The packet essentially traverses one more cycle until it finally reaches BMC terminal. This could be thought of as the second cycle or the response cycle. For multip-part transactions, the number of cycles to complete one command transfer may not be limited to two cycles.

Following PLDM commands have been used in the in the feature.

PLDM Command

PLDM Type

Code Value

GetTID

PLDM BASE

0x02

GetPLDMVersion

PLDM BASE

0x03

GetPLDMTypes

PLDM BASE

0x04

GetPLDMCommands

PLDM BASE

0x05

SetEventReceiver

PLDM PLATFORM

0x04

GetPDR

PLDM PLATFORM

0x51

PLDM specification defines the request and response formats for each of these commands. To better understand the transactions, GetTID could be taken as an example. BMC terminal forms the GetTID PLDM packet and transfers it to MCTP layer. MCTP forwards the command to the loopback interface which sends the packet to itself. Loopback receiver then forwards the packet to MCTP which forwards it to the MCP terminal. This could be thought as the first cycle or the request cycle.

MCP terminal decodes the packet, forms the response and sends it back to MCTP. The packet essentially traverses one more cycle until it finally reaches BMC terminal. This could be thought of as the second cycle or the response cycle. For multip-part transactions, the number of cycles to complete one command transfer may not be limited to two cycles.

MCP sideband channel software makes use of the following specifications.

Following thrid party libraries also have been used.

  • libpldm - https://github.com/openbmc/libpldm

  • libmctp - https://github.com/openbmc/libmctp

posted on 2025-12-08 10:39  ENGINEER-F  阅读(0)  评论(0)    收藏  举报