Add YAML and error function for MEM_GOODx faults

Add a section to the error and metadata YAML files for the MEM_GOODx
faults. Use that to update/generate a new elog-errors.hpp include file.

Update the power sequencer source to have a memGoodFault function for
handling callouts for MEM_GOODx type errors.

Change-Id: Ia08dc88f29f00f749e7995f97f37647b02135a2b
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
diff --git a/power-sequencer/ucd90160.cpp b/power-sequencer/ucd90160.cpp
index 203004d..2b83918 100644
--- a/power-sequencer/ucd90160.cpp
+++ b/power-sequencer/ucd90160.cpp
@@ -476,5 +476,27 @@
         metadata::CALLOUT_INVENTORY_PATH(callout.c_str()));
 }
 
+void UCD90160::memGoodError(const std::string& callout)
+{
+    util::NamesValues nv;
+
+    try
+    {
+        nv.add("STATUS_WORD", readStatusWord());
+        nv.add("MFR_STATUS", readMFRStatus());
+    }
+    catch (device_error::ReadFailure& e)
+    {
+        log<level::ERR>("ReadFailure when collecting metadata");
+        commit<device_error::ReadFailure>();
+    }
+
+    using metadata = org::open_power::Witherspoon::Fault::MemoryPowerFault;
+
+    report<power_error::MemoryPowerFault>(
+        metadata::RAW_STATUS(nv.get().c_str()),
+        metadata::CALLOUT_INVENTORY_PATH(callout.c_str()));
+}
+
 } // namespace power
 } // namespace witherspoon