[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RFC 2/3] hw/i2c: add mctp core
From: |
Matt Johnston |
Subject: |
Re: [PATCH RFC 2/3] hw/i2c: add mctp core |
Date: |
Mon, 21 Nov 2022 16:04:45 +0800 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Fri, Nov 18, 2022 at 08:01:40AM +0100, Klaus Jensen wrote:
> On Nov 18 13:56, Jeremy Kerr wrote:
> > Hi Klaus,
> >
> > > Add an abstract MCTP over I2C endpoint model. This implements MCTP
> > > control message handling as well as handling the actual I2C transport
> > > (packetization).
> > >
> > With those changes, I can get control protocol going, and multi-packet
> > messages work. There's a couple of failures from unsupported commands,
> > but otherwise looks good:
> >
> > # mctp addr add 8 dev mctpi2c6
> > # mctp link set mctpi2c6 up
> > # mctp link set mctpi2c6 mtu 254
> > # systemctl restart mctpd
> > # busctl --no-pager call xyz.openbmc_project.MCTP \
> > /xyz/openbmc_project/mctp au.com.CodeConstruct.MCTP \
> > SetupEndpoint say mctpi2c6 1 0x1d
Hi Klaus,
Thanks for the MCTP model, it's useful here.
I needed the following patch to be able to call SetupEndpoint again when a
device has already been assigned an EID. That tries a Set Endpoint ID/
Get Endpoint ID, addressed to EID 0.
Cheers,
Matt
---
>From cb7ad91474367f8e47bdaf03aba9a822f2648f41 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@codeconstruct.com.au>
Date: Mon, 21 Nov 2022 15:10:13 +0800
Subject: [PATCH] i2c/mctp: Allow receiving messages to dest eid 0
The Null Destination ID, 0, is used for MCTP control messages when
addressing by physical ID. That is used for Get Endpoint ID and
Set Endpoint ID when querying/assigning an EID to an endpoint.
Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
---
hw/i2c/mctp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/i2c/mctp.c b/hw/i2c/mctp.c
index 1775deb46f..9d9e519ba9 100644
--- a/hw/i2c/mctp.c
+++ b/hw/i2c/mctp.c
@@ -258,7 +258,8 @@ static int i2c_mctp_event_cb(I2CSlave *i2c, enum i2c_event
event)
goto drop;
}
- if (pkt->mctp.hdr.eid.dest != mctp->my_eid) {
+ if (!(pkt->mctp.hdr.eid.dest == mctp->my_eid
+ || pkt->mctp.hdr.eid.dest == 0)) {
trace_i2c_mctp_drop_invalid_eid(pkt->mctp.hdr.eid.dest,
mctp->my_eid);
goto drop;
--
2.37.2
- Re: [PATCH maybe-7.2 1/3] hw/i2c: only schedule pending master when bus is idle, (continued)
[PATCH RFC 3/3] hw/nvme: add nvme management interface model, Klaus Jensen, 2022/11/16
Re: [PATCH 0/3] hw/{i2c,nvme}: mctp endpoint, nvme management interface model, Jeremy Kerr, 2022/11/16