ibm-openbmc / dev

Product Development Project Mgmt and Tracking
16 stars 2 forks source link

PLDM: CEC-LED PDR/Sensor/Effecter for BMC owned LEDs #2689

Closed dkodihal closed 2 years ago

dkodihal commented 4 years ago

The goal of this story is to have a PDR, sensor and effecter created for each BMC owned (ownership indicates BMC can drive the LED) LED. There's supporting code for this already - what's needed out of this story is to update the PDR effecters JSON (https://github.com/openbmc/pldm/blob/master/configurations/pdr/11.json) and to introduce a new PDR sensors JSON in the same location.

Example PDR sensor and PDR effecter JSONs are at https://github.com/openbmc/pldm/tree/master/libpldmresponder/examples/pdr.

For every LED D-Bus object found as a result of busctl tree xyz.openbmc_project.LED.GroupManager: a) Need an entry in the PDR effecter JSON b) Need an entry in the PDR sensor JSON c) Need to set the entity_path key (https://github.com/openbmc/pldm/blob/master/libpldmresponder/examples/pdr/effecter_pdr.json#L7) to point the inventory D-Bus object that corresponds to the LED, in both the JSONs. No need to explicitly specify entity instance, type and container id. Those are derived from the PLDM FRU info (we must already be making PLDM FRU records for the FRU D-Bus object that entity_path points to, if that's not happening for some FRU then that's a minor problem to fix in the PLDM FRU code). There could be some LED D-Bus objects for which the corresponding FRU D-Bus object doesn't exist yet, those will have to be handled later (when the FRU/VPD work is done and those objects show up). @vishwabmc or @tomjoseph83 can help determine which these are. d) The D-Bus interface we need to map the PLDM info to is xyz.openbmc_project.Led.Group (the Asserted property) for most of these LED D-Bus objects. There are few exceptions where we need to look up another D-Bus namespace (@vishwabmc can help here). e) There are two kind of LEDs - identify and fault. We need distinct JSON entries for both. The PLDM state set id for the identify LED is 17 and, for the Fault LED it is 10, from https://www.dmtf.org/sites/default/files/standards/documents/DSP0249_1.0.0.pdf.

We should be able to test with pldmtool - enumerating the LED PDRs, reading the sensors and setting the effecters.

nmuruli commented 3 years ago

This story will be open to support the FRUs as and when we get the DBUS information

nmuruli commented 3 years ago

Code in Upstream Driver Keeping this open to support FAULT LEDs of FRU as and when we get the DBUS information.

mzipse commented 2 years ago

Work is complete. Closing.