[v2,0/5] irqchip/gic-v3: Disable pseudo NMIs on Mediatek Chromebooks w/ bad FW

Message ID 20230515131353.v2.cover@dianders
Headers
Series irqchip/gic-v3: Disable pseudo NMIs on Mediatek Chromebooks w/ bad FW |

Message

Doug Anderson May 15, 2023, 8:13 p.m. UTC
  As talked about in the bindings patch included in this series
("dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for
Mediatek SoCs w/ broken FW"), many Mediatek-based Chromebooks shipped
with firmware that doesn't properly save/restore some GICR
registers. This causes the system to crash if "pseudo NMIs" are turned
on.

This series makes sure that we never allow turning on "pseudo NMIs" if
we are running with the problematic firmware.

The patches in this series can land in any order and can go through
entirely different trees. None of the patches are harmful on their
own, but to get things fixed we need all of them.

v2 fixes the quirk name and also moves the quirk out of the SoC.dtsi
file and into the Chromebook file. This, unfortunately, means that
mt8186-based Chromebooks are no longer handled since they don't appear
to be upstream yet. :(

Changes in v2:
- "when CPUs are powered" => "when the GIC redistributors are..."
- Changed "Fixes" tag.
- Moved from mt8183.dtsi to mt8183-kukui.dtsi
- Moved from mt8192.dtsi to mt8192-asurada.dtsi
- Moved from mt8195.dtsi to mt8195-cherry.dtsi
- mediatek,gicr-save-quirk => mediatek,broken-save-restore-fw

Douglas Anderson (5):
  dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for Mediatek
    SoCs w/ broken FW
  irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware
    issues
  arm64: dts: mediatek: mt8183: Add mediatek,broken-save-restore-fw to
    kukui
  arm64: dts: mediatek: mt8192: Add mediatek,broken-save-restore-fw to
    asurada
  arm64: dts: mediatek: mt8195: Add mediatek,broken-save-restore-fw to
    cherry

 .../interrupt-controller/arm,gic-v3.yaml      |  6 ++++++
 .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi |  4 ++++
 .../boot/dts/mediatek/mt8192-asurada.dtsi     |  4 ++++
 .../boot/dts/mediatek/mt8195-cherry.dtsi      |  4 ++++
 drivers/irqchip/irq-gic-common.c              |  8 ++++++--
 drivers/irqchip/irq-gic-common.h              |  1 +
 drivers/irqchip/irq-gic-v3.c                  | 20 +++++++++++++++++++
 7 files changed, 45 insertions(+), 2 deletions(-)
  

Comments

Marc Zyngier May 16, 2023, 9:58 a.m. UTC | #1
On Mon, 15 May 2023 21:13:49 +0100,
Douglas Anderson <dianders@chromium.org> wrote:
> 
> As talked about in the bindings patch included in this series
> ("dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for
> Mediatek SoCs w/ broken FW"), many Mediatek-based Chromebooks shipped
> with firmware that doesn't properly save/restore some GICR
> registers. This causes the system to crash if "pseudo NMIs" are turned
> on.
> 
> This series makes sure that we never allow turning on "pseudo NMIs" if
> we are running with the problematic firmware.
> 
> The patches in this series can land in any order and can go through
> entirely different trees. None of the patches are harmful on their
> own, but to get things fixed we need all of them.
> 
> v2 fixes the quirk name and also moves the quirk out of the SoC.dtsi
> file and into the Chromebook file. This, unfortunately, means that
> mt8186-based Chromebooks are no longer handled since they don't appear
> to be upstream yet. :(
> 
> Changes in v2:
> - "when CPUs are powered" => "when the GIC redistributors are..."
> - Changed "Fixes" tag.
> - Moved from mt8183.dtsi to mt8183-kukui.dtsi
> - Moved from mt8192.dtsi to mt8192-asurada.dtsi
> - Moved from mt8195.dtsi to mt8195-cherry.dtsi
> - mediatek,gicr-save-quirk => mediatek,broken-save-restore-fw
> 
> Douglas Anderson (5):
>   dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for Mediatek
>     SoCs w/ broken FW
>   irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware
>     issues
>   arm64: dts: mediatek: mt8183: Add mediatek,broken-save-restore-fw to
>     kukui
>   arm64: dts: mediatek: mt8192: Add mediatek,broken-save-restore-fw to
>     asurada
>   arm64: dts: mediatek: mt8195: Add mediatek,broken-save-restore-fw to
>     cherry
> 
>  .../interrupt-controller/arm,gic-v3.yaml      |  6 ++++++
>  .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi |  4 ++++
>  .../boot/dts/mediatek/mt8192-asurada.dtsi     |  4 ++++
>  .../boot/dts/mediatek/mt8195-cherry.dtsi      |  4 ++++
>  drivers/irqchip/irq-gic-common.c              |  8 ++++++--
>  drivers/irqchip/irq-gic-common.h              |  1 +
>  drivers/irqchip/irq-gic-v3.c                  | 20 +++++++++++++++++++
>  7 files changed, 45 insertions(+), 2 deletions(-)

I'll take the first two patches as fixes. The rest can be merged via
the soc tree as required.

	M.
  
Matthias Brugger May 29, 2023, 3:41 p.m. UTC | #2
On 16/05/2023 11:58, Marc Zyngier wrote:
> On Mon, 15 May 2023 21:13:49 +0100,
> Douglas Anderson <dianders@chromium.org> wrote:
>>
>> As talked about in the bindings patch included in this series
>> ("dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for
>> Mediatek SoCs w/ broken FW"), many Mediatek-based Chromebooks shipped
>> with firmware that doesn't properly save/restore some GICR
>> registers. This causes the system to crash if "pseudo NMIs" are turned
>> on.
>>
>> This series makes sure that we never allow turning on "pseudo NMIs" if
>> we are running with the problematic firmware.
>>
>> The patches in this series can land in any order and can go through
>> entirely different trees. None of the patches are harmful on their
>> own, but to get things fixed we need all of them.
>>
>> v2 fixes the quirk name and also moves the quirk out of the SoC.dtsi
>> file and into the Chromebook file. This, unfortunately, means that
>> mt8186-based Chromebooks are no longer handled since they don't appear
>> to be upstream yet. :(
>>
>> Changes in v2:
>> - "when CPUs are powered" => "when the GIC redistributors are..."
>> - Changed "Fixes" tag.
>> - Moved from mt8183.dtsi to mt8183-kukui.dtsi
>> - Moved from mt8192.dtsi to mt8192-asurada.dtsi
>> - Moved from mt8195.dtsi to mt8195-cherry.dtsi
>> - mediatek,gicr-save-quirk => mediatek,broken-save-restore-fw
>>
>> Douglas Anderson (5):
>>    dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for Mediatek
>>      SoCs w/ broken FW
>>    irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware
>>      issues
>>    arm64: dts: mediatek: mt8183: Add mediatek,broken-save-restore-fw to
>>      kukui
>>    arm64: dts: mediatek: mt8192: Add mediatek,broken-save-restore-fw to
>>      asurada
>>    arm64: dts: mediatek: mt8195: Add mediatek,broken-save-restore-fw to
>>      cherry
>>
>>   .../interrupt-controller/arm,gic-v3.yaml      |  6 ++++++
>>   .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi |  4 ++++
>>   .../boot/dts/mediatek/mt8192-asurada.dtsi     |  4 ++++
>>   .../boot/dts/mediatek/mt8195-cherry.dtsi      |  4 ++++
>>   drivers/irqchip/irq-gic-common.c              |  8 ++++++--
>>   drivers/irqchip/irq-gic-common.h              |  1 +
>>   drivers/irqchip/irq-gic-v3.c                  | 20 +++++++++++++++++++
>>   7 files changed, 45 insertions(+), 2 deletions(-)
> 
> I'll take the first two patches as fixes. The rest can be merged via
> the soc tree as required.
> 
> 	M.
> 

Patches 3-5 applied now. Thanks!