diff options
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0028-MCTP-Daemon-D-Bus-interface-definition.patch')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0028-MCTP-Daemon-D-Bus-interface-definition.patch | 457 |
1 files changed, 0 insertions, 457 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0028-MCTP-Daemon-D-Bus-interface-definition.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0028-MCTP-Daemon-D-Bus-interface-definition.patch deleted file mode 100644 index e6afc0117..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0028-MCTP-Daemon-D-Bus-interface-definition.patch +++ /dev/null @@ -1,457 +0,0 @@ -From 65d1772312a76ebfdac6391bb97287c62f18c43f Mon Sep 17 00:00:00 2001 -From: "Kowalski, Mariusz" <mariusz.kowalski@intel.com> -Date: Thu, 27 Feb 2020 15:48:56 +0100 -Subject: [PATCH] MCTP Daemon D-Bus interface definition. - -This interface definition was created on base of the MCTP design -proposed in this document: -https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/28424/9/designs/mctp.md - -Signed-off-by: Arun P. Mohanan <arun.p.m@linux.intel.com> -Signed-off-by: Mariusz Kowalski <mariusz.kowalski@intel.com> -Signed-off-by: Karol Wachowski <karol.wachowski@intel.com> -Change-Id: Ida66f8ffcf00003655edcb0fb0112202797b8e1a ---- - xyz/openbmc_project/MCTP/Base.interface.yaml | 227 ++++++++++++++++++ - .../MCTP/Binding/PCIe.interface.yaml | 29 +++ - .../MCTP/Binding/SMBus.interface.yaml | 17 ++ - .../MCTP/BusOwner.interface.yaml | 17 ++ - .../MCTP/Endpoint.interface.yaml | 13 + - xyz/openbmc_project/MCTP/README.md | 43 ++++ - .../MCTP/SupportedMessageTypes.interface.yaml | 36 +++ - 7 files changed, 382 insertions(+) - create mode 100644 xyz/openbmc_project/MCTP/Base.interface.yaml - create mode 100644 xyz/openbmc_project/MCTP/Binding/PCIe.interface.yaml - create mode 100644 xyz/openbmc_project/MCTP/Binding/SMBus.interface.yaml - create mode 100644 xyz/openbmc_project/MCTP/BusOwner.interface.yaml - create mode 100644 xyz/openbmc_project/MCTP/Endpoint.interface.yaml - create mode 100644 xyz/openbmc_project/MCTP/README.md - create mode 100644 xyz/openbmc_project/MCTP/SupportedMessageTypes.interface.yaml - -diff --git a/xyz/openbmc_project/MCTP/Base.interface.yaml b/xyz/openbmc_project/MCTP/Base.interface.yaml -new file mode 100644 -index 0000000..9438551 ---- /dev/null -+++ b/xyz/openbmc_project/MCTP/Base.interface.yaml -@@ -0,0 +1,227 @@ -+description: > -+ Mandatory interface for each instance of the MCTP Daemon to expose -+ the base MCTP daemon and medium type interfaces. -+ -+methods: -+ - name: SendMctpMessagePayload -+ description: > -+ Sends message over MCTP interface -+ parameters: -+ - name: DestinationEID -+ type: byte -+ description: > -+ Destination Endpoint ID. The logical address used to route MCTP -+ messages to a specific MCTP endpoint. -+ - name: MsgTag -+ type: byte -+ description: > -+ Message tag. Field that, along with the Source Endpoint IDs and the -+ Tag Owner (TO) field, identifies a unique message at the MCTP -+ transport level. -+ - name: TagOwner -+ type: boolean -+ description: > -+ Tag Owner bit identifies whether the message tag was originated by -+ the endpoint that is the source of the message or by the endpoint -+ that is the destination of the message. -+ - name: Payload -+ type: array[byte] -+ description: Payload of message. -+ returns: -+ - name: Status -+ type: byte -+ description: 0 - if success -+ errors: -+ - xyz.openbmc_project.Common.Error.Timeout -+ - xyz.openbmc_project.Common.Error.InvalidArgument -+ - xyz.openbmc_project.Common.Error.InternalFailure -+ -+ - name: SendMctpMessageFileDescriptor -+ description: > -+ Sends message over MCTP interface -+ parameters: -+ - name: DestinationEID -+ type: byte -+ description: > -+ Destination Endpoint ID. The logical address used to route MCTP -+ messages to a specific MCTP endpoint. -+ - name: MsgTag -+ type: byte -+ description: > -+ Message tag. Field that, along with the Source Endpoint IDs and the -+ Tag Owner (TO) field, identifies a unique message at the MCTP -+ transport level. -+ - name: TagOwner -+ type: boolean -+ description: > -+ Tag Owner bit identifies whether the message tag was originated by -+ the endpoint that is the source of the message or by the endpoint -+ that is the destination of the message. -+ - name: FileDescriptor -+ type: unixfd -+ description: File descriptor of message. -+ returns: -+ - name: Status -+ type: byte -+ description: 0 - if success -+ errors: -+ - xyz.openbmc_project.Common.Error.Timeout -+ - xyz.openbmc_project.Common.Error.InvalidArgument -+ - xyz.openbmc_project.Common.Error.InternalFailure -+ -+signals: -+ - name: MessageReceivedSignal -+ description: > -+ Signal indicating upper layers about arrival of a MCTP message. -+ properties: -+ - name: MessageType -+ type: enum[self.MessageTypes] -+ description: > -+ Defines the values for the Message Type field for different message -+ types transported through MCTP. -+ - name: SrcEid -+ type: byte -+ description: > -+ Source Endpoint ID. The logical address used to route MCTP messages -+ to a specific MCTP endpoint. -+ - name: MsgTag -+ type: byte -+ description: > -+ Message tag. Field that, along with the Source Endpoint IDs and the -+ Tag Owner (TO) field, identifies a unique message at the MCTP -+ transport level. -+ - name: TagOwner -+ type: boolean -+ description: > -+ Tag Owner bit identifies whether the message tag was originated by -+ the endpoint that is the source of the message or by the endpoint -+ that is the destination of the message. -+ - name: Payload -+ type: array[byte] -+ description: Payload of message. -+ -+properties: -+ - name: Eid -+ type: byte -+ description: > -+ Endpoint ID. The logical address used to route MCTP messages to a -+ specific MCTP endpoint. -+ -+ - name: BindingID -+ type: enum[self.BindingTypes] -+ -+ - name: BindingMediumID -+ type: enum[self.MctpPhysicalMediumIdentifiers] -+ -+ - name: StaticEid -+ type: boolean -+ description: Support for statically/dynamicly allocated IDs -+ -+ - name: BindingMode -+ type: enum[self.BindingModeTypes] -+ description: Bus Owner / Endpoint / Bridge -+ -+enumerations: -+ - name: BindingTypes -+ description: > -+ All other values than described are reserved. -+ values: -+ - name: MctpOverSmbus -+ - name: MctpOverPcieVdm -+ - name: MctpOverUsb -+ description: Reserved for MCTP over USB -+ - name: MctpOverKcs -+ - name: MctpOverSerial -+ - name: VendorDefined -+ -+ - name: MctpPhysicalMediumIdentifiers -+ description: > -+ Identifies MCTP physical medium identifiers. see DSP0239. -+ values: -+ - name: Smbus -+ descritpion: SMBus 2.0 100 kHz compatible -+ - name: SmbusI2c -+ descritpion: SMBus 2.0 + I2C 100 kHz compatible -+ - name: I2cCompatible -+ description: I2C 100 kHz compatible (Standard-mode) -+ - name: Smbus3OrI2c400khzCompatible -+ description: SMBus 3.0 or I2C 400 kHz compatible (Fast-mode) -+ - name: Smbus3OrI2c1MhzCompatible -+ description: SMBus 3.0 or I2C 1 MHz compatible (Fast-mode Plus) -+ - name: I2c3Mhz4Compatible -+ description: I2C 3.4 MHz compatible (High-speed mode) -+ - name: Pcie11 -+ description: PCIe revision 1.1 compatible -+ - name: Pcie2 -+ description: PCIe revision 2.0 compatible -+ - name: Pcie21 -+ description: PCIe revision 2.1 compatible -+ - name: Pcie3 -+ description: PCIe revision 3.0 compatible -+ - name: Pcie4 -+ description: PCIe revision 4.0 compatible -+ - name: Pcie5 -+ description: PCIe revision 4.0 compatible -+ - name: PciCompatible -+ description: > -+ PCI compatible (PCI 1.0,2.0,2.1,2.2,2.3,3.0,PCI-X 1.0, PCI-X 2.0) -+ - name: Usb11Compatible -+ description: USB 1.1 compatible -+ - name: Usb20Compatible -+ description: USB 2.0 compatible -+ - name: Usb30Compatible -+ description: USB 3.0 compatible -+ - name: NcSiOverRbt -+ description: > -+ NC-SI over RBT (A physical interface based on RMII as defined in -+ DSP0222) -+ - name: KcsLegacy -+ description: KCS1 / Legacy (Fixed Address Decoding) -+ - name: KcsPci -+ description: KCS1 / PCI (Base Class 0xC0 Subclass 0x01) -+ - name: SerialHostLegacy -+ description: Serial Host2 / Legacy (Fixed Address Decoding) -+ - name: SerialHostPci -+ description: Serial Host2 / PCI (Base Class 0x07 Subclass 0x00) -+ - name: AsynchronousSerial -+ description: Asynchronous Serial (Between MCs and IMDs) -+ - name: I3cSDR -+ description: I3C 12.5 MHz compatible (SDR) -+ - name: I3cHDRDDR -+ description: I3C 25 MHz compatible (HDR-DDR) -+ -+ - name: BindingModeTypes -+ values: -+ - name: Endpoint -+ description: > -+ An MCTP communication terminus. An MCTP endpoint is a terminus or -+ origin of MCTP packets or messages. That is, the combined -+ functionality within a physical device that communicates using the -+ MCTP transport protocol and handles MCTP control commands. This -+ includes MCTP-capable management controllers and managed devices. -+ Also referred to in this document as "endpoint". -+ - name: BusOwner -+ description: > -+ The party responsible for managing address assignments (can be -+ logical or physical addresses) on a bus (for example, in MCTP, the -+ bus owner is the party responsible for managing EID assignments for -+ a given bus). A bus owner may also have additional media-specific -+ responsibilities, such as assignment of physical addresses. -+ - name: Bridge -+ description: > -+ An MCTP endpoint that can route MCTP messages not destined for -+ itself that it receives on one interconnect onto another without -+ interpreting them. The ingress and egress media at the bridge may -+ be either homogeneous or heterogeneous. Also referred to in this -+ document as a "bridge". -+ -+ - name: MessageTypes -+ values: -+ - name: MctpControl -+ - name: PLDM -+ - name: NCSI -+ - name: Ethernet -+ - name: NVMeMgmtMsg -+ - name: SPDM -+ - name: VDPCI -+ - name: VDIANA -diff --git a/xyz/openbmc_project/MCTP/Binding/PCIe.interface.yaml b/xyz/openbmc_project/MCTP/Binding/PCIe.interface.yaml -new file mode 100644 -index 0000000..1bd2881 ---- /dev/null -+++ b/xyz/openbmc_project/MCTP/Binding/PCIe.interface.yaml -@@ -0,0 +1,29 @@ -+description: > -+ Interface exposed by MCTP daemon for PCIe binding -+ -+properties: -+ - name: DiscoveredFlag -+ type: enum[self.DiscoveryFlags] -+ description: > -+ Each endpoint (except the bus owner) on the PCIe bus maintains an -+ internal flag called the Discovered flag. The flag is set to the -+ discovered state when the Set Endpoint ID command is received. -+ -+ - name: BDF -+ type: uint16 -+ description: > -+ Byte 1 [7:0] Bus number -+ Byte 2 [7:3] Device number [2:0] Function Number -+ -+enumerations: -+ - name: DiscoveryFlags -+ description: > -+ The Prepare for Endpoint Discovery message causes each recipient -+ endpoint on the PCIe bus to set their respective Discovered flag to -+ the undiscovered state. For the Prepare for Endpoint Discovery request -+ message, the routing in the physical transport header should be set to -+ 011b (Broadcast from Root Complex). -+ values: -+ - name: Discovered -+ - name: Undiscovered -+ - name: NotApplicable -diff --git a/xyz/openbmc_project/MCTP/Binding/SMBus.interface.yaml b/xyz/openbmc_project/MCTP/Binding/SMBus.interface.yaml -new file mode 100644 -index 0000000..9219ad0 ---- /dev/null -+++ b/xyz/openbmc_project/MCTP/Binding/SMBus.interface.yaml -@@ -0,0 +1,17 @@ -+description: > -+ Interface exposed by MCTP daemon for SMBus binding -+ -+properties: -+ - name: ArpMasterSupport -+ type: boolean -+ description: > -+ The SMBus binding can also run ARP Master protocol and -+ assign SMBus addresses to the devices on the bus. -+ -+ - name: BusNumber -+ type: byte -+ description: I2C bus number of the medium used -+ -+ - name: SlaveAddress -+ type: byte -+ description: Slave address to be used for this medium -diff --git a/xyz/openbmc_project/MCTP/BusOwner.interface.yaml b/xyz/openbmc_project/MCTP/BusOwner.interface.yaml -new file mode 100644 -index 0000000..d46298e ---- /dev/null -+++ b/xyz/openbmc_project/MCTP/BusOwner.interface.yaml -@@ -0,0 +1,17 @@ -+description: > -+ Interface exposed by MCTP root object, when executing in Bus Owner mode. -+ -+properties: -+ - name: EidPool -+ type: array[struct[byte, byte]] -+ description: > -+ Pool of allowed EIDs to be used. -+ EID pool of 10-100 can be specified as {{10,100}}. -+ -+ - name: TopMostBusOwner -+ type: boolean -+ description: To indicate whether BMC is topmost Bus Owner -+ -+ - name: OwnEidPool -+ type: boolean -+ description: Indicates Eid pool is managed by self -diff --git a/xyz/openbmc_project/MCTP/Endpoint.interface.yaml b/xyz/openbmc_project/MCTP/Endpoint.interface.yaml -new file mode 100644 -index 0000000..e4ba4d0 ---- /dev/null -+++ b/xyz/openbmc_project/MCTP/Endpoint.interface.yaml -@@ -0,0 +1,13 @@ -+description: -+ Interface exposed by discovered MCTP endpoints. -+ -+properties: -+ - name: Mode -+ type: enum[xyz.openbmc_project.MCTP.Base.BindingModeTypes] -+ description: Endpoint / BusOwner / Bridge -+ -+ - name: NetworkId -+ type: uint16 -+ description: > -+ MCTP network ID a unique identifier to distinguish each independent -+ MCTP network within a platform. -diff --git a/xyz/openbmc_project/MCTP/README.md b/xyz/openbmc_project/MCTP/README.md -new file mode 100644 -index 0000000..c819dbb ---- /dev/null -+++ b/xyz/openbmc_project/MCTP/README.md -@@ -0,0 +1,43 @@ -+# MCTP Daemon -+ -+## Overview -+MCTP service exposes D-Bus methods / properties / signals for managing -+MCTP devices or work as MCTP Endpoint. MCTP daemon will either -+work in Bus Owner or Endpoint mode for the specified physical medium. -+ -+### MCTP service -+MCTP service can be started either in Bus Owner mode or Endpoint mode. -+It will expose following objects. -+1. Base object -+2. MCTP Endpoints (discovered in case of Bus Owner mode, queried using -+routing table in case of Endpoint mode) -+Please refer individual yaml file for details about the -+methods / signals / properties exposed in the interfaces. -+ -+#### Base object -+Exposed under the path `/xyz/openbmc_project/mctp` with the following -+interfaces. -+1. `xyz.openbmc_project.MCTP.Base` which exposes all the common properties -+needed for MCTP Daemon. -+2. `xyz.openbmc_project.MCTP.BusOwner` available only in Bus Owner mode -+which exposes the properties needed by Bus Owner MCTP Daemon. -+3. `xyz.openbmc_project.MCTP.SupportedMessageTypes` which exposes the message -+types supported. -+4. Binding interface `xyz.openbmc_project.MCTP.Binding.PCIe` or -+`xyz.openbmc_project.MCTP.Binding.SMBus` as per the physical medium in which -+this MCTP Daemon is instantiated. -+5. Common UUID interface `xyz.openbmc_project.Common.UUID` which exposes UUID -+in RFC4122 format. -+ -+#### Endpoint object -+Exposed under the path `/xyz/openbmc_project/mctp/device/<eid>` with the -+following interfaces. -+1. `xyz.openbmc_project.MCTP.SupportedMessageTypes` which exposes supported MCTP -+message types for the discovered MCTP Endpoint. -+2. `xyz.openbmc_project.MCTP.Endpoint` which exposes properties like Network ID -+and endpoint mode (to identify Bus Owner or Bridge or Endpoint) for the discovered -+MCTP Endpoint. -+3. `xyz.openbmc_project.MCTP.Bridge` available only for discovered MCTP Bridges to -+expose properties like EID pool. (TBD) -+4. Common UUID interface `xyz.openbmc_project.Common.UUID` which exposes UUID -+in RFC4122 format. -diff --git a/xyz/openbmc_project/MCTP/SupportedMessageTypes.interface.yaml b/xyz/openbmc_project/MCTP/SupportedMessageTypes.interface.yaml -new file mode 100644 -index 0000000..fa447ee ---- /dev/null -+++ b/xyz/openbmc_project/MCTP/SupportedMessageTypes.interface.yaml -@@ -0,0 +1,36 @@ -+description: -+ Interface used to represent the supported MCTP message types. -+ This will be exposed by all MCTP endpoints. -+ -+properties: -+ - name: MctpControl -+ type: boolean -+ description: Indicates support availability -+ -+ - name: PLDM -+ type: boolean -+ description: Indicates support availability -+ -+ - name: NCSI -+ type: boolean -+ description: Indicates support availability -+ -+ - name: Ethernet -+ type: boolean -+ description: Indicates support availability -+ -+ - name: NVMeMgmtMsg -+ type: boolean -+ description: Indicates support availability -+ -+ - name: SPDM -+ type: boolean -+ description: Indicates support availability -+ -+ - name: VDPCI -+ type: boolean -+ description: Indicates support availability -+ -+ - name: VDIANA -+ type: boolean -+ description: Indicates support availability --- -2.17.1 - |