IPMI implementation of Get Device ID command

Benjamin Fair benjaminfair at google.com
Sat Aug 15 08:26:51 AEST 2020

On Fri, 14 Aug 2020 at 10:34, TOM JOSEPH <tomjose at 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

> Regards,
> Tom

More information about the openbmc mailing list