#define A57_L2_UE 7
#define L2_EXT_UE 8
#define CCI_UE 9
+#define KRYO2XX_SILVER_L1_CE 10
+#define KRYO2XX_SILVER_L1_UE 11
+#define KRYO2XX_SILVER_L2_CE 12
+#define KRYO2XX_SILVER_L2_UE 13
+#define KRYO2XX_GOLD_L2_CE 14
+#define KRYO2XX_GOLD_L2_UE 15
#ifdef CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_UE
#define ARM64_ERP_PANIC_ON_UE 1
{"A57 L2 Uncorrectable Error", edac_device_handle_ue },
{"L2 External Error", edac_device_handle_ue },
{"CCI Error", edac_device_handle_ue },
+ {"Kryo2xx Silver L1 Correctable Error", edac_device_handle_ce },
+ {"Kryo2xx Silver L1 Uncorrectable Error", edac_device_handle_ue },
+ {"Kryo2xx Silver L2 Correctable Error", edac_device_handle_ce },
+ {"Kryo2xx Silver L2 Uncorrectable Error", edac_device_handle_ue },
+ {"Kryo2xx Gold L2 Correctable Error", edac_device_handle_ce },
+ {"Kryo2xx Gold L2 Uncorrectable Error", edac_device_handle_ue },
};
#define read_l2merrsr_el1 ({ \
(int) A53_CPUMERRSR_OTHER(cpumerrsr));
if (ed->err == SBE)
- errors[A53_L1_CE].func(ed->drv->edev_ctl, smp_processor_id(),
- L1_CACHE, errors[A53_L1_CE].msg);
+ errors[KRYO2XX_SILVER_L1_CE].func(ed->drv->edev_ctl, smp_processor_id(),
+ L1_CACHE, errors[KRYO2XX_SILVER_L1_CE].msg);
else if (ed->err == DBE)
- errors[A53_L1_UE].func(ed->drv->edev_ctl, smp_processor_id(),
- L1_CACHE, errors[A53_L1_UE].msg);
+ errors[KRYO2XX_SILVER_L1_UE].func(ed->drv->edev_ctl, smp_processor_id(),
+ L1_CACHE, errors[KRYO2XX_SILVER_L1_UE].msg);
write_cpumerrsr_el1(0);
}
(int) A53_L2MERRSR_OTHER(l2merrsr));
if (ed->err == SBE)
- errors[A53_L2_CE].func(ed->drv->edev_ctl, smp_processor_id(),
- L2_CACHE, errors[A53_L2_CE].msg);
+ errors[KRYO2XX_SILVER_L2_CE].func(ed->drv->edev_ctl, smp_processor_id(),
+ L2_CACHE, errors[KRYO2XX_SILVER_L2_CE].msg);
else if (ed->err == DBE)
- errors[A53_L2_UE].func(ed->drv->edev_ctl, smp_processor_id(),
- L2_CACHE, errors[A53_L2_UE].msg);
+ errors[KRYO2XX_SILVER_L2_UE].func(ed->drv->edev_ctl, smp_processor_id(),
+ L2_CACHE, errors[KRYO2XX_SILVER_L2_UE].msg);
write_l2merrsr_el1(0);
}
if (KRYO2XX_GOLD_L2MERRSR_FATAL(l2merrsr))
ed->err = DBE;
- edac_printk(KERN_CRIT, EDAC_CPU, "Gold L2 %s Error detected\n",
+ edac_printk(KERN_CRIT, EDAC_CPU, "Kryo2xx Gold L2 %s Error detected\n",
err_name[ed->err]);
kryo2xx_gold_print_error_state_regs();
if (ed->err == DBE)
(int) KRYO2XX_GOLD_L2MERRSR_OTHER(l2merrsr));
if (ed->err == SBE) {
- errors[A57_L2_CE].func(ed->drv->edev_ctl, smp_processor_id(),
- L2_CACHE, errors[A57_L2_CE].msg);
+ errors[KRYO2XX_GOLD_L2_CE].func(ed->drv->edev_ctl, smp_processor_id(),
+ L2_CACHE, errors[KRYO2XX_GOLD_L2_CE].msg);
} else if (ed->err == DBE) {
- errors[A57_L2_UE].func(ed->drv->edev_ctl, smp_processor_id(),
- L2_CACHE, errors[A57_L2_UE].msg);
+ errors[KRYO2XX_GOLD_L2_UE].func(ed->drv->edev_ctl, smp_processor_id(),
+ L2_CACHE, errors[KRYO2XX_GOLD_L2_UE].msg);
}
write_l2merrsr_el1(0);
}