psu-ng: Call setPowerSupplyError method for fault
If/when a fault occurs, and the PSU manager is going to create an error,
also call the setPowerSupplyError D-Bus method to let the power
control/sequencer app known that a power supply error has occurred. If
an associated pgood fault also occurs, the power control/sequencer app
can make a determination of whether it is due to the power supply error.
Call setPowerSupplyError method with null string during clearing of
faults.
Tested:
Simulated power supply faults followed by pgood fault.
Verified power supply fault used for source of pgood fault.
After PSU & pgood fault, poweron, try just pgood fault.
Verified pgood fault logged.
Real Rainier 2S2U normally fault free operation during poweron.
Real Rainier 2S2U VIN_UV fault works as expected.
Real Rainier 2S2U AC loss fault.
Real Rainier 2S2U injected pgood fault (no PSU error).
Change-Id: Ia5c7c4fdcbd3b86c5184cb5bc6d93a9628747f18
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
diff --git a/phosphor-power-supply/psu_manager.hpp b/phosphor-power-supply/psu_manager.hpp
index 6314438..2754eab 100644
--- a/phosphor-power-supply/psu_manager.hpp
+++ b/phosphor-power-supply/psu_manager.hpp
@@ -140,6 +140,7 @@
*/
void clearFaults()
{
+ setPowerSupplyError("");
for (auto& psu : psus)
{
psu->clearFaults();
@@ -168,6 +169,13 @@
validationTimer;
/**
+ * Let power control/sequencer application know of PSU error(s).
+ *
+ * @param[in] psuErrorString - string for power supply error
+ */
+ void setPowerSupplyError(const std::string& psuErrorString);
+
+ /**
* Create an error
*
* @param[in] faultName - 'name' message for the BMC error log entry