mirror-linux/Documentation/devicetree/bindings/interrupt-controller
Douglas Anderson 43cd3ddbff dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for Mediatek SoCs w/ broken FW
When trying to turn on the "pseudo NMI" kernel feature in Linux, it
was discovered that all Mediatek-based Chromebooks that ever shipped
(at least ones with GICv3) had a firmware bug where they wouldn't save
certain GIC "GICR" registers properly. If a processor ever entered a
suspend/idle mode where the GICR registers lost state then they'd be
reset to their default state.

As a result of the bug, if you try to enable "pseudo NMIs" on the
affected devices then certain interrupts will unexpectedly get
promoted to be "pseudo NMIs" and cause crashes / freezes / general
mayhem.

ChromeOS is looking to start turning on "pseudo NMIs" in production to
make crash reports more actionable. To do so, we will release firmware
updates for at least some of the affected Mediatek Chromebooks.
However, even when we update the firmware of a Chromebook it's always
possible that a user will end up booting with old firmware. We need to
be able to detect when we're running with firmware that will crash and
burn if pseudo NMIs are enabled.

The current plan is:
* Update the device trees of all affected Chromebooks to include the
  'mediatek,broken-save-restore-fw' property. The kernel can use this
  to know not to enable certain features like "pseudo NMI". NOTE:
  device trees for Chromebooks are never baked into the firmware but
  are bundled with the kernel. A kernel will never be configured to
  use "pseudo NMIs" and be bundled with an old device tree.
* When we get a fixed firmware for one of these Chromebooks, it will
  patch the device tree to remove this property.

For some details, you can also see the public bug
<https://issuetracker.google.com/281831288>

Reviewed-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230515131353.v2.1.Iabe67a827e206496efec6beb5616d5a3b99c1e65@changeid
2023-05-16 10:42:57 +01:00
..
abilis,tb10x-ictl.txt
actions,owl-sirq.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
al,alpine-msix.txt
allwinner,sun4i-a10-ic.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
allwinner,sun6i-a31-r-intc.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
allwinner,sun7i-a20-sc-nmi.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
amazon,al-fic.txt
amlogic,meson-gpio-intc.txt dt-bindings: interrupt-controller: New binding for Meson-S4 SoCs 2022-03-04 17:01:03 +00:00
apple,aic.yaml dt-bindings: Drop type from 'cpus' property 2022-12-06 14:50:35 -06:00
apple,aic2.yaml dt-bindings: interrupt-controller: apple,aic2: Add apple,t8112-aic compatible 2023-03-28 19:39:05 +09:00
arm,gic-v3.yaml dt-bindings: interrupt-controller: arm,gic-v3: Add quirk for Mediatek SoCs w/ broken FW 2023-05-16 10:42:57 +01:00
arm,gic.yaml dt-bindings: yamllint: Require a space after a comment '#' 2023-03-08 09:04:53 -06:00
arm,nvic.txt
arm,versatile-fpga-irq.txt
arm,vic.yaml
aspeed,ast2xxx-scu-ic.txt
aspeed,ast2400-i2c-ic.txt
aspeed,ast2400-vic.txt
atmel,aic.txt
brcm,bcm2835-armctrl-ic.txt
brcm,bcm2836-l1-intc.txt
brcm,bcm6345-l1-intc.txt
brcm,bcm7038-l1-intc.yaml dt-binding: interrupt-controller: Convert BCM7038 L1 intc to YAML 2021-12-14 14:27:58 -06:00
brcm,bcm7120-l2-intc.yaml dt-bindings: interrupt-controller: brcm,bcm7120-l2-intc: Fix 'brcm,int-fwd-mask' differing type 2023-01-31 19:22:34 -06:00
brcm,l2-intc.yaml dt-bindings: interrupt-controller: Convert Broadcom STB L2 to YAML 2021-12-14 14:27:58 -06:00
cdns,xtensa-mx.txt
cdns,xtensa-pic.txt
cirrus,clps711x-intc.txt
csky,apb-intc.txt
csky,mpintc.txt
digicolor-ic.txt
ezchip,nps400-ic.txt
faraday,ftintc010.txt
fsl,intmux.yaml dt-bindings: FEC/i.MX DWMAC and INTMUX maintainer 2022-12-12 13:04:52 -08:00
fsl,irqsteer.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
fsl,ls-extirq.yaml dt-bindings: interrupt-controller: fsl,ls-extirq: convert to YAML 2022-04-28 17:45:50 -05:00
fsl,ls-scfg-msi.txt
fsl,mu-msi.yaml dt-bindings: irqchip: Describe the IMX MU block as a MSI controller 2022-09-29 17:19:36 +01:00
google,goldfish-pic.txt
hisilicon,mbigen-v2.txt
idt,32434-pic.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
img,pdc-intc.txt
ingenic,intc.yaml dt-bindings: drop redundant part of title (end) 2022-12-16 11:41:49 -06:00
intel,ce4100-ioapic.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
intel,ce4100-lapic.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
intel,ixp4xx-interrupt.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
interrupts.txt
jcore,aic.txt
kontron,sl28cpld-intc.yaml
loongson,cpu-interrupt-controller.yaml dt-bindings: interrupt-controller: loongarch: Fix mismatched compatible 2023-04-11 14:39:15 -05:00
loongson,htpic.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
loongson,htvec.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
loongson,liointc.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
loongson,ls1x-intc.yaml dt-bindings: interrupt-controller: convert loongson,ls1x-intc.txt to json-schema 2023-02-21 10:22:04 -06:00
loongson,pch-msi.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
loongson,pch-pic.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
lsi,zevio-intc.txt
marvell,armada-8k-pic.txt
marvell,armada-370-xp-mpic.txt
marvell,gicp.txt
marvell,icu.txt
marvell,odmi-controller.txt
marvell,orion-intc.txt
marvell,sei.txt
mediatek,mtk-cirq.yaml dt-bindings: interrupt-controller: mediatek,cirq: Document MT8192 2022-11-28 11:43:42 +00:00
mediatek,sysirq.txt dt-bindings: irq: mtk, sysirq: add support for mt8365 2023-03-11 07:44:16 -06:00
microchip,eic.yaml
microchip,pic32-evic.txt
mrvl,intc.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
mscc,ocelot-icpu-intr.yaml dt-bindings: interrupt-controller: Drop unneeded quotes 2023-04-04 12:01:52 -05:00
msi-controller.yaml
msi.txt
mstar,mst-intc.yaml
mti,cpu-interrupt-controller.yaml dt-bindings: interrupt-controller: migrate MIPS CPU interrupt controller text bindings to YAML 2022-09-26 14:13:33 -05:00
mti,gic.yaml
nuvoton,wpcm450-aic.yaml dt-bindings: drop redundant part of title (end, part three) 2022-12-16 11:41:49 -06:00
nvidia,tegra20-ictlr.txt
nxp,lpc3220-mic.txt
open-pic.txt
opencores,or1k-pic.txt
openrisc,ompic.txt
qca,ath79-cpu-intc.txt
qca,ath79-misc-intc.txt
qcom,mpm.yaml dt-bindings: interrupt-controller: Add Qualcomm MPM support 2022-03-11 19:19:46 +00:00
qcom,pdc.yaml dt-bindings: interrupt-controller: qcom,pdc: document qcom,qdu1000-pdc 2023-04-18 18:46:20 -05:00
rda,8810pl-intc.yaml dt-bindings: interrupt-controller: Convert rda,8810pl-intc to YAML 2022-06-16 12:01:14 -06:00
realtek,rtl-intc.yaml dt-bindings: drop redundant part of title (end) 2022-12-16 11:41:49 -06:00
renesas,intc-irqpin.yaml
renesas,irqc.yaml dt-bindings: drop redundant part of title (beginning) 2022-12-16 11:41:49 -06:00
renesas,rza1-irqc.yaml
renesas,rzg2l-irqc.yaml dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/V2L SoC 2022-07-19 12:00:10 +01:00
riscv,cpu-intc.txt
samsung,exynos4210-combiner.yaml dt-bindings: update Krzysztof Kozlowski's email 2022-04-04 15:43:20 +02:00
sifive,plic-1.0.0.yaml Devicetree updates for v6.4, part 1: 2023-04-27 09:23:57 -07:00
snps,arc700-intc.txt
snps,archs-idu-intc.txt
snps,archs-intc.txt
snps,dw-apb-ictl.txt
socionext,synquacer-exiu.yaml dt-bindings: interrupt-controller: Convert Synquacer EXIU to DT schema 2023-01-08 18:14:17 -06:00
socionext,uniphier-aidet.yaml dt-bindings: interrupt-controller/uniphier-aidet: Add bindings for NX1 SoC 2022-06-09 17:41:57 +01:00
st,spear3xx-shirq.txt
st,sti-irq-syscfg.txt dt-bindings: irqchip: sti: remove stih415/stih416 and stid127 2023-04-18 12:37:03 -05:00
st,stm32-exti.yaml dt-bindings: Remove 'Device Tree Bindings' from end of title: 2022-08-25 14:06:57 -05:00
sunplus,sp7021-intc.yaml dt-bindings: interrupt-controller: Add bindings for SP7021 interrupt controller 2022-07-08 14:23:55 +02:00
technologic,ts4800.txt
ti,cp-intc.txt
ti,keystone-irq.txt
ti,omap-intc-irq.txt
ti,omap2-intc.txt
ti,omap4-wugen-mpu
ti,pruss-intc.yaml
ti,sci-inta.yaml dt-bindings: irqchip: ti,sci-inta: Add optional power-domains property 2023-04-11 08:19:32 -05:00
ti,sci-intr.yaml dt-bindings: interrupt-controller: ti,sci-intr: Fix missing reg property in the binding 2022-09-29 11:13:43 +01:00
via,vt8500-intc.txt