Re: [RFC 0/2] Add workaround for core wake-up on IPI for i.MX8MQ

From: Mark Rutland
Date: Mon Jun 10 2019 - 09:23:50 EST


On Mon, Jun 10, 2019 at 03:13:44PM +0300, Abel Vesa wrote:
> This is another alternative for the RFC:
> https://lkml.org/lkml/2019/3/27/545
>
> This new workaround proposal is a little bit more hacky but more contained
> since everything is done within the irq-imx-gpcv2 driver.
>
> Basically, it 'hijacks' the registered gic_raise_softirq __smp_cross_call
> handler and registers instead a wrapper which calls in the 'hijacked'
> handler, after that calling into EL3 which will take care of the actual
> wake up. This time, instead of expanding the PSCI ABI, we use a new vendor SIP.

IIUC from last time [1,2], this erratum affects all interrupts
targetting teh idle CPU, not just IPIs, so even if the bodge is more
self-contained, it doesn't really solve the issue, and there are still
cases where a CPU will not be woken from idle when it should be (e.g.
upon receipt of an LPI).

IIUC, Marc, Lorenzo, and Rafael [1,2,3] all thought that that this was
not worthwhile. What's changed?

Thanks,
Mark.

[1] https://lkml.org/lkml/2019/3/28/197
[2] https://lkml.org/lkml/2019/3/28/203
[3] https://lkml.org/lkml/2019/3/28/198

>
> I also have the patches ready for TF-A but I'll hold on to them until I see if
> this has a chance of getting in.
>
> Abel Vesa (2):
> irqchip: irq-imx-gpcv2: Add workaround for i.MX8MQ ERR11171
> arm64: dts: imx8mq: Add idle states and gpcv2 wake_request broken
> property
>
> arch/arm64/boot/dts/freescale/imx8mq.dtsi | 20 +++++++++++++++
> drivers/irqchip/irq-imx-gpcv2.c | 42 +++++++++++++++++++++++++++++++
> 2 files changed, 62 insertions(+)
>
> --
> 2.7.4
>