Hi Andrew,

Understood. Thanks for your explanation.


Hi Jason,

I will take it a shot. Thanks for your sharing.


Regards,
Chris Chen

寄件者: openbmc <openbmc-bounces+chris.chen3=flex.com@lists.ozlabs.org> 代表 Bills, Jason M <jason.m.bills@linux.intel.com>
寄件日期: 2021年8月18日 上午 03:04
收件者: openbmc@lists.ozlabs.org <openbmc@lists.ozlabs.org>
主旨: Re: [x86-power-control]: press the power button for a long time that can't force turn off system power
 


On 8/17/2021 5:30 AM, Andrew Jeffery wrote:
> Hi Chris,
>
> On Tue, 17 Aug 2021, at 20:47, Chris Chen (TPI) wrote:
>> Hi Andrew,
>>
>> That means I'm able to choose one of following 2 options to achieve
>> pass-through behavior when I using x86-power-control package, is my
>> understanding correct?
>>
>> 1. Add code to re-enable GPIOP0 and GPIOP1 into a pass-through function
>> after they are requested as a GPIO function in the x86-power-control
>> package. (Or maybe to create a script with "devmem > 0x1e6e24BC 32
>> 0x0F000000" command that will be run automatically after system up to
>> change register directly.)
>
> This is a hack and should be a last resort. Even then I'd avoid it.
>
> Certainly you should avoid shipping with /dev/mem enabled.
>
>>
>> 2. Modify pinctrl in Kernel that will not disable GPIOP0 and GPIOP1's
>> pass-through function if they already are configured as a pass-through
>> when they are requesting as a GPIO function.
>
> Perhaps, though maybe you should follow up on whether you can drive
> GPIOP1 when it's in pass-through mode. My recollection is you cannot,
> at least for the AST2500 and earlier, in which case both P0 and P1 are
> effectively inputs for the purpose of the GPIO controller despite P1
> being a physical output. This behaviour is probably more confusing than
> it is helpful.
>
> There's also option 3 which is to emulate the pass-through in software,
> as I outlined in my previous email.
This is some of the configuration that I have on my system where the
pass-through is working correctly in x86-power-control:

I have one kernel patch that selects the "pass-through" pin
configuration on startup:
https://urldefense.com/v3/__https://github.com/Intel-BMC/linux/commit/8fe1ac31c13a0e8443c665394112ba407c90ae70__;!!HSntlCg!Ep_IWFI6dHqTAFsDwLYoJ0JYl3PjsE2hcEJQFIkNt1nDgHL9PvJEAWMmDWtE4az1$ .

In x86-power-control, I have the POWER_BUTTON GPIO mapped to GPIOP2, and
I'm able to claim and monitor that GPIO without affecting the
pass-through status.

I have POWER_OUT mapped to GPIOP3 which cannot be held in
x86-power-control as it disables the pass-through when claimed.  So, it
is always released after the power-control action is completed.

Thanks,
-Jason

>
> Hope that helps,
>
> Andrew
>
Legal Disclaimer :
The information contained in this message may be privileged and confidential.
It is intended to be read only by the individual or entity to whom it is addressed
or by their designee. If the reader of this message is not the intended recipient,
you are on notice that any distribution of this message, in any form,
is strictly prohibited. If you have received this message in error,
please immediately notify the sender and delete or destroy any copy of this message!