IPMI implementation of Get Device ID command

Mauery, Vernon vernon.mauery at intel.com
Sat Aug 15 09:11:13 AEST 2020

On 14-Aug-2020 11:04 PM, TOM JOSEPH wrote:
>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
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.


More information about the openbmc mailing list