refactor power restore controller
Currently PowerRestorePolicy handling code uses two undocumented
interfaces:
* `xyz.openbmc_project.Control.Power.RestoreDelay`
* `xyz.openbmc_project.Common.ACBoot`
Power Restore Delay seems to be logical part of
`xyz.openbmc_project.Control.Power.RestorePolicy` interface and has
been moved there.
ACBoot depends on some custom logic that can be found only in Intel-BMC
fork.
This commit reorganize PowerRestorePolicy-related code to be more clear
and flexible, fixes interface for RestoreDelay. Use of ACBoot feature is
now optional and can be compile-time enabled.
Tested: Model power loss event with Off, On and Restore policy, verify,
that power restored as expected.
Test On policy with Delay set to 300000000 - ensure, power on
delayed by 5 minutes.
Test with ACBoot interface emulated.
Signed-off-by: Andrei Kartashev <a.kartashev@yadro.com>
Change-Id: Id8b42d2085f44418e02a7f52836cc1a6f55f50db
diff --git a/meson_options.txt b/meson_options.txt
index d4c0309..25639c5 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,6 @@
option('chassis-system-reset', type: 'feature', value : 'disabled',
description: 'Enable chassis system power reset to allow removing power and restoring back')
option('use-plt-rst', type: 'feature', value : 'disabled',
- description: 'Use the PLT_RST eSPI signal to detect warm reset instead of POST Complete')
\ No newline at end of file
+ description: 'Use the PLT_RST eSPI signal to detect warm reset instead of POST Complete')
+option('use-acboot', type: 'feature', value : 'disabled',
+ description: 'Use hardware Reset Reason to control Power Restore. Note: this only works with Intel-BMC')