linux/drivers/edac
Manivannan Sadhasivam ee13b50087 qcom: llcc/edac: Fix the base address used for accessing LLCC banks
The Qualcomm LLCC/EDAC drivers were using a fixed register stride for
accessing the (Control and Status Registers) CSRs of each LLCC bank.
This stride only works for some SoCs like SDM845 for which driver
support was initially added.

But the later SoCs use different register stride that vary between the
banks with holes in-between. So it is not possible to use a single register
stride for accessing the CSRs of each bank. By doing so could result in a
crash.

For fixing this issue, let's obtain the base address of each LLCC bank from
devicetree and get rid of the fixed stride. This also means, there is no
need to rely on reg-names property and the base addresses can be obtained
using the index.

First index is LLCC bank 0 and last index is LLCC broadcast. If the SoC
supports more than one bank, then those need to be defined in devicetree
for index from 1..N-1.

Reported-by: Parikshit Pareek <quic_ppareek@quicinc.com>
Tested-by: Luca Weiss <luca.weiss@fairphone.com>
Tested-by: Steev Klimaszewski <steev@kali.org> # Thinkpad X13s
Tested-by: Andrew Halaney <ahalaney@redhat.com> # sa8540p-ride
Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230314080443.64635-13-manivannan.sadhasivam@linaro.org
2023-03-15 15:17:08 -07:00
..
al_mc_edac.c EDAC/al_mc: Make use of the helper function devm_add_action_or_reset() 2021-09-28 18:35:11 +02:00
altera_edac.c Merge branch 'edac-amd64' into edac-updates-for-v5.18 2022-03-21 10:34:57 +01:00
altera_edac.h edac: altera: Move Stratix10 SDRAM ECC to peripheral 2019-07-25 14:28:42 -04:00
amd64_edac.c EDAC/amd64: Shut up an -Werror,-Wsometimes-uninitialized clang false positive 2023-02-14 17:56:14 +01:00
amd64_edac.h EDAC/amd64: Remove early_channel_count() 2023-02-09 14:43:39 +01:00
amd76x_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
amd8111_edac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
amd8111_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
amd8131_edac.c EDAC/amd8131: Remove defined but not used bridge_str 2020-04-24 09:08:47 +02:00
amd8131_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
armada_xp_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
aspeed_edac.c EDAC/aspeed: Use proper format string for printing resource 2021-05-18 16:33:13 +02:00
bluefield_edac.c EDAC, mellanox: Add ECC support for BlueField DDR4 2019-08-08 12:57:01 -03:00
cell_edac.c
cpc925_edac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
debugfs.c ARM: 8892/1: EDAC: Add missing debugfs_create_x32 wrapper 2019-08-29 07:58:01 +01:00
dmc520_edac.c EDAC/dmc520: Don't print an error for each unconfigured interrupt line 2022-04-19 11:25:41 +02:00
e7xxx_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
e752x_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
edac_device_sysfs.c EDAC/device: Get rid of the silly one-shot memory allocation in edac_device_alloc_ctl_info() 2022-04-11 11:43:26 +02:00
edac_device.c EDAC/device: Respect any driver-supplied workqueue polling value 2023-01-19 11:43:16 +01:00
edac_device.h EDAC/device: Get rid of the silly one-shot memory allocation in edac_device_alloc_ctl_info() 2022-04-11 11:43:26 +02:00
edac_mc_sysfs.c EDAC/mc_sysfs: Increase legacy channel support to 12 2022-10-31 11:03:34 +01:00
edac_mc.c EDAC/mc: Drop duplicated dimm->nr_pages debug printout 2022-09-01 08:52:18 +02:00
edac_mc.h EDAC/mc: Determine mci pointer from the error descriptor 2020-02-17 13:05:10 +01:00
edac_module.c
edac_module.h EDAC/device: Fix period calculation in edac_device_reset_delay_period() 2022-12-30 15:51:41 +01:00
edac_pci_sysfs.c EDAC: Use default_groups in kobj_type 2022-01-23 20:01:29 +01:00
edac_pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
edac_pci.h
fsl_ddr_edac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
fsl_ddr_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
ghes_edac.c EDAC/ghes: Make ghes_edac a proper module 2022-10-21 21:59:19 +02:00
highbank_l2_edac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
highbank_mc_edac.c EDAC/highbank: Fix memory leak in highbank_mc_probe() 2023-01-03 17:03:57 +01:00
i7core_edac.c * Add Amazon's Annapurna Labs memory controller EDAC driver, by Talel 2020-10-12 10:12:26 -07:00
i10nm_base.c EDAC/i10nm: Add driver decoder for Sapphire Rapids server 2023-02-08 08:29:11 -08:00
i3000_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i3200_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i5000_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i5100_edac.c EDAC/i5100: Remove unused inline function i5100_nrecmema_dm_buf_id() 2022-05-17 17:44:50 +02:00
i5400_edac.c EDAC/i5400: Fix typo in comment: vaious -> various 2022-11-25 19:29:02 +01:00
i7300_edac.c EDAC/i7300: Correct the i7300_exit() function name in comment 2022-09-23 23:07:17 +02:00
i82443bxgx_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i82860_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i82875p_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i82975x_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
ie31200_edac.c EDAC/ie31200: Add Skylake-S support 2022-08-25 10:28:01 +02:00
igen6_edac.c EDAC/igen6: Return the correct error type when not the MC owner 2022-10-25 10:10:54 +02:00
Kconfig EDAC/zynqmp: Add EDAC support for Xilinx ZynqMP OCM 2023-01-09 11:13:58 +01:00
layerscape_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
Makefile EDAC/zynqmp: Add EDAC support for Xilinx ZynqMP OCM 2023-01-09 11:13:58 +01:00
mce_amd.c x86/MCE/AMD, EDAC/mce_amd: Support non-uniform MCA bank type enumeration 2021-12-22 17:22:09 +01:00
mce_amd.h x86/mce/amd, edac: Remove report_gart_errors 2020-04-14 15:53:46 +02:00
mpc85xx_edac.c EDAC/mpc85xx: Include required of headers directly 2022-07-28 16:22:12 +10:00
mpc85xx_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
octeon_edac-l2c.c
octeon_edac-lmc.c
octeon_edac-pc.c
octeon_edac-pci.c
pasemi_edac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pnd2_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
pnd2_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
ppc4xx_edac.c EDAC/ppc_4xx: Reorder symbols to get rid of a few forward declarations 2022-09-18 19:35:22 +02:00
ppc4xx_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
qcom_edac.c qcom: llcc/edac: Fix the base address used for accessing LLCC banks 2023-03-15 15:17:08 -07:00
r82600_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
sb_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
sifive_edac.c soc: sifive: ccache: Rename SiFive L2 cache to Composable cache. 2022-10-13 11:06:51 -07:00
skx_base.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
skx_common.c - Add a driver for the RAS functionality on Xilinx's on chip memory 2023-02-21 08:10:03 -08:00
skx_common.h EDAC/i10nm: Add Intel Granite Rapids server support 2023-01-25 08:17:30 -08:00
synopsys_edac.c EDAC/synopsys: Re-enable the error interrupts on v3 hw 2022-07-22 14:31:38 +02:00
thunderx_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
ti_edac.c EDAC/ti: Remove redundant error messages 2021-10-07 19:16:01 +02:00
wq.c EDAC/wq: Remove unneeded flush_workqueue() 2022-08-25 10:50:35 +02:00
x38_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
xgene_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
zynqmp_edac.c EDAC/zynqmp: Add EDAC support for Xilinx ZynqMP OCM 2023-01-09 11:13:58 +01:00