power button override
Vijay Khemka
vijaykhemka at fb.com
Sat Feb 1 09:53:47 AEDT 2020
On 1/31/20, 2:41 PM, "Bills, Jason M" <jason.m.bills at linux.intel.com> wrote:
On 1/30/2020 1:38 PM, Vijay Khemka wrote:
>
>
> On 1/30/20, 1:10 PM, "Bills, Jason M" <jason.m.bills at linux.intel.com> wrote:
>
>
>
> On 1/30/2020 10:53 AM, Vijay Khemka wrote:
> > And it is inconsistent as 2 times works out of 5 time loop with 30 second delay.
> >
> > Regards
> > -Vijay
> >
> > On 1/30/20, 10:49 AM, "Vijay Khemka" <vijaykhemka at fb.com> wrote:
> >
> > Hi Jason,
> > The problem I am seeing as I am unable to send reset ipmi command to ME via IPMB on i2c bus. I tried to give 30 second delay after power off and setting in ME recovery mode. Once I do force poweroff then only I am able to send any command to ME. I don't know what is the relation of power to ME access on i2c bus.
> I have been told that this is not expected behavior and that you can
> file an IPS ticket for support.
>
> The biggest issue with force poweroff using the power button while the
> system is off is that it will first start booting the system then
> immediately shut it down which is not desired behavior.
>
> What happens if you try to power on in the failure? Will it go to the
> On state where you can issue a ForceOff?
>
> No, this is also intermittent. And sometimes it powers on and sometimes it gets stuck on TransitionToOnFailed. This is very dangerous state as no power command works after this, not even poweroff. Then I have to leave a system for some time and try many other things or sled cycle the system.
Vijay,
Will this change help fix the issue you are seeing?
diff --git a/power-control-x86/src/power_control.cpp
b/power-control-x86/src/power_control.cpp
index 20ea9cd..eecc10a 100644
--- a/power-control-x86/src/power_control.cpp
+++ b/power-control-x86/src/power_control.cpp
@@ -1518,6 +1518,10 @@ static void powerStateOff(const Event event)
setPowerState(PowerState::waitForPSPowerOK);
powerOn();
break;
+ case Event::powerOffRequest:
+ setPowerState(PowerState::transitionToOff);
+ forcePowerOff();
+ break;
default:
std::cerr << "No action taken.\n";
break;
This adds support for powerOffRequest to the Off state. So even when
the host is off, the force off command will still hold the power button
until the power good signal deasserts (on my system it asserts followed
by a deassert). This will more closely follow the Chassis.State
definition of allowing a Chassis.Off request even while the Host.State
is Off.
You don't get deassert signal as it is already deasserted by previous power off.
Currently I have abandoned my patch. But following change would help
--- a/power-control-x86/src/power_control.cpp
+++ b/power-control-x86/src/power_control.cpp
@@ -1470,6 +1470,10 @@ static void powerStateFailedTransitionToOn(const Event event)
setPowerState(PowerState::waitForPSPowerOK);
powerOn();
break;
+ case Event::powerOffRequest:
+ setPowerState(PowerState::off);
+ forcePowerOff();
+ break;
default:
std::cerr << "No action taken.\n";
break;
@@ -1496,6 +1500,9 @@ static void powerStateOff(const Event event)
setPowerState(PowerState::waitForPSPowerOK);
powerOn();
break;
+ case Event::powerOffRequest:
+ forcePowerOff();
+ break;
default:
std::cerr << "No action taken.\n";
break;
Regards
-Vijay
>
> Thanks,
> -Jason
>
> >
> > Regards
> > -Vijay
> >
> > On 1/28/20, 12:50 PM, "Bills, Jason M" <jason.m.bills at linux.intel.com> wrote:
> >
> >
> >
> > On 1/27/2020 12:31 PM, Vijay Khemka wrote:
> > >
> > >
> > > On 1/27/20, 10:52 AM, "Bills, Jason M" <jason.m.bills at linux.intel.com> wrote:
> > >
> > >
> > >
> > > On 1/24/2020 2:01 PM, Vijay Khemka wrote:
> > > >
> > > >
> > > > On 1/24/20, 1:13 PM, "openbmc on behalf of Bills, Jason M" <openbmc-bounces+vijaykhemka=fb.com at lists.ozlabs.org on behalf of jason.m.bills at linux.intel.com> wrote:
> > > >
> > > >
> > > >
> > > > On 1/24/2020 12:55 PM, Bills, Jason M wrote:
> > > > >
> > > > >
> > > > > On 1/24/2020 10:29 AM, Vijay Khemka wrote:
> > > > >>
> > > > >>
> > > > >> On 1/23/20, 4:36 PM, "Bills, Jason M" <jason.m.bills at linux.intel.com>
> > > > >> wrote:
> > > > >>
> > > > >> On 1/23/2020 4:13 PM, Vijay Khemka wrote:
> > > > >> > Hi Jason,
> > > > >> >
> > > > >> > We have a requirement of power button override. I don’t see
> > > > >> x86-power
> > > > >> > control doesn’t support this currently. Do you need this
> > > > >> features or do
> > > > >> > you have any local patch for this.
> > > > >> Hi Vijay,
> > > > >> power button override is used for the "Force Off" actions in
> > > > >> power control:
> > > > >>
> > > > >> https://github.com/openbmc/x86-power-control/blob/master/power-control-x86/src/power_control.cpp#L50.
> > > > >>
> > > > >>
> > > > >> This will not work if current status is off. This should just send
> > > > >> pulse in any status on/off.
> > > > > Correct. Force Off is not done if the current status is off.
> > > > Do you have more details on the power button override behavior that you
> > > > need?
> > > >
> > > > Yes, This is required to bring ME back to operation mode from recovery. How are you handling ME for Bios upgrade.
> > > When in recovery mode, the ME will accept a reset command (IPMI raw 0x6
> > > 0x2) to reset to operational mode.
> > >
> > > Bill, I tried this and see inconsistent behavior from host. Sometime it refuse to power on. So PBO resolves this.
> > I checked with the ME team and ME reset to move from recovery mode to
> > operational mode should work. You can file a ticket with Intel support
> > to help resolve the inconsistent behavior that you see when doing this.
> >
> > In the meantime, I will look over your patch.
> >
> > Thanks,
> > -Jason
> >
> > >
> > > >
> > > > >> >
> > > > >> > Regards
> > > > >> >
> > > > >> > -Vijay
> > > > >> >
> > > > >>
> > > >
> > > >
> > >
> > >
> >
> >
> >
> >
>
>
More information about the openbmc
mailing list