All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.