Abstract
The ARM Cortex-A72 has been around for nearly a decade since its release, widely appearing in devices such as the Raspberry Pi 4 and the first generation AWS Graviton, yet it has long lacked a mainline EDAC (Error Detection And Correction) driver for this core. Now, a driver named a72_edac has entered the edac-for-next branch, aiming to merge into the mainline during the Linux 6.18 merge window, focusing on L1/L2 cache error detection and reporting. This series of patches was submitted by Microsoft engineer Vijay Balakrishna, based on the early driver evolution by Sascha Hauer from Pengutronix; due to the lack of a “robust” error injection method, the mainline version has removed the injection code but has been validated on real platforms. This will significantly enhance the RAS observability and operational diagnostics of the kernel for the A72 platforms that are still in widespread use.

1. Background: A72 Devices Still in the Field, EDAC Arrives Late but Not Absent
- • Widespread Use of Cortex-A72: From embedded systems to cloud environments (such as the first generation Graviton), the A72 remains an active productivity core.
- • Mainline Provides A72-Specific EDAC for the First Time: The patch queue has entered edac-for-next, planned for merging with Linux 6.18, focusing on the detection/reporting path for L1/L2 cache errors.
- • Who is Driving This?: The patches were submitted by Vijay Balakrishna (Microsoft), continuing the early out-of-tree work by Sascha Hauer (Pengutronix); the motivation for cloud vendors to push for mainline integration is evident.
2. Core Insights and Technical Points
- 1. Scope of Detection
- • For the Cortex-A72 L1/L2 cache, errors are detected and recorded by reading the CPU/L2 syndrome registers.
- 2. Integration Method of EDAC Framework
- • Integrated as an EDAC device driver (the patch discussion shows the use/cleanup of interfaces like
<span>edac_device_alloc_ctl_info()</span>), unifying error events reported to the kernel EDAC subsystem (which can then be consumed by user-space tools like sysfs/rasdaemon).
- 3. No Mainline Injection Code
- • Due to the lack of a “robust” cache error injection method, the mainline version has removed the injection, but the driver functionality has been tested based on internal code.
- 4. Evolution of Engineering Details
- • During version advancement, it was renamed to
<span>a72_edac.c</span>, organizing macros and naming, utilizing<span>smp_call_function_single()</span><code><span> for per-CPU access and handling CPU hotplugging, and adding the </span><code><span>edac-enabled</span>property for A72 on the DT side.
Terminology Supplement: Observability — refers to the ability to infer and diagnose the internal state of a system through logs, metrics, tracing, etc.; EDAC events are one of the important signal sources for the kernel’s RAS (Reliability, Availability, and Serviceability).
3. Application Scenarios: Who Will Benefit Immediately?
- • Cloud and Large-Scale Clusters: Cloud instances/edge nodes targeting A72 (such as legacy environments) can capture cache errors earlier and trigger SLO/repair interactions (in conjunction with rasdaemon/alert platforms).
- • Embedded/Industrial Scenarios: A72 devices like the Raspberry Pi 4 running in high-temperature/electromagnetic noise environments can use EDAC events to help trace sporadic crashes or performance jitter.
- • Distribution and Kernel Maintainers: Opening a72_edac as a default or optional module will enhance the RAS support matrix for A72 models.
4. Driver Implementation Architecture Diagram

Key Points in the Diagram
- • Enable EDAC for A72 platforms through DT
<span>edac-enabled</span>; the driver registers with the<span>EDAC core</span>during the<span>probe</span>phase. - • The driver uses per-CPU calls to read the L1/L2 syndrome registers (ECC syndrome registers) and immediately clears them upon a hit, avoiding overwriting.
- • Events are uniformly exported by the EDAC core (sysfs/tracepoint), with user-space tools like rasdaemon aggregating alerts.
5. Implementation Recommendations
- • Enable and Monitor: Load
<span>a72_edac</span>on A72 platforms, linking with rasdaemon and existing monitoring to establish trends and alert thresholds for cache errors. - • Firmware/Electrical Coordination: Cache errors may be related to power supply temperature; it is recommended to analyze in conjunction with temperature/voltage telemetry (enhancing overall Observability).
- • Distribution Packaging: Build
<span>a72_edac</span>as a default module; enable<span>edac-enabled</span>in the kernel config/DT for A72 models.
6. Conclusion
The introduction of a72_edac fills the RAS puzzle for A72 platforms in the mainline kernel: even if it arrives late, it can provide a more diagnosable runtime environment for the vast number of devices in cloud and embedded applications. If a more universal error injection mechanism emerges in the future, the testability of EDAC could see further improvements.