Capture PSU STATUS_MFR_SPECIFIC during analysis

If there is a fault indicated in STATUS_WORD, add the
STATUS_MFR_SPECIFIC value to the error log additional data.
For additional diagnostic information, include the MFR status
for all log entries when status word is nonzero.
Change the journal entry for MFR fault to an error type,
suggested in code review.

Tested: Test by setting the bit in the PMBus status word in simulation
        for MFR and a nonzero value in STATUS_MFR_SPECIFIC.
        The chassis is on during this test.
        This change also adds the MFR status in journal entries.
        The journal contains an entry like this for the MFR fault:
        MFR fault: status word = 0x01 MFR fault =  0x1
        Other journal entries:
        VIN_UV fault: status word = 0x08, MFR fault = 0x1
        INPUT fault: status word = 0x02, MFR fault = 0x1
        Note: definitions for INPUT_FAULT_WARN and MFR_SPECIFIC_FAULT
        were changed for testing purposes because the simulator could
        not set the upper bits of the status word.

Signed-off-by: Jay Meyer <jaymeyer@us.ibm.com>
Change-Id: Ib63ca6581c72f640aba01a95c6fe02b26ac8c1ee
diff --git a/phosphor-power-supply/power_supply.hpp b/phosphor-power-supply/power_supply.hpp
index a73e14e..2aae6d6 100644
--- a/phosphor-power-supply/power_supply.hpp
+++ b/phosphor-power-supply/power_supply.hpp
@@ -146,6 +146,14 @@
     }
 
     /**
+     * @brief Returns the last read value from STATUS_MFR.
+     */
+    uint64_t getMFRFault() const
+    {
+        return statusMFR;
+    }
+
+    /**
      * @brief Returns true if a fault was found.
      */
     bool isFaulted() const
@@ -239,6 +247,9 @@
     /** @brief Will be updated to the latest/lastvalue read from STATUS_WORD.*/
     uint64_t statusWord = 0;
 
+    /** @brief Will be updated to the latest/lastvalue read from STATUS_MFR.*/
+    uint64_t statusMFR = 0;
+
     /** @brief True if a fault has already been found and not cleared */
     bool faultFound = false;