* Access Intel ME IPMB from BMC @ 2020-04-19 1:45 Oskar Senft 2020-04-20 2:07 ` CS20 CHMa0 2020-04-20 18:12 ` Vijay Khemka 0 siblings, 2 replies; 13+ messages in thread From: Oskar Senft @ 2020-04-19 1:45 UTC (permalink / raw) To: OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 497 bytes --] Hi everyone I'm trying to find out how I can access the Intel ME via IPMB from the BMC (OpenBMC). From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this is connected to one of the SMBus modules on my AST2500. But what I can't find out is how I actually send commands there? I'm sure I'm missing a document that makes this obvious. Or is it as simple as dropping IPMI packets onto the bus? Is this by any chance already implemented in OpenBMC? Thanks for any hints! Oskar [-- Attachment #2: Type: text/html, Size: 699 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: Access Intel ME IPMB from BMC 2020-04-19 1:45 Access Intel ME IPMB from BMC Oskar Senft @ 2020-04-20 2:07 ` CS20 CHMa0 2020-04-20 18:12 ` Vijay Khemka 1 sibling, 0 replies; 13+ messages in thread From: CS20 CHMa0 @ 2020-04-20 2:07 UTC (permalink / raw) To: Oskar Senft, OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 1833 bytes --] Hi Oskar, You can reference Intel node manager for send IPMB command example. https://github.com/Intel-BMC/node-manager/blob/master/NodeManagerProxy.cpp And you can get more information about how IPMB work by following link: https://github.com/Nuvoton-Israel/openbmc/tree/runbmc/meta-quanta/meta-olympus-nuvoton#host-power-budget-control Thanks, Brian From: openbmc [mailto:openbmc-bounces+chma0=nuvoton.com@lists.ozlabs.org] On Behalf Of Oskar Senft Sent: Sunday, April 19, 2020 9:45 AM To: OpenBMC Maillist <openbmc@lists.ozlabs.org> Subject: Access Intel ME IPMB from BMC Hi everyone I'm trying to find out how I can access the Intel ME via IPMB from the BMC (OpenBMC). From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this is connected to one of the SMBus modules on my AST2500. But what I can't find out is how I actually send commands there? I'm sure I'm missing a document that makes this obvious. Or is it as simple as dropping IPMI packets onto the bus? Is this by any chance already implemented in OpenBMC? Thanks for any hints! Oskar ________________________________ The privileged confidential information contained in this email is intended for use only by the addressees as indicated by the original sender of this email. If you are not the addressee indicated in this email or are not responsible for delivery of the email to such a person, please kindly reply to the sender indicating this fact and delete all copies of it from your computer and network server immediately. Your cooperation is highly appreciated. It is advised that any unauthorized use of confidential information of Nuvoton is strictly prohibited; and any information in this email irrelevant to the official business of Nuvoton shall be deemed as neither given nor endorsed by Nuvoton. [-- Attachment #2: Type: text/html, Size: 6380 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-19 1:45 Access Intel ME IPMB from BMC Oskar Senft 2020-04-20 2:07 ` CS20 CHMa0 @ 2020-04-20 18:12 ` Vijay Khemka 2020-04-20 18:34 ` Oskar Senft 1 sibling, 1 reply; 13+ messages in thread From: Vijay Khemka @ 2020-04-20 18:12 UTC (permalink / raw) To: Oskar Senft, OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 1210 bytes --] Hi Oskar, You need to configure your ME channel in ipmb channel config file https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json And make sure ipmbbridge is running. Then you can send get device id command to ME from command line itself to test if everything is working. busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay 1 6 0 0x1 0 Regards -Vijay From: openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on behalf of Oskar Senft <osk@google.com> Date: Saturday, April 18, 2020 at 6:47 PM To: OpenBMC Maillist <openbmc@lists.ozlabs.org> Subject: Access Intel ME IPMB from BMC Hi everyone I'm trying to find out how I can access the Intel ME via IPMB from the BMC (OpenBMC). From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this is connected to one of the SMBus modules on my AST2500. But what I can't find out is how I actually send commands there? I'm sure I'm missing a document that makes this obvious. Or is it as simple as dropping IPMI packets onto the bus? Is this by any chance already implemented in OpenBMC? Thanks for any hints! Oskar [-- Attachment #2: Type: text/html, Size: 4182 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-20 18:12 ` Vijay Khemka @ 2020-04-20 18:34 ` Oskar Senft 2020-04-20 19:12 ` Anton Kachalov 2020-04-20 20:34 ` Vijay Khemka 0 siblings, 2 replies; 13+ messages in thread From: Oskar Senft @ 2020-04-20 18:34 UTC (permalink / raw) To: Vijay Khemka; +Cc: OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 1664 bytes --] Hi Vijay Thanks for the pointer! I also found both https://github.com/Mellanox/ipmb-host and https://github.com/openbmc/linux/blob/dev-5.4/drivers/char/ipmi/ipmb_dev_int.c . Is it right that with ipmbbridge I don't need either of them since ipmbbridge uses the raw i2c dev? Thanks Oskar. On Mon, Apr 20, 2020 at 2:12 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > Hi Oskar, > > You need to configure your ME channel in ipmb channel config file > https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json > > And make sure ipmbbridge is running. Then you can send get device id > command to ME from command line itself to test if everything is working. > > > > busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb > /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay > 1 6 0 0x1 0 > > > > Regards > > -Vijay > > > > *From: *openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on > behalf of Oskar Senft <osk@google.com> > *Date: *Saturday, April 18, 2020 at 6:47 PM > *To: *OpenBMC Maillist <openbmc@lists.ozlabs.org> > *Subject: *Access Intel ME IPMB from BMC > > > > Hi everyone > > > > I'm trying to find out how I can access the Intel ME via IPMB from the BMC > (OpenBMC). > > > > From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this > is connected to one of the SMBus modules on my AST2500. But what I can't > find out is how I actually send commands there? I'm sure I'm missing a > document that makes this obvious. > > > > Or is it as simple as dropping IPMI packets onto the bus? > > > > Is this by any chance already implemented in OpenBMC? > > > > Thanks for any hints! > > > > Oskar > [-- Attachment #2: Type: text/html, Size: 4113 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-20 18:34 ` Oskar Senft @ 2020-04-20 19:12 ` Anton Kachalov 2020-04-20 20:34 ` Vijay Khemka 1 sibling, 0 replies; 13+ messages in thread From: Anton Kachalov @ 2020-04-20 19:12 UTC (permalink / raw) To: Oskar Senft; +Cc: Vijay Khemka, OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 2232 bytes --] ipmbbridge works over ipmb-dev: https://github.com/openbmc/ipmbbridge/blob/master/ipmbbridged.cpp#L548 Seems like the difference between ipmb-dev and ipmb-host is the only way they act: as an IPMB device (receive requests and sends answers) or as an initiator (sends requests and receives answers). Perhaps, the upstreamed ipmb-dev works in either way (technically, the difference only in send/receive order). On Mon, 20 Apr 2020 at 20:35, Oskar Senft <osk@google.com> wrote: > Hi Vijay > > Thanks for the pointer! > > I also found both https://github.com/Mellanox/ipmb-host and > https://github.com/openbmc/linux/blob/dev-5.4/drivers/char/ipmi/ipmb_dev_int.c > . > > Is it right that with ipmbbridge I don't need either of them since > ipmbbridge uses the raw i2c dev? > > Thanks > Oskar. > > On Mon, Apr 20, 2020 at 2:12 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > >> Hi Oskar, >> >> You need to configure your ME channel in ipmb channel config file >> https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json >> >> And make sure ipmbbridge is running. Then you can send get device id >> command to ME from command line itself to test if everything is working. >> >> >> >> busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb >> /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay >> 1 6 0 0x1 0 >> >> >> >> Regards >> >> -Vijay >> >> >> >> *From: *openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on >> behalf of Oskar Senft <osk@google.com> >> *Date: *Saturday, April 18, 2020 at 6:47 PM >> *To: *OpenBMC Maillist <openbmc@lists.ozlabs.org> >> *Subject: *Access Intel ME IPMB from BMC >> >> >> >> Hi everyone >> >> >> >> I'm trying to find out how I can access the Intel ME via IPMB from the >> BMC (OpenBMC). >> >> >> >> From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know >> this is connected to one of the SMBus modules on my AST2500. But what I >> can't find out is how I actually send commands there? I'm sure I'm missing >> a document that makes this obvious. >> >> >> >> Or is it as simple as dropping IPMI packets onto the bus? >> >> >> >> Is this by any chance already implemented in OpenBMC? >> >> >> >> Thanks for any hints! >> >> >> >> Oskar >> > [-- Attachment #2: Type: text/html, Size: 4864 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-20 18:34 ` Oskar Senft 2020-04-20 19:12 ` Anton Kachalov @ 2020-04-20 20:34 ` Vijay Khemka 2020-04-23 15:31 ` Oskar Senft 1 sibling, 1 reply; 13+ messages in thread From: Vijay Khemka @ 2020-04-20 20:34 UTC (permalink / raw) To: Oskar Senft; +Cc: OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 2089 bytes --] Hi Oskar, You need to use ipmb-dev driver which is is being used by ipmbbridge. You don’t need ipmb-host as we are having ipmbbridge to replace that. Regards -Vijay From: Oskar Senft <osk@google.com> Date: Monday, April 20, 2020 at 11:35 AM To: Vijay Khemka <vijaykhemka@fb.com> Cc: OpenBMC Maillist <openbmc@lists.ozlabs.org> Subject: Re: Access Intel ME IPMB from BMC Hi Vijay Thanks for the pointer! I also found both https://github.com/Mellanox/ipmb-host and https://github.com/openbmc/linux/blob/dev-5.4/drivers/char/ipmi/ipmb_dev_int.c. Is it right that with ipmbbridge I don't need either of them since ipmbbridge uses the raw i2c dev? Thanks Oskar. On Mon, Apr 20, 2020 at 2:12 PM Vijay Khemka <vijaykhemka@fb.com<mailto:vijaykhemka@fb.com>> wrote: Hi Oskar, You need to configure your ME channel in ipmb channel config file https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json And make sure ipmbbridge is running. Then you can send get device id command to ME from command line itself to test if everything is working. busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay 1 6 0 0x1 0 Regards -Vijay From: openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org<mailto:fb.com@lists.ozlabs.org>> on behalf of Oskar Senft <osk@google.com<mailto:osk@google.com>> Date: Saturday, April 18, 2020 at 6:47 PM To: OpenBMC Maillist <openbmc@lists.ozlabs.org<mailto:openbmc@lists.ozlabs.org>> Subject: Access Intel ME IPMB from BMC Hi everyone I'm trying to find out how I can access the Intel ME via IPMB from the BMC (OpenBMC). From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this is connected to one of the SMBus modules on my AST2500. But what I can't find out is how I actually send commands there? I'm sure I'm missing a document that makes this obvious. Or is it as simple as dropping IPMI packets onto the bus? Is this by any chance already implemented in OpenBMC? Thanks for any hints! Oskar [-- Attachment #2: Type: text/html, Size: 8298 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-20 20:34 ` Vijay Khemka @ 2020-04-23 15:31 ` Oskar Senft 2020-04-23 15:34 ` Oskar Senft 0 siblings, 1 reply; 13+ messages in thread From: Oskar Senft @ 2020-04-23 15:31 UTC (permalink / raw) To: Vijay Khemka; +Cc: OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 2970 bytes --] Thanks again! ipmbbridge solved my problem. I found that my version of OpenBMC (incl. kernel) used a slightly older version of ipmbbridge which still used the i2c slave mqueue, which worked fine. Reading a bit of source code made it clear how it worked. The key is to configure ipbm-channels.json with the correct i2c device and the rest "just works". For the benefit of others: My understanding is that the current version of ipmbbridge no longer uses the i2c slave mqueue but requires the ipmb-dev driver in the kernel. It's not necessary to actually attach the driver to an i2c device as that can happen at runtime. Oskar. On Mon, Apr 20, 2020 at 4:34 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > Hi Oskar, > > You need to use ipmb-dev driver which is is being used by ipmbbridge. You > don’t need ipmb-host as we are having ipmbbridge to replace that. > > > > Regards > > -Vijay > > > > *From: *Oskar Senft <osk@google.com> > *Date: *Monday, April 20, 2020 at 11:35 AM > *To: *Vijay Khemka <vijaykhemka@fb.com> > *Cc: *OpenBMC Maillist <openbmc@lists.ozlabs.org> > *Subject: *Re: Access Intel ME IPMB from BMC > > > > Hi Vijay > > > > Thanks for the pointer! > > > > I also found both https://github.com/Mellanox/ipmb-host and > https://github.com/openbmc/linux/blob/dev-5.4/drivers/char/ipmi/ipmb_dev_int.c > . > > > > Is it right that with ipmbbridge I don't need either of them since > ipmbbridge uses the raw i2c dev? > > > > Thanks > > Oskar. > > > > On Mon, Apr 20, 2020 at 2:12 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > > Hi Oskar, > > You need to configure your ME channel in ipmb channel config file > https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json > > And make sure ipmbbridge is running. Then you can send get device id > command to ME from command line itself to test if everything is working. > > > > busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb > /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay > 1 6 0 0x1 0 > > > > Regards > > -Vijay > > > > *From: *openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on > behalf of Oskar Senft <osk@google.com> > *Date: *Saturday, April 18, 2020 at 6:47 PM > *To: *OpenBMC Maillist <openbmc@lists.ozlabs.org> > *Subject: *Access Intel ME IPMB from BMC > > > > Hi everyone > > > > I'm trying to find out how I can access the Intel ME via IPMB from the BMC > (OpenBMC). > > > > From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this > is connected to one of the SMBus modules on my AST2500. But what I can't > find out is how I actually send commands there? I'm sure I'm missing a > document that makes this obvious. > > > > Or is it as simple as dropping IPMI packets onto the bus? > > > > Is this by any chance already implemented in OpenBMC? > > > > Thanks for any hints! > > > > Oskar > > [-- Attachment #2: Type: text/html, Size: 6835 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-23 15:31 ` Oskar Senft @ 2020-04-23 15:34 ` Oskar Senft 2020-04-23 18:59 ` Vijay Khemka 0 siblings, 1 reply; 13+ messages in thread From: Oskar Senft @ 2020-04-23 15:34 UTC (permalink / raw) To: Vijay Khemka; +Cc: OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 3547 bytes --] On a side note regarding the ipmb-dev driver: It seems that the Documentation/IPMB.txt has gotten "lost". The only version I could find is this: https://github.com/openbmc/linux/blob/51bd6f291583684f495ea498984dfc22049d7fd2/Documentation/IPMB.txt. But it's not in any of the recent branches (dev-5.3 or dev-5.4). Should this file be resurrected? Oskar. On Thu, Apr 23, 2020 at 11:31 AM Oskar Senft <osk@google.com> wrote: > Thanks again! > > ipmbbridge solved my problem. I found that my version of OpenBMC (incl. > kernel) used a slightly older version of ipmbbridge which still used the > i2c slave mqueue, which worked fine. Reading a bit of source code made it > clear how it worked. The key is to configure ipbm-channels.json with the > correct i2c device and the rest "just works". > > For the benefit of others: My understanding is that the current version of > ipmbbridge no longer uses the i2c slave mqueue but requires the ipmb-dev > driver in the kernel. It's not necessary to actually attach the driver to > an i2c device as that can happen at runtime. > > Oskar. > > > On Mon, Apr 20, 2020 at 4:34 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > >> Hi Oskar, >> >> You need to use ipmb-dev driver which is is being used by ipmbbridge. You >> don’t need ipmb-host as we are having ipmbbridge to replace that. >> >> >> >> Regards >> >> -Vijay >> >> >> >> *From: *Oskar Senft <osk@google.com> >> *Date: *Monday, April 20, 2020 at 11:35 AM >> *To: *Vijay Khemka <vijaykhemka@fb.com> >> *Cc: *OpenBMC Maillist <openbmc@lists.ozlabs.org> >> *Subject: *Re: Access Intel ME IPMB from BMC >> >> >> >> Hi Vijay >> >> >> >> Thanks for the pointer! >> >> >> >> I also found both https://github.com/Mellanox/ipmb-host and >> https://github.com/openbmc/linux/blob/dev-5.4/drivers/char/ipmi/ipmb_dev_int.c >> . >> >> >> >> Is it right that with ipmbbridge I don't need either of them since >> ipmbbridge uses the raw i2c dev? >> >> >> >> Thanks >> >> Oskar. >> >> >> >> On Mon, Apr 20, 2020 at 2:12 PM Vijay Khemka <vijaykhemka@fb.com> wrote: >> >> Hi Oskar, >> >> You need to configure your ME channel in ipmb channel config file >> https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json >> >> And make sure ipmbbridge is running. Then you can send get device id >> command to ME from command line itself to test if everything is working. >> >> >> >> busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb >> /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay >> 1 6 0 0x1 0 >> >> >> >> Regards >> >> -Vijay >> >> >> >> *From: *openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on >> behalf of Oskar Senft <osk@google.com> >> *Date: *Saturday, April 18, 2020 at 6:47 PM >> *To: *OpenBMC Maillist <openbmc@lists.ozlabs.org> >> *Subject: *Access Intel ME IPMB from BMC >> >> >> >> Hi everyone >> >> >> >> I'm trying to find out how I can access the Intel ME via IPMB from the >> BMC (OpenBMC). >> >> >> >> From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know >> this is connected to one of the SMBus modules on my AST2500. But what I >> can't find out is how I actually send commands there? I'm sure I'm missing >> a document that makes this obvious. >> >> >> >> Or is it as simple as dropping IPMI packets onto the bus? >> >> >> >> Is this by any chance already implemented in OpenBMC? >> >> >> >> Thanks for any hints! >> >> >> >> Oskar >> >> [-- Attachment #2: Type: text/html, Size: 7741 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-23 15:34 ` Oskar Senft @ 2020-04-23 18:59 ` Vijay Khemka 2020-04-23 20:50 ` Oskar Senft 2020-04-23 21:00 ` James Feist 0 siblings, 2 replies; 13+ messages in thread From: Vijay Khemka @ 2020-04-23 18:59 UTC (permalink / raw) To: Oskar Senft; +Cc: OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 3922 bytes --] As i2c slave mqueue driver is not upstreamed and with already having same functionality in ipmb-dev driver which is already in uostream kernel, I don’t see any reason to use i2c slave mqueue driver. I highly incourage people to use ipmb-dev driver with latest ipmbbridge. If there are any issues, please let us know. Regards -Vijay From: Oskar Senft <osk@google.com> Date: Thursday, April 23, 2020 at 8:34 AM To: Vijay Khemka <vijaykhemka@fb.com> Cc: OpenBMC Maillist <openbmc@lists.ozlabs.org> Subject: Re: Access Intel ME IPMB from BMC On a side note regarding the ipmb-dev driver: It seems that the Documentation/IPMB.txt has gotten "lost". The only version I could find is this: https://github.com/openbmc/linux/blob/51bd6f291583684f495ea498984dfc22049d7fd2/Documentation/IPMB.txt. But it's not in any of the recent branches (dev-5.3 or dev-5.4). Should this file be resurrected? Oskar. On Thu, Apr 23, 2020 at 11:31 AM Oskar Senft <osk@google.com<mailto:osk@google.com>> wrote: Thanks again! ipmbbridge solved my problem. I found that my version of OpenBMC (incl. kernel) used a slightly older version of ipmbbridge which still used the i2c slave mqueue, which worked fine. Reading a bit of source code made it clear how it worked. The key is to configure ipbm-channels.json with the correct i2c device and the rest "just works". For the benefit of others: My understanding is that the current version of ipmbbridge no longer uses the i2c slave mqueue but requires the ipmb-dev driver in the kernel. It's not necessary to actually attach the driver to an i2c device as that can happen at runtime. Oskar. On Mon, Apr 20, 2020 at 4:34 PM Vijay Khemka <vijaykhemka@fb.com<mailto:vijaykhemka@fb.com>> wrote: Hi Oskar, You need to use ipmb-dev driver which is is being used by ipmbbridge. You don’t need ipmb-host as we are having ipmbbridge to replace that. Regards -Vijay From: Oskar Senft <osk@google.com<mailto:osk@google.com>> Date: Monday, April 20, 2020 at 11:35 AM To: Vijay Khemka <vijaykhemka@fb.com<mailto:vijaykhemka@fb.com>> Cc: OpenBMC Maillist <openbmc@lists.ozlabs.org<mailto:openbmc@lists.ozlabs.org>> Subject: Re: Access Intel ME IPMB from BMC Hi Vijay Thanks for the pointer! I also found both https://github.com/Mellanox/ipmb-host and https://github.com/openbmc/linux/blob/dev-5.4/drivers/char/ipmi/ipmb_dev_int.c. Is it right that with ipmbbridge I don't need either of them since ipmbbridge uses the raw i2c dev? Thanks Oskar. On Mon, Apr 20, 2020 at 2:12 PM Vijay Khemka <vijaykhemka@fb.com<mailto:vijaykhemka@fb.com>> wrote: Hi Oskar, You need to configure your ME channel in ipmb channel config file https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json And make sure ipmbbridge is running. Then you can send get device id command to ME from command line itself to test if everything is working. busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay 1 6 0 0x1 0 Regards -Vijay From: openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org<mailto:fb.com@lists.ozlabs.org>> on behalf of Oskar Senft <osk@google.com<mailto:osk@google.com>> Date: Saturday, April 18, 2020 at 6:47 PM To: OpenBMC Maillist <openbmc@lists.ozlabs.org<mailto:openbmc@lists.ozlabs.org>> Subject: Access Intel ME IPMB from BMC Hi everyone I'm trying to find out how I can access the Intel ME via IPMB from the BMC (OpenBMC). From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this is connected to one of the SMBus modules on my AST2500. But what I can't find out is how I actually send commands there? I'm sure I'm missing a document that makes this obvious. Or is it as simple as dropping IPMI packets onto the bus? Is this by any chance already implemented in OpenBMC? Thanks for any hints! Oskar [-- Attachment #2: Type: text/html, Size: 12960 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-23 18:59 ` Vijay Khemka @ 2020-04-23 20:50 ` Oskar Senft 2020-04-23 21:00 ` James Feist 1 sibling, 0 replies; 13+ messages in thread From: Oskar Senft @ 2020-04-23 20:50 UTC (permalink / raw) To: Vijay Khemka, johnathanx.mantey; +Cc: OpenBMC Maillist [-- Attachment #1: Type: text/plain, Size: 5638 bytes --] Thanks for the explanation. I could test what I needed to test on an Intel C620 based platform. Specifically I'm trying to run a board in eSPI + SAFS mode. SAFS is "Slave Attached Flash Sharing" where the PCH loads all of its firmware (ME, GbE, BIOS etc) via eSPI, e.g. from a BMC. See Intel document 329957 ("Enhanced Serial Peripheral Interface (eSPI) - Addendum for Server Platforms") from https://downloadcenter.intel.com/download/27055/eSPI for reference. However, even though the PCH (C620 series) reads quite a lot of data via SAFS, the ME doesn't release the CPU and the host wouldn't turn on. I had hoped that this is just the result of not having FDRV (aka. FD0V) enabled in the PCH. In that case the ME should have responded to IPMB and reported such. But the ME doesn't respond at all on i2c in SAFS mode (checked via logic analyzer), so I'm at a loss of what's wrong with it. In MAFS mode (i.e. when using SPI flash for the PCH), the IPMB works as expected, so I know my setup is correct and it's actually the ME being unhappy in SAFS mode. I tried with ME in both "operational" and "recovery" mode. I do see different behavior in that the ME in "recovery" mode completely rewrites the MFS section, so "something" must actually be running in the ME. I guess the only other thing I haven't tried is to compare SAFS operations with SPI operations (MAFS) to see what else it would be doing on SPI. Oskar. On Thu, Apr 23, 2020 at 2:59 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > As i2c slave mqueue driver is not upstreamed and with already having same > functionality in ipmb-dev driver which is already in uostream kernel, I > don’t see any reason to use i2c slave mqueue driver. I highly incourage > people to use ipmb-dev driver with latest ipmbbridge. If there are any > issues, please let us know. > > > > Regards > > -Vijay > > > > *From: *Oskar Senft <osk@google.com> > *Date: *Thursday, April 23, 2020 at 8:34 AM > *To: *Vijay Khemka <vijaykhemka@fb.com> > *Cc: *OpenBMC Maillist <openbmc@lists.ozlabs.org> > *Subject: *Re: Access Intel ME IPMB from BMC > > > > On a side note regarding the ipmb-dev driver: It seems that the > Documentation/IPMB.txt has gotten "lost". The only version I could find is > this: > https://github.com/openbmc/linux/blob/51bd6f291583684f495ea498984dfc22049d7fd2/Documentation/IPMB.txt. > But it's not in any of the recent branches (dev-5.3 or dev-5.4). > > > > Should this file be resurrected? > > > > Oskar. > > > > On Thu, Apr 23, 2020 at 11:31 AM Oskar Senft <osk@google.com> wrote: > > Thanks again! > > > > ipmbbridge solved my problem. I found that my version of OpenBMC (incl. > kernel) used a slightly older version of ipmbbridge which still used the > i2c slave mqueue, which worked fine. Reading a bit of source code made it > clear how it worked. The key is to configure ipbm-channels.json with the > correct i2c device and the rest "just works". > > > > For the benefit of others: My understanding is that the current version of > ipmbbridge no longer uses the i2c slave mqueue but requires the ipmb-dev > driver in the kernel. It's not necessary to actually attach the driver to > an i2c device as that can happen at runtime. > > > > Oskar. > > > > > > On Mon, Apr 20, 2020 at 4:34 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > > Hi Oskar, > > You need to use ipmb-dev driver which is is being used by ipmbbridge. You > don’t need ipmb-host as we are having ipmbbridge to replace that. > > > > Regards > > -Vijay > > > > *From: *Oskar Senft <osk@google.com> > *Date: *Monday, April 20, 2020 at 11:35 AM > *To: *Vijay Khemka <vijaykhemka@fb.com> > *Cc: *OpenBMC Maillist <openbmc@lists.ozlabs.org> > *Subject: *Re: Access Intel ME IPMB from BMC > > > > Hi Vijay > > > > Thanks for the pointer! > > > > I also found both https://github.com/Mellanox/ipmb-host and > https://github.com/openbmc/linux/blob/dev-5.4/drivers/char/ipmi/ipmb_dev_int.c > . > > > > Is it right that with ipmbbridge I don't need either of them since > ipmbbridge uses the raw i2c dev? > > > > Thanks > > Oskar. > > > > On Mon, Apr 20, 2020 at 2:12 PM Vijay Khemka <vijaykhemka@fb.com> wrote: > > Hi Oskar, > > You need to configure your ME channel in ipmb channel config file > https://github.com/openbmc/ipmbbridge/blob/master/ipmb-channels.json > > And make sure ipmbbridge is running. Then you can send get device id > command to ME from command line itself to test if everything is working. > > > > busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb > /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest yyyyay > 1 6 0 0x1 0 > > > > Regards > > -Vijay > > > > *From: *openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on > behalf of Oskar Senft <osk@google.com> > *Date: *Saturday, April 18, 2020 at 6:47 PM > *To: *OpenBMC Maillist <openbmc@lists.ozlabs.org> > *Subject: *Access Intel ME IPMB from BMC > > > > Hi everyone > > > > I'm trying to find out how I can access the Intel ME via IPMB from the BMC > (OpenBMC). > > > > From what I gathered, Intel ME's IPMB is on the PCH's SMLink0. I know this > is connected to one of the SMBus modules on my AST2500. But what I can't > find out is how I actually send commands there? I'm sure I'm missing a > document that makes this obvious. > > > > Or is it as simple as dropping IPMI packets onto the bus? > > > > Is this by any chance already implemented in OpenBMC? > > > > Thanks for any hints! > > > > Oskar > > [-- Attachment #2: Type: text/html, Size: 11863 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-23 18:59 ` Vijay Khemka 2020-04-23 20:50 ` Oskar Senft @ 2020-04-23 21:00 ` James Feist 2020-04-23 23:10 ` Vijay Khemka 1 sibling, 1 reply; 13+ messages in thread From: James Feist @ 2020-04-23 21:00 UTC (permalink / raw) To: Vijay Khemka, Oskar Senft; +Cc: OpenBMC Maillist On 4/23/2020 11:59 AM, Vijay Khemka wrote: > As i2c slave mqueue driver is not upstreamed and with already having > same functionality in ipmb-dev driver which is already in uostream > kernel, I don’t see any reason to use i2c slave mqueue driver. I highly > incourage people to use ipmb-dev driver with latest ipmbbridge. If there > are any issues, please let us know. One issue we ran into is having MCTP and IPMB on the same bus. IPMB driver can't handle MCTP traffic, where the mqueue could handle both. Kernel also doesn't allow multiple slave addresses on one bus. Haven't found a good solution to this one yet. > > Regards > > -Vijay > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-23 21:00 ` James Feist @ 2020-04-23 23:10 ` Vijay Khemka 2020-04-24 18:49 ` James Feist 0 siblings, 1 reply; 13+ messages in thread From: Vijay Khemka @ 2020-04-23 23:10 UTC (permalink / raw) To: James Feist, Oskar Senft; +Cc: OpenBMC Maillist On 4/23/20, 2:00 PM, "James Feist" <james.feist@linux.intel.com> wrote: On 4/23/2020 11:59 AM, Vijay Khemka wrote: > As i2c slave mqueue driver is not upstreamed and with already having > same functionality in ipmb-dev driver which is already in uostream > kernel, I don’t see any reason to use i2c slave mqueue driver. I highly > incourage people to use ipmb-dev driver with latest ipmbbridge. If there > are any issues, please let us know. One issue we ran into is having MCTP and IPMB on the same bus. IPMB driver can't handle MCTP traffic, where the mqueue could handle both. Kernel also doesn't allow multiple slave addresses on one bus. Haven't found a good solution to this one yet. I don't see much difference in mqueue and ipmb driver code wise. If something has changed in current mqueue driver to support mctp traffic then we should try to add these in ipmb driver as well. I can't comment much as I have not seen current mqueue driver. > > Regards > > -Vijay > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Access Intel ME IPMB from BMC 2020-04-23 23:10 ` Vijay Khemka @ 2020-04-24 18:49 ` James Feist 0 siblings, 0 replies; 13+ messages in thread From: James Feist @ 2020-04-24 18:49 UTC (permalink / raw) To: Vijay Khemka, Oskar Senft; +Cc: OpenBMC Maillist On 4/23/2020 4:10 PM, Vijay Khemka wrote: > > > On 4/23/20, 2:00 PM, "James Feist" <james.feist@linux.intel.com> wrote: > > On 4/23/2020 11:59 AM, Vijay Khemka wrote: > > As i2c slave mqueue driver is not upstreamed and with already having > > same functionality in ipmb-dev driver which is already in uostream > > kernel, I don’t see any reason to use i2c slave mqueue driver. I highly > > incourage people to use ipmb-dev driver with latest ipmbbridge. If there > > are any issues, please let us know. > > One issue we ran into is having MCTP and IPMB on the same bus. IPMB > driver can't handle MCTP traffic, where the mqueue could handle both. > Kernel also doesn't allow multiple slave addresses on one bus. Haven't > found a good solution to this one yet. > > I don't see much difference in mqueue and ipmb driver code wise. If > something has changed in current mqueue driver to support mctp traffic > then we should try to add these in ipmb driver as well. > > I can't comment much as I have not seen current mqueue driver. mqueue is protocol agnostic and allows userspace to handle the protocol. Nothing changed with it. It's a difference in design. > > > > > Regards > > > > -Vijay > > > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-04-24 18:49 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-04-19 1:45 Access Intel ME IPMB from BMC Oskar Senft 2020-04-20 2:07 ` CS20 CHMa0 2020-04-20 18:12 ` Vijay Khemka 2020-04-20 18:34 ` Oskar Senft 2020-04-20 19:12 ` Anton Kachalov 2020-04-20 20:34 ` Vijay Khemka 2020-04-23 15:31 ` Oskar Senft 2020-04-23 15:34 ` Oskar Senft 2020-04-23 18:59 ` Vijay Khemka 2020-04-23 20:50 ` Oskar Senft 2020-04-23 21:00 ` James Feist 2020-04-23 23:10 ` Vijay Khemka 2020-04-24 18:49 ` James Feist
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.