28 Jul, 2016

1 commit

  • Pull EDAC updates from Borislav Petkov:
    "This last cycle, Thor was busy adding Arria10 eth FIFO support to the
    altera_edac driver along with other improvements. We have two
    cleanups/fixes too.

    Summary:

    - Altera Arria10 ethernet FIFO buffer support (Thor Thayer)

    - Minor cleanups"

    * tag 'edac_for_4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    ARM: dts: Add Arria10 Ethernet EDAC devicetree entry
    EDAC, altera: Add Arria10 Ethernet EDAC support
    EDAC, altera: Add Arria10 ECC memory init functions
    Documentation: dt: socfpga: Add Arria10 Ethernet binding
    EDAC, altera: Drop some ifdeffery
    EDAC, altera: Add panic flag check to A10 IRQ
    EDAC, altera: Check parent status for Arria10 EDAC block
    EDAC, altera: Make all private data structures static
    EDAC: Correct channel count limit
    EDAC, amd64_edac: Init opstate at the proper time during init
    EDAC, altera: Handle Arria10 SDRAM child node
    EDAC, altera: Add ECC Manager IRQ controller support
    Documentation: dt: socfpga: Add interrupt-controller to ecc-manager

    Linus Torvalds
     

16 Jul, 2016

1 commit

  • In commit 2c1ea4c700af ("EDAC, sb_edac: Use cpu family/model in driver
    detection") I broke Knights Landing because I failed to notice that it
    called a wrapper macro "sbridge_get_all_devices_knl" instead of
    "sbridge_get_all_devices" like all the other types.

    Now that we include the processor type in the pci_id_table structure we
    can skip the wrappers and just have the sbridge_get_all_devices() check
    the type to decide whether to allow duplicate devices and controllers to
    have registers spread across buses.

    Fixes: 2c1ea4c700af ("EDAC, sb_edac: Use cpu family/model in driver detection")
    Tested-by: Lukasz Odzioba
    Acked-by: Aristeu Rozanski
    Signed-off-by: Tony Luck
    Signed-off-by: Linus Torvalds

    Tony Luck
     

25 Jun, 2016

2 commits

  • Add Altera Arria10 Ethernet FIFO memory EDAC support. Update to support
    a common compatibility string for all Ethernet FIFOs in the DT.

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1466603939-7526-8-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for additional memory module ECCs, add the memory
    initialization functions and helpers.

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1466603939-7526-7-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     

24 Jun, 2016

4 commits

  • Make the IRQ and check_deps() functions available to all the memory
    buffers by moving them outside of the OCRAM only area.

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1466603939-7526-5-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for additional memory module ECCs, the IRQ function will
    check a panic flag before doing a kernel panic on double bit errors.

    OCRAM uncorrectable errors cause a panic because sleep/resume functions
    and FPGA contents during sleep are stored in OCRAM.

    ECCs on peripheral FIFO buffers will not cause a kernel panic on DBERRs
    because the packet can be retried and therefore recovered.

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1466603939-7526-3-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for the Arria10 ECC modules, check the status of the
    parent in the device tree to ensure the block is enabled. Skip if no
    parent phandle is set in the device tree.

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1466603939-7526-2-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • The device private data structures are used only here so make them
    static.

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1466603939-7526-4-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     

16 Jun, 2016

2 commits

  • c44696fff04f ("EDAC: Remove arbitrary limit on number of channels")
    lifted the arbitrary limit on memory controller channels in EDAC.
    However, the dynamic channel attributes dynamic_csrow_dimm_attr and
    dynamic_csrow_ce_count_attr remained 6.

    This wasn't a problem except channels 6 and 7 weren't visible in sysfs
    on machines with more than 6 channels after the conversion to static
    attr groups with

    2c1946b6d629 ("EDAC: Use static attribute groups for managing sysfs entries")

    [ without that, we're exploding in edac_create_sysfs_mci_device()
    because we're dereferencing out of the bounds of the
    dynamic_csrow_dimm_attr array. ]

    Add attributes for channels 6 and 7 along with a guard for the
    future, should more channels be required and/or to sanity check for
    misconfigured machines.

    We still need to check against the number of channels present on the MC
    first, as Thor reported.

    Signed-off-by: Borislav Petkov
    Reported-by: Hironobu Ishii
    Tested-by: Thor Thayer
    Cc: # 4.2

    Borislav Petkov
     
  • It is useless to do it if we're loaded on unsupported hardware so do
    that only after we have detected at least 1 supported AMD northbridge.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

08 Jun, 2016

2 commits

  • Separate the device match arrays for each platform to prevent CycloneV
    matches when calling of_platform_populate() on the Arria10 ECC manager
    node.

    If the SDRAM is a child node of ECC manager, call probe function via
    of_platform_populate().

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1464193783-5071-4-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • To better support child devices, the ECC manager needs to be
    implemented as an IRQ controller.

    Signed-off-by: Thor Thayer
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1465331757-10227-1-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     

03 Jun, 2016

3 commits

  • In commit

    2c1ea4c700af ("EDAC, sb_edac: Use cpu family/model in driver detection")

    we switched from using PCI ids to determine which platform we are
    running on to using CPU model instead.

    I forgot that Broadwell-DE has its own distinct model number different
    from Broadwell-EP or -EX.

    Fixing this isn't just adding a line to the array of cpuids - the
    exising code assumed a 1:1 mapping between entries in that array and the
    "enum type" values. Added the type to pci_id_table structure to remove
    this dependency and allows two Broadwell cpu models.

    Signed-off-by: Tony Luck
    Cc: Aristeu Rozanski
    Cc: Dave Hansen
    Cc: Mauro Carvalho Chehab
    Cc: linux-edac
    Fixes: 2c1ea4c700af ("EDAC, sb_edac: Use cpu family/model in driver detection")
    Link: http://lkml.kernel.org/r/b3cffe40dec6dfe0235a5d52a504f0ba86a07ce7.1464902605.git.tony.luck@intel.com
    Signed-off-by: Borislav Petkov

    Tony Luck
     
  • After the workqueue cleanup, we're registering workqueues based on
    the presence of an ->edac_check function. When that is the case,
    we're setting OP_RUNNING_POLL. But we forgot to check that in
    edac_mc_reset_delay_period(), leading to:

    BUG: unable to handle kernel paging request at 0000000000015d10
    IP: [ .. ] queued_spin_lock_slowpath
    PGD 3ffcc8067 PUD 3ffc56067 PMD 0
    Oops: 0002 [#1] SMP
    Modules linked in: ...
    CPU: 1 PID: 2792 Comm: edactest Not tainted 4.6.0-dirty #1
    Hardware name: HP ProLiant MicroServer, BIOS O41 10/01/2013
    Stack:
    Call Trace:
    ? _raw_spin_lock_irqsave
    ? lock_timer_base.isra.34
    ? del_timer
    ? try_to_grab_pending
    ? mod_delayed_work_on
    ? edac_mc_reset_delay_period
    ? edac_set_poll_msec
    ? param_attr_store
    ? module_attr_store
    ? kernfs_fop_write
    ? __vfs_write
    ? __vfs_read
    ? __alloc_fd
    ? vfs_write
    ? SyS_write
    ? entry_SYSCALL_64_fastpath
    Code:
    RIP [ .. ] queued_spin_lock_slowpath
    RSP <>
    CR2: 0000000000015d10
    ---[ end trace 3f286bc71cca15d1 ]---
    Kernel panic - not syncing: Fatal exception

    Fix it.

    Signed-off-by: Nicholas Krause
    Cc: # 4.5
    Cc: Mauro Carvalho Chehab
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1463697958-13406-1-git-send-email-xerofoify@gmail.com
    [ Rewrite commit message. ]
    Signed-off-by: Borislav Petkov

    Nicholas Krause
     
  • Broadwell made a small change to the rank target register moving the
    target rank ID field up from bits 16:19 to bits 20:23.

    Also found that the offset field grew by one bit in the IVY_BRIDGE to
    HASWELL transition, so fix the RIR_OFFSET() macro too.

    Signed-off-by: Tony Luck
    Cc: stable@vger.kernel.org # v3.19+
    Cc: Aristeu Rozanski
    Cc: Mauro Carvalho Chehab
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/2943fb819b1f7e396681165db9c12bb3df0e0b16.1464735623.git.tony.luck@intel.com
    Signed-off-by: Borislav Petkov

    Tony Luck
     

18 May, 2016

1 commit

  • Pull trivial tree updates from Jiri Kosina.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (21 commits)
    gitignore: fix wording
    mfd: ab8500-debugfs: fix "between" in printk
    memstick: trivial fix of spelling mistake on management
    cpupowerutils: bench: fix "average"
    treewide: Fix typos in printk
    IB/mlx4: printk fix
    pinctrl: sirf/atlas7: fix printk spelling
    serial: mctrl_gpio: Grammar s/lines GPIOs/line GPIOs/, /sets/set/
    w1: comment spelling s/minmum/minimum/
    Blackfin: comment spelling s/divsor/divisor/
    metag: Fix misspellings in comments.
    ia64: Fix misspellings in comments.
    hexagon: Fix misspellings in comments.
    tools/perf: Fix misspellings in comments.
    cris: Fix misspellings in comments.
    c6x: Fix misspellings in comments.
    blackfin: Fix misspelling of 'register' in comment.
    avr32: Fix misspelling of 'definitions' in comment.
    treewide: Fix typos in printk
    Doc: treewide : Fix typos in DocBook/filesystem.xml
    ...

    Linus Torvalds
     

17 May, 2016

1 commit

  • Pull EDAC updates from Borislav Petkov:
    "It was pretty busy in EDAC land this time:

    - Altera Arria10 L2 cache and On-Chip RAM ECC handling (Thor Thayer)

    - Remove ad-hoc buffering of MCE records in sb_edac and i7core_edac
    (Tony Luck)

    - Do not register sb_edac with pci_register_driver() (Tony Luck)

    - Add support for Skylake to ie31200_edac (Jason Baron)

    - Do not register amd64_edac with pci_register_driver() (Borislav
    Petkov)

    ... plus the usual round of cleanups and fixes all over the place"

    * tag 'edac_for_4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (25 commits)
    EDAC, amd64_edac: Drop pci_register_driver() use
    EDAC, ie31200_edac: Add Skylake support
    EDAC, sb_edac: Use cpu family/model in driver detection
    EDAC, i7core: Remove double buffering of error records
    EDAC, amd64_edac: Issue driver banner only on success
    ARM: socfpga: Initialize Arria10 OCRAM ECC on startup
    EDAC: Increment correct counter in edac_inc_ue_error()
    EDAC, sb_edac: Remove double buffering of error records
    EDAC: Fix used after kfree() error in edac_unregister_sysfs()
    EDAC, altera: Avoid unused function warnings
    EDAC, altera: Remove useless casts
    ARM: socfpga: Enable Arria10 OCRAM ECC on startup
    EDAC, altera: Add Arria10 OCRAM ECC support
    Documentation: dt: socfpga: Add Altera Arria10 OCRAM binding
    EDAC, altera: Make OCRAM ECC dependency check generic
    EDAC, altera: Add register offset for ECC Enable
    EDAC, altera: Extract error inject operations to a struct fops
    ARM: socfpga: Enable Arria10 L2 cache ECC on startup
    EDAC, altera: Add Arria10 L2 Cache ECC handling
    Documentation, dt, socfpga: Add Altera Arria10 L2 cache binding
    ...

    Linus Torvalds
     

12 May, 2016

1 commit

  • Use X86_FEATURE_SMCA when detecting if SMCA is available instead of
    directly using CPUID 0x80000007_EBX.

    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1462971509-3856-7-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Yazen Ghannam
     

10 May, 2016

1 commit

  • - remove homegrown instances counting.
    - take F3 PCI device from amd_nb caching instead of F2 which was used with the
    PCI core.

    With those changes, the driver doesn't need to register a PCI driver and
    relies on the northbridges caching which we do anyway on AMD.

    Signed-off-by: Borislav Petkov
    Cc: Yazen Ghannam

    Borislav Petkov
     

07 May, 2016

1 commit

  • Skylake adjusts some register locations, but otherwise follows the
    existing model quite closely. I was able to verify that the 'ce_count'
    increments when 'bad dimms' are used. The accounting of 'ce_count' and
    'ue_count' is the primary functionality of interest for us. Tested on
    Intel(R) Xeon(R) CPU E3-1260L v5 @ 2.90GHz.

    Signed-off-by: Jason Baron
    Acked-by: Tony Luck
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1462547927-22679-1-git-send-email-jbaron@akamai.com
    Signed-off-by: Borislav Petkov

    Jason Baron
     

03 May, 2016

1 commit

  • Instead of picking a random PCI ID from the dozen or so we need to
    access, just use x86_match_cpu() to pick based on CPU model number. The
    choosing of PCI devices has been problematic in the past, see

    11249e739929 ("sb_edac: Fix detection on SNB machines")

    which fixed problems introduced by

    d0585cd815fa ("sb_edac: Claim a different PCI device").

    This is especially ugly if future hardware might not even have
    EDAC-relevant registers in PCI config space and we would still be
    required to choose some "random" PCI devices to scan for just so our
    driver loads.

    Is this cleaner/clearer? It deletes much more code than it adds. Only
    tested on Broadwell. The driver loads/unloads and loads again. Still
    decodes errors too.

    Signed-off-by: Tony Luck
    Suggested-by: Borislav Petkov
    Signed-off-by: Borislav Petkov

    Tony Luck
     

29 Apr, 2016

2 commits

  • In the bad old days the functions from x86_mce_decoder_chain could be
    called in machine check context. So we used to carefully copy them and
    defer processing until later. But in

    f29a7aff4bd60 ("x86/mce: Avoid potential deadlock due to printk() in MCE context")

    we switched the logging code to save the record in a genpool, and call
    the functions that registered to be notified later from a work queue.

    So drop all the double buffering and do all the work we want to do as
    soon as i7core_mce_check_error() is called.

    Signed-off-by: Tony Luck
    Acked-by: Mauro Carvalho Chehab
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/29ab2c370915c6e132fc5d88e7b72cb834bedbfe.1461855008.git.tony.luck@intel.com
    Signed-off-by: Borislav Petkov

    Tony Luck
     
  • Both of these drivers can return NOTIFY_BAD, but this terminates
    processing other callbacks that were registered later on the chain.
    Since the driver did nothing to log the error it seems wrong to prevent
    other interested parties from seeing it. E.g. neither of them had even
    bothered to check the type of the error to see if it was a memory error
    before the return NOTIFY_BAD.

    Signed-off-by: Tony Luck
    Acked-by: Aristeu Rozanski
    Acked-by: Mauro Carvalho Chehab
    Cc: linux-edac
    Cc:
    Link: http://lkml.kernel.org/r/72937355dd92318d2630979666063f8a2853495b.1461864507.git.tony.luck@intel.com
    Signed-off-by: Borislav Petkov

    Tony Luck
     

27 Apr, 2016

1 commit


24 Apr, 2016

1 commit

  • Fix typo in edac_inc_ue_error() to increment ue_noinfo_count instead of
    ce_noinfo_count.

    Signed-off-by: Emmanouil Maroudas
    Cc: Mauro Carvalho Chehab
    Cc: linux-edac
    Fixes: 4275be635597 ("edac: Change internal representation to work with layers")
    Link: http://lkml.kernel.org/r/1461425580-5898-1-git-send-email-emmanouil.maroudas@gmail.com
    Signed-off-by: Borislav Petkov

    Emmanouil Maroudas
     

23 Apr, 2016

4 commits

  • In the bad old days the functions from x86_mce_decoder_chain could be
    called in machine check context. So we used to carefully copy them and
    defer processing until later. But in

    f29a7aff4bd60 ("x86/mce: Avoid potential deadlock due to printk() in MCE context")

    we switched the logging code to save the record in a genpool, and call
    the functions that registered to be notified later from a work queue.

    So drop all the double buffering and do all the work we want to do as
    soon as sbridge_mce_check_error() is called.

    Signed-off-by: Tony Luck
    Cc: Aristeu Rozanski
    Cc: Mauro Carvalho Chehab
    Cc: linux-edac
    Cc: patrickg@supermicro.com
    Link: http://lkml.kernel.org/r/100025611cd780d9bca72792b2b2146760da53e0.1460756761.git.tony.luck@intel.com
    Signed-off-by: Borislav Petkov

    Tony Luck
     
  • Code flow looks like this:

    device_unregister(&mci->dev);
    -> kobject_put+0x25/0x50
    -> kobject_cleanup+0x77/0x190
    -> device_release+0x32/0xa0
    -> mci_attr_release+0x36/0x70
    -> kfree(mci);
    bus_unregister(mci->bus);

    Fix is to grab a local copy of "mci->bus" and use that when we call
    bus_unregister().

    Signed-off-by: Tony Luck
    Acked-by: Aristeu Rozanski
    Cc: Mauro Carvalho Chehab
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/21d595b0ab3d718d9cb206647f4ec91c05e62ec4.1461261078.git.tony.luck@intel.com
    Signed-off-by: Borislav Petkov

    Tony Luck
     
  • The recently added Arria10 OCRAM ECC support caused some new harmless
    warnings about unused functions when it is disabled:

    drivers/edac/altera_edac.c:1067:20: error: 'altr_edac_a10_ecc_irq' defined but not used [-Werror=unused-function]
    drivers/edac/altera_edac.c:658:12: error: 'altr_check_ecc_deps' defined but not used [-Werror=unused-function]

    This rearranges the code slightly to have those two functions inside
    of the same #ifdef that hides their callers. It also manages to
    avoid a forward declaration of the IRQ handler in the process.

    Signed-off-by: Arnd Bergmann
    Acked-by: Thor Thayer
    Cc: Alan Tull
    Cc: Dinh Nguyen
    Cc: linux-edac
    Fixes: c7b4be8db8bc ("EDAC, altera: Add Arria10 OCRAM ECC support")
    Link: http://lkml.kernel.org/r/1460837650-1237650-2-git-send-email-arnd@arndb.de
    Signed-off-by: Borislav Petkov

    Arnd Bergmann
     
  • The altera EDAC driver refers to its per-device data
    using a cast to '(void *)', which makes the pointer
    non-const, though both the source and destination are
    actually const.

    Removing the annotation makes the reference (almost)
    fit into a single line for improved readability, and
    ensures that it is actually defined as const.

    Signed-off-by: Arnd Bergmann
    Acked-by: Thor Thayer
    Cc: Alan Tull
    Cc: Dinh Nguyen
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1460837650-1237650-1-git-send-email-arnd@arndb.de
    Signed-off-by: Borislav Petkov

    Arnd Bergmann
     

22 Apr, 2016

2 commits

  • Haswell and Broadwell can be configured to hash the channel
    interleave function using bits [27:12] of the physical address.

    On those processor models we must check to see if hashing is
    enabled (bit21 of the HASWELL_HASYSDEFEATURE2 register) and
    act accordingly.

    Based on a patch by patrickg

    Tested-by: Patrick Geary
    Signed-off-by: Tony Luck
    Acked-by: Mauro Carvalho Chehab
    Cc: Aristeu Rozanski
    Cc: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-edac@vger.kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Tony Luck
     
  • In commit:

    eb1af3b71f9d ("Fix computation of channel address")

    I switched the "sck_way" variable from holding the log2 value read
    from the h/w to instead be the actual number. Unfortunately it
    is needed in log2 form when used to shift the address.

    Tested-by: Patrick Geary
    Signed-off-by: Tony Luck
    Acked-by: Mauro Carvalho Chehab
    Cc: Aristeu Rozanski
    Cc: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-edac@vger.kernel.org
    Cc: stable@vger.kernel.org
    Fixes: eb1af3b71f9d ("Fix computation of channel address")
    Signed-off-by: Ingo Molnar

    Tony Luck
     

18 Apr, 2016

1 commit


07 Apr, 2016

1 commit

  • Add Arria10 On-Chip RAM ECC handling.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1459992174-8015-1-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     

02 Apr, 2016

3 commits

  • In preparation for the Arria10 peripheral ECCs, move the OCRAM ECC
    dependency check into the general ECC area since this same function can
    be used by other memories.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1459450087-24792-4-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for the Arria10 peripheral ECCs, add a register offset
    from the ECC base to index to the ECC enable register.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1459450087-24792-3-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for the Arria10 peripheral ECCs, extract the inject file
    operations because the Arria10 IRQ trigger mechanism is different than
    Cyclone5/Arria5 and Arria10 L2 cache.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1459450087-24792-2-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     

29 Mar, 2016

4 commits

  • Add a private data structure for Arria10 L2 cache ECC and the probe
    function for it.

    The Arria10 ECC device IRQs are in a shared register so the ECC Manager
    parent/child relationship requires a different probe function.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1458576106-24505-8-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for the Arria10 peripheral ECCs, add a register offset
    from the ECC base to the private data structure to index to the error
    injection register.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1458576106-24505-6-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for the Arria10 peripheral ECCs, use the ECC Enable mask
    in place of hard coded masks in the check dependency functions.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1458576106-24505-5-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer
     
  • In preparation for the Arria10 peripheral ECCs, remove the platform
    device parameter from the check_deps() functions because it is not
    needed and makes the Arria10 check_deps() cleaner.

    Signed-off-by: Thor Thayer
    Cc: devicetree@vger.kernel.org
    Cc: dinguyen@opensource.altera.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux@arm.linux.org.uk
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1458576106-24505-4-git-send-email-tthayer@opensource.altera.com
    Signed-off-by: Borislav Petkov

    Thor Thayer