openpower: mmc: physical reset triggers bios reset

The service openpower-bios-factory-reset runs during startup and
calls bios_reset_check. This method determines whether the
factory-reset-toggle gpio has changed since the last reboot and
triggers a bios reset if it has. This decouples the code to check
for bios resets from the code in item_updater_mmc::reset and from
the BMC factory reset code.

Tested: Verified that the reset-gpio-val file was created to store
the previous value of the environment variable rwreset. Added files
to /media/hostfw and verified that they were removed upon reboot
when the value in reset-gpio-val differed from rwreset.

Signed-off-by: Isaac Kurth <isaac.kurth@ibm.com>
Change-Id: I9942c1826f800a2ce9aef4b9456b3f4acc4b94fe
diff --git a/mmc/openpower-bios-factory-reset.service b/mmc/openpower-bios-factory-reset.service
new file mode 100644
index 0000000..5acabb7
--- /dev/null
+++ b/mmc/openpower-bios-factory-reset.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Perform a bios reset if the GPIO changed
+Before=pldmd.service
+After=org.open_power.Software.Host.Updater.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/obmc-flash-bios bios-reset-if-needed
+
+[Install]
+WantedBy=multi-user.target