Lines Matching +full:cortex +full:- +full:a72

1 // SPDX-License-Identifier: GPL-2.0
3 * Cortex A72 EDAC L1 and L2 cache error detection
20 #define DRVNAME "a72-edac"
51 u64 cpu_mesr = mesr->cpu_mesr; in report_errors()
52 u64 l2_mesr = mesr->l2_mesr; in report_errors()
61 str = "L1-I Tag RAM"; in report_errors()
64 str = "L1-I Data RAM"; in report_errors()
67 str = "L1-D Tag RAM"; in report_errors()
70 str = "L1-D Data RAM"; in report_errors()
106 mesr->cpu_mesr = read_sysreg_s(SYS_CPUMERRSR_EL1); in read_errors()
107 if (mesr->cpu_mesr & CPUMERRSR_EL1_VALID) { in read_errors()
111 mesr->l2_mesr = read_sysreg_s(SYS_L2MERRSR_EL1); in read_errors()
112 if (mesr->l2_mesr & L2MERRSR_EL1_VALID) { in read_errors()
134 struct device *dev = &pdev->dev; in a72_edac_probe()
141 return -ENOMEM; in a72_edac_probe()
143 edac_ctl->edac_check = a72_edac_check; in a72_edac_probe()
144 edac_ctl->dev = dev; in a72_edac_probe()
145 edac_ctl->mod_name = dev_name(dev); in a72_edac_probe()
146 edac_ctl->dev_name = dev_name(dev); in a72_edac_probe()
147 edac_ctl->ctl_name = DRVNAME; in a72_edac_probe()
164 struct edac_device_ctl_info *edac_ctl = dev_get_drvdata(&pdev->dev); in a72_edac_remove()
166 edac_device_del_device(edac_ctl->dev); in a72_edac_remove()
171 { .compatible = "arm,cortex-a72" },
194 of_property_read_bool(np, "edac-enabled")) { in a72_edac_driver_init()
205 a72_pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0); in a72_edac_driver_init()
207 pr_err("failed to register A72 EDAC device\n"); in a72_edac_driver_init()
225 MODULE_DESCRIPTION("Cortex A72 L1 and L2 cache EDAC driver");