- A new EDAC driver for Xilinx's Versal integrated memory controller
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmU7igwACgkQEsHwGGHe VUowxg/+OB0V3j93bL9TCakU8wa/yoe8nMZZYdnnPUadeC8nKzoW8hblxkLy5b25 3WF8e+CtcergGNqNhPbl+1ozkZCtrVs71JuWRW/TASNoW66nFPJhWtqSwg7TJuMl PPkwodDDKznxTPpGshpw2S1ZR8mU02ts5aws5js8+VuVb8EcEGX5wXdW93zf3Ei8 ZtiSJbxh8Wc4gtqq8iMqXPDiMCoC+oyZ1Y1SQu0h1ZGE5ui2iLMNcagwB2dmQP3q NJYDkZK2aNkPmhqzkZsxtIFzDpXLMzJwgTYqd6Szk3wZuB0K/3rvKq2Eb5dbIzlw X4z6Y1KdhQnQi1Q6EmE6w1qdrrVGcwARRW1z5exQ9ZS3xqQ9OPBS4IlU+Z+2msTJ 1rL81PFgta6b482N87sxeekPt6Y7DMZ+9/UvAwo7YnNq9W+/Q7l/UZXt7DqBjV2G ddyCXHgdWH/365w+EGWLt6tnoQjcXIeA7CJpCJZ/ebpFTRJ43qYj1DhJfcDtIj5L F0Ai9/s/TjnxY8V6sGLn+OlL/MzmNCIioPzhBg1YKcbH3sNO30BE/oAUPgIIqFtl k56bMXO0N2Sn0OjkFpkIGJtDsUW6VRnpmL53CvdHCZUKp0aSRybsL5AlCsHNaCsb p4KVvP2ONzscO+DPf5dOz2/kVZjPZneMyy/5CvRaNWeOkhx/FO0= =3V+h -----END PGP SIGNATURE----- Merge tag 'edac_updates_for_v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras Pull EDAC updates from Borislav Petkov: - A new EDAC driver for Xilinx's Versal integrated memory controller * tag 'edac_updates_for_v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: EDAC/versal: Add a Xilinx Versal memory controller driver dt-bindings: memory-controllers: Add support for Xilinx Versal EDAC for DDRMC
This commit is contained in:
commit
66cc8838c7
@ -0,0 +1,57 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/memory-controllers/xlnx,versal-ddrmc-edac.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Xilinx Versal DDRMC (Integrated DDR Memory Controller)
|
||||
|
||||
maintainers:
|
||||
- Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
|
||||
- Sai Krishna Potthuri <sai.krishna.potthuri@amd.com>
|
||||
|
||||
description:
|
||||
The integrated DDR Memory Controllers (DDRMCs) support both DDR4 and LPDDR4/
|
||||
4X memory interfaces. Versal DDR memory controller has an optional ECC support
|
||||
which correct single bit ECC errors and detect double bit ECC errors.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: xlnx,versal-ddrmc
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: DDR Memory Controller registers
|
||||
- description: NOC registers corresponding to DDR Memory Controller
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: base
|
||||
- const: noc
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
memory-controller@f6150000 {
|
||||
compatible = "xlnx,versal-ddrmc";
|
||||
reg = <0x0 0xf6150000 0x0 0x2000>, <0x0 0xf6070000 0x0 0x20000>;
|
||||
reg-names = "base", "noc";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
@ -23738,6 +23738,13 @@ F: Documentation/devicetree/bindings/media/xilinx/
|
||||
F: drivers/media/platform/xilinx/
|
||||
F: include/uapi/linux/xilinx-v4l2-controls.h
|
||||
|
||||
XILINX VERSAL EDAC DRIVER
|
||||
M: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
|
||||
M: Sai Krishna Potthuri <sai.krishna.potthuri@amd.com>
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/memory-controllers/xlnx,versal-ddrmc-edac.yaml
|
||||
F: drivers/edac/versal_edac.c
|
||||
|
||||
XILINX WATCHDOG DRIVER
|
||||
M: Srinivas Neeli <srinivas.neeli@amd.com>
|
||||
R: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
|
||||
|
@ -561,4 +561,16 @@ config EDAC_NPCM
|
||||
error detection (in-line ECC in which a section 1/8th of the memory
|
||||
device used to store data is used for ECC storage).
|
||||
|
||||
config EDAC_VERSAL
|
||||
tristate "Xilinx Versal DDR Memory Controller"
|
||||
depends on ARCH_ZYNQMP || COMPILE_TEST
|
||||
help
|
||||
Support for error detection and correction on the Xilinx Versal DDR
|
||||
memory controller.
|
||||
|
||||
Report both single bit errors (CE) and double bit errors (UE).
|
||||
Support injecting both correctable and uncorrectable errors
|
||||
for debugging purposes.
|
||||
|
||||
|
||||
endif # EDAC
|
||||
|
@ -86,3 +86,4 @@ obj-$(CONFIG_EDAC_BLUEFIELD) += bluefield_edac.o
|
||||
obj-$(CONFIG_EDAC_DMC520) += dmc520_edac.o
|
||||
obj-$(CONFIG_EDAC_NPCM) += npcm_edac.o
|
||||
obj-$(CONFIG_EDAC_ZYNQMP) += zynqmp_edac.o
|
||||
obj-$(CONFIG_EDAC_VERSAL) += versal_edac.o
|
||||
|
1069
drivers/edac/versal_edac.c
Normal file
1069
drivers/edac/versal_edac.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -100,6 +100,18 @@
|
||||
#define SD_ITAPDLY 0xFF180314
|
||||
#define SD_OTAPDLYSEL 0xFF180318
|
||||
|
||||
/**
|
||||
* XPM_EVENT_ERROR_MASK_DDRMC_CR: Error event mask for DDRMC MC Correctable ECC Error.
|
||||
*/
|
||||
#define XPM_EVENT_ERROR_MASK_DDRMC_CR BIT(18)
|
||||
|
||||
/**
|
||||
* XPM_EVENT_ERROR_MASK_DDRMC_NCR: Error event mask for DDRMC MC Non-Correctable ECC Error.
|
||||
*/
|
||||
#define XPM_EVENT_ERROR_MASK_DDRMC_NCR BIT(19)
|
||||
#define XPM_EVENT_ERROR_MASK_NOC_NCR BIT(13)
|
||||
#define XPM_EVENT_ERROR_MASK_NOC_CR BIT(12)
|
||||
|
||||
enum pm_api_cb_id {
|
||||
PM_INIT_SUSPEND_CB = 30,
|
||||
PM_ACKNOWLEDGE_CB = 31,
|
||||
|
Loading…
x
Reference in New Issue
Block a user