linux-edac.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
To: Rob Herring <robh@kernel.org>,
	Michal Simek <michal.simek@xilinx.com>,
	Borislav Petkov <bp@alien8.de>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Tony Luck <tony.luck@intel.com>
Cc: Serge Semin <Sergey.Semin@baikalelectronics.ru>,
	Serge Semin <fancer.lancer@gmail.com>,
	Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>,
	Michail Ivanov <Michail.Ivanov@baikalelectronics.ru>,
	Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>,
	Punnaiah Choudary Kalluri  <punnaiah.choudary.kalluri@xilinx.com>,
	Manish Narani <manish.narani@xilinx.com>,
	Dinh Nguyen <dinguyen@kernel.org>,
	James Morse <james.morse@arm.com>,
	Robert Richter <rric@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	<devicetree@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-edac@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH 00/20] EDAC/mc/synopsys: Various fixes and cleanups
Date: Mon, 22 Aug 2022 22:07:10 +0300	[thread overview]
Message-ID: <20220822190730.27277-1-Sergey.Semin@baikalelectronics.ru> (raw)

This patchset is a first one in the series created in the framework of
my Baikal-T1 DDRC-related work:

[1: In-progress] EDAC/mc/synopsys: Various fixes and cleanups
Link: ---you are looking at it---
[2: To be submitted] EDAC/synopsys: Add generic DDRC info and address mapping
Link:
[3: To be submitted] EDAC/synopsys: Add generic resources and Baikal-T1 support
Link:

Note the patchsets above must be merged in the same order as they are
placed in the list in order to prevent conflicts. Nothing prevents them
from being reviewed synchronously though. Any tests are very welcome.
Thanks in advance.

Regarding this series content. It's an initial patchset which
traditionally provides various fixes, cleanups and modifications required
for the more comfortable further features development. The main goal of it
though is to detach the Xilinx Zynq A05 DDRC related code into the
dedicated driver since first it has nothing to do with the Synopsys DW
uMCTL2 DDR controller and second it will be a great deal obstacle on the
way of extending the Synopsys-part functionality.

The series starts with fixes patches, which in short concern the next
aspects: touching the ZynqMP-specific CSRs on the Xilinx ZinqMP platform
only, serializing an access to the ECCCLR register, adding correct memory
devices type detection, setting a correct value to the
mem_ctl_info.scrub_cap field, dropping an erroneous ADDRMAP[4] parsing and
getting back a correct order of the ECC errors info detection procedure.

Afterwards the patchset provides several cleanup patches required for the
more coherent code splitting up (Xilinx Zynq A05 and Synopsys DW uMCTL2)
so the provided modifications would be useful in both drivers. First we
get to replace the platform resource manual IO-remapping with the
devm_platform_ioremap_resource() method call. Secondly we suggest to drop:
internal CE/UE errors counters, local to_mci() macros definition, some
redundant ecc_error_info structure fields and redundant info from the
error message, duplicated dimm->nr_pages debug printout and spaces from
the MEM_TYPE flags declarations. (The later two updates concern the MCI
core part.) Thirdly before splitting up the driver we need to add an
unique MC index allocation infrastructure to the MCI core.  It's required
since after splitting the driver up we'll need to make sure both device
types could be correctly probed on the same platform. Finally the Xilinx
Zynq A05 part of the driver is moved out to a dedicated driver where it
should been originally placed. After that the platform-specific setups API
is removed from the Synopsys DW uMCTL2 DDRC driver since it's no longer
required.

Finally as the cherry on the cake we suggest to unify the DW uMCTL2 DDRC
driver entities naming and replace the open-coded "shift/mask" patter with
the kernel helpers like BIT/GENMASK/FIELD_x in there. It shall
significantly improve the code readability.

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Michail Ivanov <Michail.Ivanov@baikalelectronics.ru>
Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
Cc: Punnaiah Choudary Kalluri <punnaiah.choudary.kalluri@xilinx.com>
Cc: Manish Narani <manish.narani@xilinx.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: James Morse <james.morse@arm.com>
Cc: Robert Richter <rric@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-edac@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

Serge Semin (20):
  EDAC/synopsys: Fix native uMCTL2 IRQs handling procedure
  EDAC/synopsys: Fix generic device type detection procedure
  EDAC/synopsys: Fix mci->scrub_cap field setting
  EDAC/synopsys: Drop erroneous ADDRMAP4.addrmap_col_b10 parse
  EDAC/synopsys: Fix reading errors count before ECC status
  EDAC/synopsys: Use platform device devm ioremap method
  EDAC/synopsys: Drop internal CE and UE counters
  EDAC/synopsys: Drop local to_mci macro implementation
  EDAC/synopsys: Drop struct ecc_error_info.blknr field
  EDAC/synopsys: Shorten out struct ecc_error_info.bankgrpnr field name
  EDAC/synopsys: Drop redundant info from error message
  EDAC/mc: Replace spaces with tabs in memtype flags definition
  EDAC/mc: Drop duplicated dimm->nr_pages debug printout
  EDAC/mc: Init DIMM labels in MC registration method
  EDAC/mc: Add MC unique index allocation procedure
  dt-bindings: memory: snps: Detach Zynq DDRC controller support
  EDAC/synopsys: Detach Zynq DDRC controller support
  EDAC/synopsys: Drop unused platform-specific setup API
  EDAC/synopsys: Unify the driver entities naming
  EDAC/synopsys: Convert to using BIT/GENMASK/FIELD_x macros

 .../snps,dw-umctl2-ddrc.yaml                  |  51 +
 .../memory-controllers/synopsys,ddrc-ecc.yaml |  76 --
 .../xlnx,zynq-ddrc-a05.yaml                   |  38 +
 MAINTAINERS                                   |   3 +
 drivers/edac/Kconfig                          |   9 +-
 drivers/edac/Makefile                         |   1 +
 drivers/edac/edac_mc.c                        | 136 ++-
 drivers/edac/edac_mc.h                        |   4 +
 drivers/edac/synopsys_edac.c                  | 902 ++++++------------
 drivers/edac/zynq_edac.c                      | 504 ++++++++++
 include/linux/edac.h                          |  30 +-
 11 files changed, 1037 insertions(+), 717 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml
 delete mode 100644 Documentation/devicetree/bindings/memory-controllers/synopsys,ddrc-ecc.yaml
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/xlnx,zynq-ddrc-a05.yaml
 create mode 100644 drivers/edac/zynq_edac.c

-- 
2.35.1


             reply	other threads:[~2022-08-22 19:07 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-22 19:07 Serge Semin [this message]
2022-08-22 19:07 ` [PATCH 01/20] EDAC/synopsys: Fix native uMCTL2 IRQs handling procedure Serge Semin
2022-08-22 19:07 ` [PATCH 02/20] EDAC/synopsys: Fix generic device type detection procedure Serge Semin
2022-08-22 19:07 ` [PATCH 03/20] EDAC/synopsys: Fix mci->scrub_cap field setting Serge Semin
2022-08-22 19:07 ` [PATCH 04/20] EDAC/synopsys: Drop erroneous ADDRMAP4.addrmap_col_b10 parse Serge Semin
2022-08-22 19:07 ` [PATCH 05/20] EDAC/synopsys: Fix reading errors count before ECC status Serge Semin
2022-08-22 19:07 ` [PATCH 06/20] EDAC/synopsys: Use platform device devm ioremap method Serge Semin
2022-08-22 19:07 ` [PATCH 07/20] EDAC/synopsys: Drop internal CE and UE counters Serge Semin
2022-08-22 19:07 ` [PATCH 08/20] EDAC/synopsys: Drop local to_mci macro implementation Serge Semin
2022-08-22 19:07 ` [PATCH 09/20] EDAC/synopsys: Drop struct ecc_error_info.blknr field Serge Semin
2022-08-22 19:07 ` [PATCH 10/20] EDAC/synopsys: Shorten out struct ecc_error_info.bankgrpnr field name Serge Semin
2022-08-22 19:07 ` [PATCH 11/20] EDAC/synopsys: Drop redundant info from error message Serge Semin
2022-08-22 19:07 ` [PATCH 12/20] EDAC/mc: Replace spaces with tabs in memtype flags definition Serge Semin
2022-09-01  6:59   ` Borislav Petkov
2022-08-22 19:07 ` [PATCH 13/20] EDAC/mc: Drop duplicated dimm->nr_pages debug printout Serge Semin
2022-09-01  7:00   ` Borislav Petkov
2022-08-22 19:07 ` [PATCH 14/20] EDAC/mc: Init DIMM labels in MC registration method Serge Semin
2022-08-22 19:07 ` [PATCH 15/20] EDAC/mc: Add MC unique index allocation procedure Serge Semin
2022-08-22 19:07 ` [PATCH 16/20] dt-bindings: memory: snps: Detach Zynq DDRC controller support Serge Semin
2022-08-23  8:17   ` Krzysztof Kozlowski
2022-08-23  8:22     ` Krzysztof Kozlowski
2022-08-23  8:27       ` Serge Semin
2022-08-23  8:30         ` Krzysztof Kozlowski
2022-08-23  8:36           ` Serge Semin
2022-08-23  8:25     ` Serge Semin
2022-08-23  8:32     ` Serge Semin
2022-08-23  8:44       ` Krzysztof Kozlowski
2022-08-23 11:45         ` Serge Semin
2022-08-23 12:03           ` Krzysztof Kozlowski
2022-08-24 17:27             ` Serge Semin
2022-08-25  6:06               ` Krzysztof Kozlowski
2022-08-25 13:23                 ` Serge Semin
2022-08-23  8:26   ` Krzysztof Kozlowski
2022-08-22 19:07 ` [PATCH 17/20] EDAC/synopsys: " Serge Semin
2022-08-22 19:07 ` [PATCH 18/20] EDAC/synopsys: Drop unused platform-specific setup API Serge Semin
2022-08-23 23:42   ` kernel test robot
2022-08-22 19:07 ` [PATCH 19/20] EDAC/synopsys: Unify the driver entities naming Serge Semin
2022-08-24  1:15   ` kernel test robot
2022-08-22 19:07 ` [PATCH 20/20] EDAC/synopsys: Convert to using BIT/GENMASK/FIELD_x macros Serge Semin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220822190730.27277-1-Sergey.Semin@baikalelectronics.ru \
    --to=sergey.semin@baikalelectronics.ru \
    --cc=Alexey.Malahov@baikalelectronics.ru \
    --cc=Michail.Ivanov@baikalelectronics.ru \
    --cc=Pavel.Parkhomenko@baikalelectronics.ru \
    --cc=bp@alien8.de \
    --cc=devicetree@vger.kernel.org \
    --cc=dinguyen@kernel.org \
    --cc=fancer.lancer@gmail.com \
    --cc=james.morse@arm.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manish.narani@xilinx.com \
    --cc=mchehab@kernel.org \
    --cc=michal.simek@xilinx.com \
    --cc=punnaiah.choudary.kalluri@xilinx.com \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=rric@kernel.org \
    --cc=tony.luck@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).