Exposing BIOS attributes to a remote management console
Deepak Kodihalli
dkodihal at linux.vnet.ibm.com
Sat Feb 8 19:28:04 AEDT 2020
Hi,
To enable remote updates (via a remote management console that talks to
the BMC) to the host firmware's BIOS settings table on IBM systems,
we're thinking of the following flow:
a) The host firmware sends down a BIOS settings table to the BMC using
PLDM [1].
b) The BMC uses phosphor-settingsd [2] as the backend to store BIOS
attributes on D-Bus.
c) Bmcweb implements the Redfish BIOS schema [3] to enable remote
reads/writes on the BIOS attributes.
However, c) is a problem because one needs to write YAML files [4] for
the BMC to determine what D-Bus objects to make corresponding to the
BIOS attributes. This requires a unique D-Bus interface *per* BIOS
attribute. This means the BMC must have prior knowledge about the BIOS
attributes.
I don't think that's the right way to go about this for two reasons. One
- this creates a lockstep dependency on the host firmware when the BIOS
settings table needs to be updated, and two - I think the OpenBMC
implementation of this must be able to receive (via PLDM/IPMI/other
standard in-band means) a set of BIOS attributes from different BIOS
firmware stacks dynamically and expose them for out of band updates,
without having prior/build-time knowledge of those attributes. So I
think this calls for a different kind of D-Bus interface/infrastructure
than what the phosphor-settingsd app relies on. Something that enables
the BMC to add to D-Bus a BIOS attribute dynamically, knowing it's name,
type and default value.
Any thoughts on this flow? I'm also curious to know if the Redfish BIOS
schema/attribute registry model requires the BMC to have prior knowledge
about the system BIOS attributes to update the registry. This wasn't
obvious to me from a quick read of the schema.
Thanks,
Deepak
[1]
https://www.dmtf.org/sites/default/files/standards/documents/DSP0247_1.0.0.pdf
[2] https://github.com/openbmc/phosphor-settingsd
[3] https://redfish.dmtf.org/schemas/v1/Bios.v1_1_0.json
[4]
https://github.com/openbmc/openbmc/blob/master/meta-phosphor/recipes-phosphor/settings/phosphor-settings-defaults/defaults.yaml
More information about the openbmc
mailing list