All of lore.kernel.org
 help / color / mirror / Atom feed
* IPMI implementation of Get Device ID command
@ 2020-08-14 17:34 TOM JOSEPH
  2020-08-14 21:48 ` Patrick Williams
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: TOM JOSEPH @ 2020-08-14 17:34 UTC (permalink / raw)
  To: OpenBMC Maillist, OpenBMC Maillist, anoo
  Cc: benjaminfair, Mauery, Vernon, Brad Bishop

[-- Attachment #1: Type: text/plain, Size: 1390 bytes --]

Hello,

We have an implementation of this command 
https://github.com/openbmc/phosphor-host-ipmid/blob/master/apphandler.cpp#L571 
. The current version of the code derives the major and minor firmware 
revision from the VERSION_ID field, and the auxiliary firmware revision 
is picked from dev_id.json. The auxiliary firmware revision is populated 
at build time 
https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend.

The implementation of the code is obsolete, as it was based on an 
earlier format. The current format of VERSION_ID for example is, 
2.9.0-dev-609-g56f86d23c. There is already a WIP patch to fix this for 
the master tag format 
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893. 
<https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893>

IBM tagging format is different from the tag format of master builds. 
One choice is to have the major and minor version added to the 
dev_id.json and if the format of VERSION_ID does not match the master 
tag format,  pick from the json.

How are other companies converting their arbitrary tag formats to IPMI 
firmware revision fields? Does every company maintain their own 
downstream implementation of this command?

Is a common code possible for converting arbitrary tag formats to IPMI 
firmware revision fields?

Regards,
Tom



[-- Attachment #2: Type: text/html, Size: 1920 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-08-14 17:34 IPMI implementation of Get Device ID command TOM JOSEPH
@ 2020-08-14 21:48 ` Patrick Williams
  2020-08-14 22:26 ` Benjamin Fair
  2020-08-14 23:11 ` Mauery, Vernon
  2 siblings, 0 replies; 9+ messages in thread
From: Patrick Williams @ 2020-08-14 21:48 UTC (permalink / raw)
  To: TOM JOSEPH
  Cc: OpenBMC Maillist, anoo, Brad Bishop, benjaminfair, Mauery, Vernon

[-- Attachment #1: Type: text/plain, Size: 472 bytes --]

On Fri, Aug 14, 2020 at 11:04:45PM +0530, TOM JOSEPH wrote:
> How are other companies converting their arbitrary tag formats to IPMI 
> firmware revision fields? Does every company maintain their own 
> downstream implementation of this command?

I'm not sure if this is helpful but our current tagging format is:

v<year>.<week>.<patch> - ex. v2020.33.0

I don't think we have code now that creates this field from the tagging
though.

-- 
Patrick Williams

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-08-14 17:34 IPMI implementation of Get Device ID command TOM JOSEPH
  2020-08-14 21:48 ` Patrick Williams
@ 2020-08-14 22:26 ` Benjamin Fair
  2020-08-14 23:11 ` Mauery, Vernon
  2 siblings, 0 replies; 9+ messages in thread
From: Benjamin Fair @ 2020-08-14 22:26 UTC (permalink / raw)
  To: TOM JOSEPH; +Cc: OpenBMC Maillist, anoo, Mauery, Vernon, Brad Bishop

On Fri, 14 Aug 2020 at 10:34, TOM JOSEPH <tomjose@linux.vnet.ibm.com> wrote:
>
> Hello,
>
> We have an implementation of this command https://github.com/openbmc/phosphor-host-ipmid/blob/master/apphandler.cpp#L571 . The current version of the code derives the major and minor firmware revision from the VERSION_ID field, and the auxiliary firmware revision is picked from dev_id.json. The auxiliary firmware revision is populated at build time https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend.
>
> The implementation of the code is obsolete, as it was based on an earlier format. The current format of VERSION_ID for example is, 2.9.0-dev-609-g56f86d23c. There is already a WIP patch to fix this for the master tag format https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893.
>
> IBM tagging format is different from the tag format of master builds. One choice is to have the major and minor version added to the dev_id.json and if the format of VERSION_ID does not match the master tag format,  pick from the json.
>
> How are other companies converting their arbitrary tag formats to IPMI firmware revision fields? Does every company maintain their own downstream implementation of this command?

Google currently maintains a downstream implementation of this command
based on parsing the DISTRO_VERSION in VERSION_ID directly from
/etc/os-release. We set this using an environment variable at build
time rather than with a git tag.

We also export 4 version points, with the last two being set in the
aux version info.

> Is a common code possible for converting arbitrary tag formats to IPMI firmware revision fields?

We'd definitely be interested in finding a common solution, or at
least one that's easier for us to customize downstream or in
meta-google.

>
> Regards,
> Tom
>
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-08-14 17:34 IPMI implementation of Get Device ID command TOM JOSEPH
  2020-08-14 21:48 ` Patrick Williams
  2020-08-14 22:26 ` Benjamin Fair
@ 2020-08-14 23:11 ` Mauery, Vernon
  2020-08-24 11:57   ` TOM JOSEPH
  2 siblings, 1 reply; 9+ messages in thread
From: Mauery, Vernon @ 2020-08-14 23:11 UTC (permalink / raw)
  To: TOM JOSEPH; +Cc: OpenBMC Maillist, anoo, Brad Bishop, benjaminfair

On 14-Aug-2020 11:04 PM, TOM JOSEPH wrote:
>Hello,
>
>We have an implementation of this command https://github.com/openbmc/phosphor-host-ipmid/blob/master/apphandler.cpp#L571 
>. The current version of the code derives the major and minor firmware 
>revision from the VERSION_ID field, and the auxiliary firmware 
>revision is picked from dev_id.json. The auxiliary firmware revision 
>is populated at build time https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend.
>
>The implementation of the code is obsolete, as it was based on an 
>earlier format. The current format of VERSION_ID for example is, 
>2.9.0-dev-609-g56f86d23c. There is already a WIP patch to fix this for 
>the master tag format https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893. <https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893>
>
>IBM tagging format is different from the tag format of master builds. 
>One choice is to have the major and minor version added to the 
>dev_id.json and if the format of VERSION_ID does not match the master 
>tag format,  pick from the json.
>
>How are other companies converting their arbitrary tag formats to IPMI 
>firmware revision fields? Does every company maintain their own 
>downstream implementation of this command?
>
We have a two-hash version scheme (one for openbmc, the other for the 
downstream meta-intel layer) that looks something like 
wht-0.2-3-gab3500-38384ac. We override the Get Device ID command
https://github.com/openbmc/intel-ipmi-oem/blob/master/src/appcommands.cpp#L200
to expose part of both of those hashes in the aux bytes. But to get the 
full version string, we use redfish.

>Is a common code possible for converting arbitrary tag formats to IPMI 
>firmware revision fields?

Not that I am aware of. I think this leads to lots of string parsing.

--Vernon

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-08-14 23:11 ` Mauery, Vernon
@ 2020-08-24 11:57   ` TOM JOSEPH
  2020-08-24 17:31     ` Benjamin Fair
  2020-08-24 21:27     ` Patrick Williams
  0 siblings, 2 replies; 9+ messages in thread
From: TOM JOSEPH @ 2020-08-24 11:57 UTC (permalink / raw)
  To: Mauery, Vernon, Patrick Williams, benjaminfair
  Cc: OpenBMC Maillist, anoo, Brad Bishop

Hello,

Thanks for the response on this. Every company seems to have a different 
version scheme and the parsing might not fit into upstream 
implementation of the Get Device ID command.

My proposal is to add major and minor version to the dev_id.json and 
this can be populated in the meta-xxx layer (something like this 
https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend). 
If the format of the VERSION_ID does not match the master tag format, 
then major and minor version will be picked from the dev_id.json. With 
this approach every company can share the upstream implementation of the 
command. Thoughts?

Regards,
Tom

On 15-08-2020 04:41, Mauery, Vernon wrote:
> On 14-Aug-2020 11:04 PM, TOM JOSEPH wrote:
>> Hello,
>>
>> We have an implementation of this command 
>> https://github.com/openbmc/phosphor-host-ipmid/blob/master/apphandler.cpp#L571 
>> . The current version of the code derives the major and minor 
>> firmware revision from the VERSION_ID field, and the auxiliary 
>> firmware revision is picked from dev_id.json. The auxiliary firmware 
>> revision is populated at build time 
>> https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend.
>>
>> The implementation of the code is obsolete, as it was based on an 
>> earlier format. The current format of VERSION_ID for example is, 
>> 2.9.0-dev-609-g56f86d23c. There is already a WIP patch to fix this 
>> for the master tag format 
>> https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893. 
>> <https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893> 
>>
>>
>> IBM tagging format is different from the tag format of master builds. 
>> One choice is to have the major and minor version added to the 
>> dev_id.json and if the format of VERSION_ID does not match the master 
>> tag format,  pick from the json.
>>
>> How are other companies converting their arbitrary tag formats to 
>> IPMI firmware revision fields? Does every company maintain their own 
>> downstream implementation of this command?
>>
> We have a two-hash version scheme (one for openbmc, the other for the 
> downstream meta-intel layer) that looks something like 
> wht-0.2-3-gab3500-38384ac. We override the Get Device ID command
> https://github.com/openbmc/intel-ipmi-oem/blob/master/src/appcommands.cpp#L200 
>
> to expose part of both of those hashes in the aux bytes. But to get 
> the full version string, we use redfish.
>
>> Is a common code possible for converting arbitrary tag formats to 
>> IPMI firmware revision fields?
>
> Not that I am aware of. I think this leads to lots of string parsing.
>
> --Vernon

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-08-24 11:57   ` TOM JOSEPH
@ 2020-08-24 17:31     ` Benjamin Fair
  2020-08-24 21:27     ` Patrick Williams
  1 sibling, 0 replies; 9+ messages in thread
From: Benjamin Fair @ 2020-08-24 17:31 UTC (permalink / raw)
  To: TOM JOSEPH
  Cc: Mauery, Vernon, Patrick Williams, OpenBMC Maillist, anoo, Brad Bishop

On Mon, 24 Aug 2020 at 04:58, TOM JOSEPH <tomjose@linux.vnet.ibm.com> wrote:
>
> Hello,
>
> Thanks for the response on this. Every company seems to have a different
> version scheme and the parsing might not fit into upstream
> implementation of the Get Device ID command.
>
> My proposal is to add major and minor version to the dev_id.json and
> this can be populated in the meta-xxx layer (something like this
> https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend).
> If the format of the VERSION_ID does not match the master tag format,
> then major and minor version will be picked from the dev_id.json. With
> this approach every company can share the upstream implementation of the
> command. Thoughts?

That approach sounds good to me.

>
> Regards,
> Tom
>
> On 15-08-2020 04:41, Mauery, Vernon wrote:
> > On 14-Aug-2020 11:04 PM, TOM JOSEPH wrote:
> >> Hello,
> >>
> >> We have an implementation of this command
> >> https://github.com/openbmc/phosphor-host-ipmid/blob/master/apphandler.cpp#L571
> >> . The current version of the code derives the major and minor
> >> firmware revision from the VERSION_ID field, and the auxiliary
> >> firmware revision is picked from dev_id.json. The auxiliary firmware
> >> revision is populated at build time
> >> https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend.
> >>
> >> The implementation of the code is obsolete, as it was based on an
> >> earlier format. The current format of VERSION_ID for example is,
> >> 2.9.0-dev-609-g56f86d23c. There is already a WIP patch to fix this
> >> for the master tag format
> >> https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893.
> >> <https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/33893>
> >>
> >>
> >> IBM tagging format is different from the tag format of master builds.
> >> One choice is to have the major and minor version added to the
> >> dev_id.json and if the format of VERSION_ID does not match the master
> >> tag format,  pick from the json.
> >>
> >> How are other companies converting their arbitrary tag formats to
> >> IPMI firmware revision fields? Does every company maintain their own
> >> downstream implementation of this command?
> >>
> > We have a two-hash version scheme (one for openbmc, the other for the
> > downstream meta-intel layer) that looks something like
> > wht-0.2-3-gab3500-38384ac. We override the Get Device ID command
> > https://github.com/openbmc/intel-ipmi-oem/blob/master/src/appcommands.cpp#L200
> >
> > to expose part of both of those hashes in the aux bytes. But to get
> > the full version string, we use redfish.
> >
> >> Is a common code possible for converting arbitrary tag formats to
> >> IPMI firmware revision fields?
> >
> > Not that I am aware of. I think this leads to lots of string parsing.
> >
> > --Vernon

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-08-24 11:57   ` TOM JOSEPH
  2020-08-24 17:31     ` Benjamin Fair
@ 2020-08-24 21:27     ` Patrick Williams
  2020-09-01 12:53       ` TOM JOSEPH
  1 sibling, 1 reply; 9+ messages in thread
From: Patrick Williams @ 2020-08-24 21:27 UTC (permalink / raw)
  To: TOM JOSEPH
  Cc: Mauery, Vernon, benjaminfair, OpenBMC Maillist, anoo, Brad Bishop

[-- Attachment #1: Type: text/plain, Size: 998 bytes --]

On Mon, Aug 24, 2020 at 05:27:55PM +0530, TOM JOSEPH wrote:
> My proposal is to add major and minor version to the dev_id.json and 
> this can be populated in the meta-xxx layer (something like this 
> https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend). 
> If the format of the VERSION_ID does not match the master tag format, 
> then major and minor version will be picked from the dev_id.json. With 
> this approach every company can share the upstream implementation of the 
> command. Thoughts?

Hi Tom,

Would you be able to work out an example where the git-describe is used
to create this, similar to what we do with os-release?  I think this is
going to be the typical use case and we had a huge trouble getting
os-release to be done "correctly" at the beginning.  I think having a
well-tested example to copy from should limit the issues others will
have in trying to implement their own.

-- 
Patrick Williams

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-08-24 21:27     ` Patrick Williams
@ 2020-09-01 12:53       ` TOM JOSEPH
  2020-09-01 16:27         ` Patrick Williams
  0 siblings, 1 reply; 9+ messages in thread
From: TOM JOSEPH @ 2020-09-01 12:53 UTC (permalink / raw)
  To: Patrick Williams
  Cc: Mauery, Vernon, benjaminfair, OpenBMC Maillist, anoo, Brad Bishop

Hello Patrick,

For translating IBM firmware revision to IPMI firmware version, the plan 
is to continue using VERSION_ID in os-release. This translation is 
obsolete 
(https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend), 
but I will update this to handle the major and minor firmware revision. 
I will work on pushing a patch for that.

Regards,
Tom

On 25-08-2020 02:57, Patrick Williams wrote:
> On Mon, Aug 24, 2020 at 05:27:55PM +0530, TOM JOSEPH wrote:
>> My proposal is to add major and minor version to the dev_id.json and
>> this can be populated in the meta-xxx layer (something like this
>> https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend).
>> If the format of the VERSION_ID does not match the master tag format,
>> then major and minor version will be picked from the dev_id.json. With
>> this approach every company can share the upstream implementation of the
>> command. Thoughts?
> Hi Tom,
>
> Would you be able to work out an example where the git-describe is used
> to create this, similar to what we do with os-release?  I think this is
> going to be the typical use case and we had a huge trouble getting
> os-release to be done "correctly" at the beginning.  I think having a
> well-tested example to copy from should limit the issues others will
> have in trying to implement their own.
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: IPMI implementation of Get Device ID command
  2020-09-01 12:53       ` TOM JOSEPH
@ 2020-09-01 16:27         ` Patrick Williams
  0 siblings, 0 replies; 9+ messages in thread
From: Patrick Williams @ 2020-09-01 16:27 UTC (permalink / raw)
  To: TOM JOSEPH
  Cc: Mauery, Vernon, benjaminfair, OpenBMC Maillist, anoo, Brad Bishop

[-- Attachment #1: Type: text/plain, Size: 645 bytes --]

On Tue, Sep 01, 2020 at 06:23:36PM +0530, TOM JOSEPH wrote:
> For translating IBM firmware revision to IPMI firmware version, the plan 
> is to continue using VERSION_ID in os-release. This translation is 
> obsolete 
> (https://github.com/openbmc/openbmc/blob/master/meta-ibm/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend), 
> but I will update this to handle the major and minor firmware revision. 
> I will work on pushing a patch for that.

Sounds good, thanks.  I just wanted to make sure there was an example to
point people to that did what was being suggested.  Looks like this
.bbappend is it.

-- 
Patrick Williams

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-09-01 16:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-14 17:34 IPMI implementation of Get Device ID command TOM JOSEPH
2020-08-14 21:48 ` Patrick Williams
2020-08-14 22:26 ` Benjamin Fair
2020-08-14 23:11 ` Mauery, Vernon
2020-08-24 11:57   ` TOM JOSEPH
2020-08-24 17:31     ` Benjamin Fair
2020-08-24 21:27     ` Patrick Williams
2020-09-01 12:53       ` TOM JOSEPH
2020-09-01 16:27         ` Patrick Williams

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.