IPMI implementation of Get Device ID command
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