ensure hostboot volatile not cleared on warm reboots

A while back, the obmc-vpnor-enable-clearvolatile@.service was added to
the obmc-chassis-poweron@.target. This was done to ensure the volatile
data was cleared on any chassis power on to handle situations where the
user is using debug tools like istep or cronus to boot the system after
the chassis power was turned on. Prior to that, the clear was done only
when obmc-host-start@.target was started.

Adding this service to the obmc-chassis-poweron@target had an unintended
consequence though. The chassis power on target is called during a warm
reboot. The assumption was that all services were already running so it
was a "warm" reboot because none of those service were re-run. The
obmc-vpnor-enable-clearvolatile@.service however is a onetime service
that did not remain after exit. This means this service was run during
this warm reboot which breaks the design point of not clearing the host
volatile data on a warm reboot.

This commit now makes this service continue after it has run and only
stops it when a chassis power off is issued. This ensures the host
volatile data is only ever cleared after a system has its chassis
powered off.

Tested:
- Verified that a warm reboot now results in the service not running
- Verified that a normal host reboot (chassis power cycle) still results
  in the service running as expected

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Ifad75b4d0f7a4e1162d4a45a1c346e622a458240
1 file changed
tree: b024a66d5544f5d6e5da5f4eaeb5792e89273045
  1. dbus/
  2. m4/
  3. mmc/
  4. static/
  5. test/
  6. ubi/
  7. vpnor/
  8. .clang-format
  9. .gitignore
  10. activation.cpp
  11. activation.hpp
  12. bootstrap.sh
  13. configure.ac
  14. functions.cpp
  15. functions.hpp
  16. generate-tar
  17. generate-ubi
  18. image_verify.cpp
  19. image_verify.hpp
  20. item_updater.cpp
  21. item_updater.hpp
  22. item_updater_main.cpp
  23. LICENSE
  24. MAINTAINERS
  25. Makefile.am
  26. meson.build
  27. meson_options.txt
  28. msl_verify.cpp
  29. msl_verify.hpp
  30. msl_verify_main.cpp
  31. op-pnor-msl.service
  32. openpower-pnor-update@.service
  33. org.open_power.Software.Host.Updater.service
  34. README.md
  35. utils.cpp
  36. utils.hpp
  37. version.cpp
  38. version.hpp
README.md

openpower-pnor-code-mgmt

OpenPower PNOR (Processor NOR) Code Management provides a set of host software management applications for OpenPower systems. The host firmware is stored on the PNOR chip. More information can be found at Software Architecture or Host Code Update

To Build

To build this package, do the following steps:

    1. ./bootstrap.sh
    2. ./configure ${CONFIGURE_FLAGS}
    3. make

To clean the repository run `./bootstrap.sh clean`.