option to disable warm reboots
The concept of warm reboot (reboot the host without removing chassis
power) was added a while back as a part of clarifying support for
the Redfish ComputerSystem.Reset Action. It has since been found that
some IBM hardware, including Witherspoon, does not support warm reboots.
The issue is intermittent and depends on the reboot being requested
while the host is in the middle of some i2c transactions. If a warm
reboot occurs during this window, then on the subsequent boot the i2c
hardware will be in a bad state and the host firmware is unable to
recover it.
Given this issue, it has been requested that BMC software go back to
doing cold reboots (cycling power to the chassis during any reboot
request) on this hardware.
The solution in this commit is to provide a new config flag. By default
phosphor-state-manager continues to use the warm reboot targets when
requested but system owners via a .bbappend can turn off this flag
and go back to using the default cold reboot target.
This change was initially proposed within bmcweb, with this commit:
https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/33656
The general consensus was that this change should occur in the back
end of the code and bmcweb should not be involved.
Tested:
- Verified that by default warm reboot targets were still used
- Verified that when overriding compile option in a .bbappend that
the cold reboot target was used
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I4aaff5a15555ee2deafa1c9562319b333e0ad0b1
diff --git a/meson_options.txt b/meson_options.txt
index 385323d..9412421 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -83,3 +83,8 @@
value: 'xyz.openbmc_project.State.ScheduledHostTransition',
description: 'The scheduled host transition Dbus busname to own.',
)
+
+option('warm-reboot', type : 'feature',
+ value : 'enabled',
+ description : 'Enable warm reboots of the system',
+)