lkml.org 
[lkml]   [2022]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 00/20] EDAC/mc/synopsys: Various fixes and cleanups
    Date
    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

    \
     
     \ /
      Last update: 2022-08-22 21:09    [W:4.200 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site