[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250424132118.17074-1-shubhrajyoti.datta@amd.com>
Date: Thu, 24 Apr 2025 18:51:12 +0530
From: Shubhrajyoti Datta <shubhrajyoti.datta@....com>
To: <devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-edac@...r.kernel.org>
CC: <git@....com>, <ptsm@...ux.microsoft.com>, <srivatsa@...il.mit.edu>,
<shubhrajyoti.datta@...il.com>, Krzysztof Kozlowski <krzk@...nel.org>, "Rob
Herring" <robh@...nel.org>, Conor Dooley <conor+dt@...nel.org>, "Borislav
Petkov" <bp@...en8.de>, Tony Luck <tony.luck@...el.com>, James Morse
<james.morse@....com>, Mauro Carvalho Chehab <mchehab@...nel.org>, "Robert
Richter" <rric@...nel.org>, Shubhrajyoti Datta <shubhrajyoti.datta@....com>
Subject: [PATCH v6 0/6] EDAC/Versal NET: Add support for error notification
Adds support for the error notification for the Versal NET EDAC driver.
The driver receives error events via RPMsg instead of directly accessing
hardware registers. The NMC((Network management controller), which has
secure access to DDRMC registers, gathers the necessary information and
transmits it through RPMsg.
During probe, the driver registers with RPMsg and retrieves DDR
configuration by scheduling a work item from the NMC.
Once this is completed, it registers the EDAC controller.
When an error occurs, the NMC sends an RPMsg, notifying the driver.
The EDAC driver handles error reporting for all events.
Also we register the EDAC once and it reports the errors for all the
events including the 8 DDRMC controllers. So while registering we give
the particulars of the 1st controller.
Currently 20 errors has been tested.
Changes in v6:
- Patch added
cdx is compile tested.
- Updated commit message
- Update commit description
- Update the commit message.
- update to the chip name as xlnx,versal-net
- Correct indentation
- Update to xlnx,versal-net-ddrmc5
- Update the kconfig message
- Make the messages uniform
- Add some more supported events
- rename regval to reglo
- combine/ reformat functions
- remove trailing comments
- Remove unneeded comments
- make the amd_mcdi function void
- rename versalnet_rpmsg_edac to versalnet_edac
- Remove the column bit and use them directly
- Update the comments
- Update the mod_name to versalnet_edac
- remove the global priv col and rows
- rename edac_priv to mc_priv
- Update the comment description for dwidth
- Remove error_id enum
- rename the variable par to parity
- make get_ddr_config void
- Fix memory leak of the mcdi structure
- Update the spelling
- Remove the workqueue
Changes in v5:
- Update the binding
- Update the compatible
- Update the handle_error documentation
Changes in v4:
- Update the compatible
- align the example
- Enhance the description for rproc
- Update the compatible
Changes in v3:
- make remove void
Changes in v2:
- Export the symbols for module compilation
- New patch addition
- rename EDAC to memory controller
- update the compatible name
- Add remote proc handle
- Read the data width from the registers
- Remove the dwidth, rank and channel number the same is
read from the RpMsg.
- remove reset
- Add the remote proc requests
- remove probe_once
- reorder the rpmsg registration
- the data width , rank and number of channel is read from message.
Shubhrajyoti Datta (6):
cdx: add the cdx headers to include/linux
cdx: Add DDRMC Commands for DDR Configuration Retrieval
cdx: Export Symbols for MCDI RPC and Initialization
ras: Export log_non_standard_event for External Usage
dt-bindings: memory-controllers: Add support for Versal NET EDAC
EDAC/VersalNET: Add support for error notification
.../xlnx,versal-net-ddrmc5.yaml | 41 +
drivers/cdx/controller/cdx_controller.c | 1 -
drivers/cdx/controller/cdx_rpmsg.c | 1 -
drivers/cdx/controller/mcdi.c | 7 +-
drivers/cdx/controller/mcdi_functions.c | 1 -
drivers/cdx/controller/mcdi_functions.h | 2 +-
drivers/edac/Kconfig | 11 +
drivers/edac/Makefile | 1 +
drivers/edac/versalnet_edac.c | 1108 +++++++++++++++++
drivers/ras/ras.c | 1 +
.../bitfield.h => include/linux/mc_bitfield.h | 0
.../linux}/mc_cdx_pcol.h | 16 +
.../cdx/controller => include/linux}/mcdi.h | 4 +-
13 files changed, 1185 insertions(+), 9 deletions(-)
create mode 100644 Documentation/devicetree/bindings/memory-controllers/xlnx,versal-net-ddrmc5.yaml
create mode 100644 drivers/edac/versalnet_edac.c
rename drivers/cdx/controller/bitfield.h => include/linux/mc_bitfield.h (100%)
rename {drivers/cdx/controller => include/linux}/mc_cdx_pcol.h (97%)
rename {drivers/cdx/controller => include/linux}/mcdi.h (99%)
--
2.17.1
Powered by blists - more mailing lists