[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230717040638.1292536-1-matt@codeconstruct.com.au>
Date: Mon, 17 Jul 2023 12:06:35 +0800
From: Matt Johnston <matt@...econstruct.com.au>
To: linux-i3c@...ts.infradead.org,
netdev@...r.kernel.org,
devicetree@...r.kernel.org
Cc: "David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Jeremy Kerr <jk@...econstruct.com.au>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>
Subject: [PATCH net-next v2 0/3] I3C MCTP net driver
This series adds an I3C transport for the kernel's MCTP network
protocol. MCTP is a communication protocol between system components
(BMCs, drives, NICs etc), with higher level protocols such as NVMe-MI or
PLDM built on top of it (in userspace). It runs over various transports
such as I2C, PCIe, or I3C.
The mctp-i3c driver follows a similar approach to the kernel's existing
mctp-i2c driver, creating a "mctpi3cX" network interface for each
numbered I3C bus. Busses opt in to support by adding a "mctp-controller"
property to the devicetree:
&i3c0 {
mctp-controller;
}
The driver will bind to MCTP class devices (DCR 0xCC) that are on a
supported I3C bus. Each bus is represented by a `struct mctp_i3c_bus`
that keeps state for the network device. An individual I3C device
(struct mctp_i3c_device) performs operations using the "parent"
mctp_i3c_bus object. The I3C notify/enumeration patch is needed so that
the mctp-i3c driver can handle creating/removing mctp_i3c_bus objects as
required.
The mctp-i3c driver is using the Provisioned ID as an identifier for
target I3C devices (the neighbour address), as that will be more stable
than the I3C dynamic address. The driver internally translates that to a
dynamic address for bus operations.
The driver has been tested using an AST2600 platform. A remote endpoint
has been tested against Qemu, as well as using the target mode support
in Aspeed's vendor tree.
I've rebased to net-next since that is the faster moving tree. If I3C
maintainers would prefer I can submit the I3C bus enumeration patch
by itself and let it take another cycle to get into net-next, though
it wouldn't have any in-tree user. I'll leave that to maintainers.
Thanks,
Matt
---
v2:
- Rebased to net-next
- Removed unnecessary pr_ printing
- Fixed reverse christmas tree ordering
- Reworded DT property description to match I2C
Jeremy Kerr (1):
i3c: Add support for bus enumeration & notification
Matt Johnston (2):
dt-bindings: i3c: Add mctp-controller property
mctp i3c: MCTP I3C driver
.../devicetree/bindings/i3c/i3c.yaml | 6 +
drivers/i3c/master.c | 35 +
drivers/net/mctp/Kconfig | 9 +
drivers/net/mctp/Makefile | 1 +
drivers/net/mctp/mctp-i3c.c | 777 ++++++++++++++++++
include/linux/i3c/master.h | 11 +
6 files changed, 839 insertions(+)
create mode 100644 drivers/net/mctp/mctp-i3c.c
--
2.37.2
Powered by blists - more mailing lists