Read Firmware Versions

Adriana Kobylak anoo at linux.ibm.com
Thu Sep 24 06:17:28 AEST 2020


On 2020-09-23 10:35, Patrick Williams wrote:
> On Tue, Sep 22, 2020 at 01:34:50PM +0000, Jayashree D wrote:
>> Classification: HCL Internal
>> 
>> Thanks Patrick for your response.
>> 
>> In phosphor-bmc-code-mgmt, I am seeing the software image is upgraded 
>> and based on the image update, version is updated.
>> But in my platform, I have to read firmware versions using oem 
>> commands and that version should be displayed under dbus objects.
>> Whether phosphor-bmc-code-mgmt repo will be suitable to display the 
>> firmware version using dbus objects?
> 
> Vijay recently added a simple BIOS flash management to
> phosphor-bmc-code-mgmt, but there is also a openpower-pnor-code-mgmt 
> for
> the equivalent of BIOS management on openpower systems.  Since your 
> code
> update scheme is likely to be specific to your IPMB commands, I don't
> know if that would be best in a separate repository or an extension 
> onto
> phosphor-bmc-code-mgmt.
> 
> Adriana, any opinions?

It could fit in phosphor-bmc-code-mgmt, some thoughts:

The d-bus objects get created at 2 different times:

1. One scenario is when an image is uploaded to be updated, this is the 
support that Vijay added which allows a custom script to be run to 
update the BIOS image. If you're interested in this method for updating 
your BIOS, you could potentially add your IPMB commands in that service 
and use the Activation interfaces to drive the update.

2. The second scenario is when the BMC reboots and it recreates the 
d-bus objects. For this scenario, there's no currently support for BIOS, 
so for example the support that Vijay added does not create a d-bus 
interface if the BMC reboots, which is ok if you only want to use the 
Activation interface to trigger the update. But sounds like you want to 
always have the version information as a d-bus object, so support for 
BIOS could be added. For example, to get the BMC levels, the code looks 
for version information in the BMC in the media directory. If you get 
your app to get the version information via the oem commands you 
mentioned and create a file in the bmc in the media directory we could 
extend the logic to create the Version d-bus objects for each BIOS 
version when the BMC reboots. We'd just need to work out the details for 
the format for the files that would host the version information, and 
how to identify they're BIOS versions vs BMC.


More information about the openbmc mailing list