Skip to content

PLDM: BIOS: make host firmware BIOS table owner #1976

Open
@dkodihal

Description

@dkodihal

Please first read:

  1. https://github.com/openbmc/docs/blob/master/designs/remoteBIOSConfiguration.md
  2. https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/BIOSConfig/Manager.interface.yaml

Typically the default/master BIOS settings table lives in the host firmware image. On our systems, this lives on the BMC. To continue to do this, but to align with the design above, the following changes are needed:

  1. Implement SetBIOSTable from DSP0247 v1.0.0. This should do the following:
    a) Sanity/error checks, for eg check tables are sent in the expected order
    b) Extract and persist tables to https://github.com/openbmc/pldm/blob/master/meson.build#L18
    c) If a table of the type received is already present in the persisted location, discard the same.
    d) Process the PLDM BIOS tables to set https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/BIOSConfig/Manager.interface.yaml#L65. Note the implementation of this D-Bus interface is happening in the OpenBMC community. Since the interface is merged, we can code to it.
    This work is covered by story PLDM: Implement command SetBIOSTable #1464.

  2. The PLDM daemon currently processes JSON files to construct BIOS tables. That still needs to happen, but that should be routed through the SetBIOSTable command. This will require tweaks to the current code that processes the BIOS JSONs to call the SetBIOSTable command from 1). Place this IBM specific code under an oem-ibm compile flag.
    a) Currently it is assumed that JSON entries not having a D-Bus mapping are read-only BIOS attributes. That needs to change. A new key needs to be introduced for Read-Only attributes.
    b) When a D-Bus property from the JSON changes, the code currently updates the persisted BIOS tables. That should still happen.
    This work is covered by story PLDM : Fix GetBIOSTable to work with generated/provded table #1465.

  3. The PLDM daemon should react to https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/BIOSConfig/Manager.interface.yaml#L105 and update the persisted BIOS attribute value table. The oem-ibm code should in addition send an event to PowerVM (if it is up) to inform it about the changed attributes. This is covered by PLDM: support runtime update of BIOS attributes #2283.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions