Ensure POR reset is logged

In situations where the last reboot cause is not changed to POR,
specifically after unexpected AC losses, bmc-state-manager fails to
update the property. Therefore after a power cycle the last reboot
cause property is set to unknown. Thankfully, chassis-state-manager
generates a file indicating an AC loss occurred and that can be used
to identify that the last reboot cause was a power-on-cycle. It was
necessary to add an "After xyz.openbmc_project.State.Chassis"
dependency to bmc-state-managers service file to ensure the AC loss
was generated prior to bmc-state-manager executing.

Tested:

- Ensured that when the system was power cycled that the last reboot
  cause was set to "POR" when the chassis lost power file was present.

- Verified that when the file was not present the last reboot
  cause was set accordingly (typically unknown)

Change-Id: Ifa6d5d6f89c221477ee2f2fa1ed15adade359e45
Signed-off-by: NodeMan97 <corey.hardesty@icloud.com>
diff --git a/bmc_state_manager.cpp b/bmc_state_manager.cpp
index e1cbaf2..473329c 100644
--- a/bmc_state_manager.cpp
+++ b/bmc_state_manager.cpp
@@ -313,6 +313,15 @@
             break;
     }
 
+    // If the above code could not detect a reason, check to see
+    // if an AC loss occured.
+    size_t chassisId = 0;
+    if (phosphor::state::manager::utils::checkACLoss(chassisId))
+    {
+        this->lastRebootCause(RebootCause::POR);
+        return;
+    }
+
     // If the above code could not detect a reason, look for a the
     // reset-cause-pinhole gpio to see if it is the reason for the reboot
     auto gpioval =