Fix for sensor value PATCH in manufacturing mode

Issue: Not able to PATCH sensor value in manufacturing mode, as
manufacturing mode is not getting updated after BMC reboot.

Added support to cache initial value of `SpecialMode` property on
startup and register for `InterfacesAdded` signal in case
`specialmodemgr` service starts late.

Tested:
1. Verified `manufacturingMode` value is getting updated as expected.
Verified the same over different scenarios like service(specialmodemgr,
hwmontempsensor, cpusensor) restart and `SpecialMode` property update.
2. Verified PATCH operation is working as expected over BMC resets
in manufacturing mode.
PATCH - /redfish/v1/Chassis/<Board>/Thermal
   Body:
       {
           "Temperatures": [
               {
                   "MemberId": "Inlet_BRD_Temp",
                   "ReadingCelsius" : 20
               }
           ]
        }
   Response:
      {
          "@odata.id": "/redfish/v1/Chassis/<Board>/Thermal",
          "@odata.type": "#Thermal.v1_4_0.Thermal",
          "Fans": [],
          "Id": "Thermal",
          "Name": "Thermal",
          "Temperatures": []
      }

Signed-off-by: Snehalatha Venkatesh <snehalathax.v@intel.com>
Signed-off-by: Arun P. Mohanan <arun.p.m@linux.intel.com>
Change-Id: I6ae9fb7d6e9fdd508f199bcdaf629411a2c96da6
1 file changed
tree: 819704d4c130638060e31d2ab10ccbb1e9e65759
  1. include/
  2. service_files/
  3. src/
  4. subprojects/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .clang-tidy
  9. .gitignore
  10. Jenkinsfile
  11. LICENSE
  12. MAINTAINERS
  13. meson.build
  14. meson_options.txt
  15. OWNERS
  16. README.md
README.md

dbus-sensors

dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.

key features

  • runtime re-configurable from d-bus (entity-manager or the like)

  • isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible

  • async single-threaded: uses sdbusplus/asio bindings

  • multiple data inputs: hwmon, d-bus, direct driver access

sensor documentation