Loading arch/arm64/boot/dts/qcom/msmskunk.dtsi +13 −0 Original line number Diff line number Diff line Loading @@ -519,6 +519,19 @@ reg = <0x10 8>; }; }; kryo3xx-erp { compatible = "arm,arm64-kryo3xx-cpu-erp"; interrupts = <1 6 4>, <1 7 4>, <0 34 4>, <0 35 4>; interrupt-names = "l1-l2-faultirq", "l1-l2-errirq", "l3-scu-errirq", "l3-scu-faultirq"; }; }; &pcie_0_gdsc { Loading arch/arm64/include/asm/kryo3xx-arm64-edac.h 0 → 100644 +22 −0 Original line number Diff line number Diff line /* Copyright (c) 2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef ASM_KRYO3xx_EDAC_H #define ASM_KRYO3xx_EDAC_H #if defined(CONFIG_EDAC_KRYO3XX_ARM64) void kryo3xx_poll_cache_errors(void *info); #else static inline void kryo3xx_poll_cache_errors(void *info) { } #endif #endif arch/arm64/mm/fault.c +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #include <asm/system_misc.h> #include <asm/pgtable.h> #include <asm/tlbflush.h> #include <asm/kryo3xx-arm64-edac.h> static const char *fault_name(unsigned int esr); Loading Loading @@ -477,6 +478,7 @@ static int do_alignment_fault(unsigned long addr, unsigned int esr, */ static int do_bad(unsigned long addr, unsigned int esr, struct pt_regs *regs) { kryo3xx_poll_cache_errors(NULL); return 1; } Loading drivers/edac/Kconfig +41 −0 Original line number Diff line number Diff line Loading @@ -413,6 +413,47 @@ config EDAC_SYNOPSYS Support for error detection and correction on the Synopsys DDR memory controller. config EDAC_KRYO3XX_ARM64 depends on EDAC_MM_EDAC && ARM64 tristate "ARM KRYO3XX Gold and Silver L1/L2/L3/SCU Caches" help Support for error detection and correction on the Kryo3xx Gold and Silver CPUs. Reports errors caught by Kryo3xx ECC mechanism. For debugging issues having to do with stability and overall system health, you should probably say 'Y' here. config EDAC_KRYO3XX_ARM64_POLL depends on EDAC_KRYO3XX_ARM64 bool "Poll on kryo3xx ECC registers - kryo3xx" help This option chooses whether or not you want to poll on the Kryo3xx ECC registers. When this is enabled, the polling rate can be set as a module parameter. By default, it will call the polling function every second. This option should only be used if the associated interrupt lines are not enabled. config EDAC_KRYO3XX_ARM64_PANIC_ON_CE depends on EDAC_KRYO3XX_ARM64 bool "Panic on correctable errors - kryo3xx" help Forcibly cause a kernel panic if an correctable error (CE) is detected, even though the error is (by definition) correctable and would otherwise result in no adverse system effects. This can reduce debugging times on hardware which may be operating at voltages or frequencies outside normal specification. For production builds, you should definitely say 'N' here. config EDAC_KRYO3XX_ARM64_PANIC_ON_UE depends on EDAC_KRYO3XX_ARM64 bool "Panic on uncorrectable errors - kryo3xx" help Forcibly cause a kernel panic if an uncorrectable error (UE) is detected. This can reduce debugging times on hardware which may be operating at voltages or frequencies outside normal specification. For production builds, you should probably say 'N' here. config EDAC_XGENE tristate "APM X-Gene SoC" depends on EDAC_MM_EDAC && (ARM64 || COMPILE_TEST) Loading drivers/edac/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -69,5 +69,6 @@ obj-$(CONFIG_EDAC_OCTEON_LMC) += octeon_edac-lmc.o obj-$(CONFIG_EDAC_OCTEON_PCI) += octeon_edac-pci.o obj-$(CONFIG_EDAC_ALTERA) += altera_edac.o obj-$(CONFIG_EDAC_KRYO3XX_ARM64) += kryo3xx_arm64_edac.o obj-$(CONFIG_EDAC_SYNOPSYS) += synopsys_edac.o obj-$(CONFIG_EDAC_XGENE) += xgene_edac.o Loading
arch/arm64/boot/dts/qcom/msmskunk.dtsi +13 −0 Original line number Diff line number Diff line Loading @@ -519,6 +519,19 @@ reg = <0x10 8>; }; }; kryo3xx-erp { compatible = "arm,arm64-kryo3xx-cpu-erp"; interrupts = <1 6 4>, <1 7 4>, <0 34 4>, <0 35 4>; interrupt-names = "l1-l2-faultirq", "l1-l2-errirq", "l3-scu-errirq", "l3-scu-faultirq"; }; }; &pcie_0_gdsc { Loading
arch/arm64/include/asm/kryo3xx-arm64-edac.h 0 → 100644 +22 −0 Original line number Diff line number Diff line /* Copyright (c) 2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef ASM_KRYO3xx_EDAC_H #define ASM_KRYO3xx_EDAC_H #if defined(CONFIG_EDAC_KRYO3XX_ARM64) void kryo3xx_poll_cache_errors(void *info); #else static inline void kryo3xx_poll_cache_errors(void *info) { } #endif #endif
arch/arm64/mm/fault.c +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #include <asm/system_misc.h> #include <asm/pgtable.h> #include <asm/tlbflush.h> #include <asm/kryo3xx-arm64-edac.h> static const char *fault_name(unsigned int esr); Loading Loading @@ -477,6 +478,7 @@ static int do_alignment_fault(unsigned long addr, unsigned int esr, */ static int do_bad(unsigned long addr, unsigned int esr, struct pt_regs *regs) { kryo3xx_poll_cache_errors(NULL); return 1; } Loading
drivers/edac/Kconfig +41 −0 Original line number Diff line number Diff line Loading @@ -413,6 +413,47 @@ config EDAC_SYNOPSYS Support for error detection and correction on the Synopsys DDR memory controller. config EDAC_KRYO3XX_ARM64 depends on EDAC_MM_EDAC && ARM64 tristate "ARM KRYO3XX Gold and Silver L1/L2/L3/SCU Caches" help Support for error detection and correction on the Kryo3xx Gold and Silver CPUs. Reports errors caught by Kryo3xx ECC mechanism. For debugging issues having to do with stability and overall system health, you should probably say 'Y' here. config EDAC_KRYO3XX_ARM64_POLL depends on EDAC_KRYO3XX_ARM64 bool "Poll on kryo3xx ECC registers - kryo3xx" help This option chooses whether or not you want to poll on the Kryo3xx ECC registers. When this is enabled, the polling rate can be set as a module parameter. By default, it will call the polling function every second. This option should only be used if the associated interrupt lines are not enabled. config EDAC_KRYO3XX_ARM64_PANIC_ON_CE depends on EDAC_KRYO3XX_ARM64 bool "Panic on correctable errors - kryo3xx" help Forcibly cause a kernel panic if an correctable error (CE) is detected, even though the error is (by definition) correctable and would otherwise result in no adverse system effects. This can reduce debugging times on hardware which may be operating at voltages or frequencies outside normal specification. For production builds, you should definitely say 'N' here. config EDAC_KRYO3XX_ARM64_PANIC_ON_UE depends on EDAC_KRYO3XX_ARM64 bool "Panic on uncorrectable errors - kryo3xx" help Forcibly cause a kernel panic if an uncorrectable error (UE) is detected. This can reduce debugging times on hardware which may be operating at voltages or frequencies outside normal specification. For production builds, you should probably say 'N' here. config EDAC_XGENE tristate "APM X-Gene SoC" depends on EDAC_MM_EDAC && (ARM64 || COMPILE_TEST) Loading
drivers/edac/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -69,5 +69,6 @@ obj-$(CONFIG_EDAC_OCTEON_LMC) += octeon_edac-lmc.o obj-$(CONFIG_EDAC_OCTEON_PCI) += octeon_edac-pci.o obj-$(CONFIG_EDAC_ALTERA) += altera_edac.o obj-$(CONFIG_EDAC_KRYO3XX_ARM64) += kryo3xx_arm64_edac.o obj-$(CONFIG_EDAC_SYNOPSYS) += synopsys_edac.o obj-$(CONFIG_EDAC_XGENE) += xgene_edac.o