linux-stable/drivers/bus
Thomas Petazzoni 1737cac693 bus: mvebu-mbus: make sure SDRAM CS for DMA don't overlap the MBus bridge window
The mvebu-mbus driver reads the SDRAM window registers, and make the
information about the DRAM CS configuration available to device
drivers using the mv_mbus_dram_info() API. This information is used by
the DMA-capable device drivers to program their address decoding
windows.

Until now, we were basically providing the SDRAM window register
details as is. However, it turns out that the DMA capability of the
CESA cryptographic engine consists in doing DMA being the DRAM and the
crypto SRAM mapped as a MBus window. For this case, it is very
important that the SDRAM CS information does not overlap with the MBus
bridge window.

Therefore, this commit improves the mvebu-mbus driver to make sure we
adjust the SDRAM CS information so that it doesn't overlap with the
MBus bridge window. This problem was reported by Boris Brezillon,
while working on the mv_cesa driver for Armada 37x/38x/XP. We use the
memblock memory information to know where the usable RAM is located,
as this information is guaranteed to be correct on all SoC variants.

We could have used the MBus bridge window registers on Armada 370/XP,
but they are not really used on Armada 375/38x (Cortex-A9 based),
since the PL310 L2 filtering is used instead to discriminate between
RAM accesses and I/O accesses. Therefore, using the memblock
information is more generic and works accross the different platforms.

Reported-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Andrew Lunn <andrew@lunn.ch>: Fixed merge conflict]
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
2015-01-19 16:09:16 -06:00
..
arm-cci.c bus: cci: move away from arm_pmu framework 2014-10-30 12:16:57 +00:00
arm-ccn.c ARM: SoC driver updates for 3.18 2014-10-08 17:37:16 -04:00
brcmstb_gisb.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
imx-weim.c bus: drop owner assignment from platform_drivers 2014-10-20 16:20:19 +02:00
Kconfig bus: brcmstb_gisb: Make the driver buildable on MIPS 2014-11-28 15:44:42 -08:00
Makefile bus: ARM CCN PMU driver 2014-07-23 22:14:43 +02:00
mvebu-mbus.c bus: mvebu-mbus: make sure SDRAM CS for DMA don't overlap the MBus bridge window 2015-01-19 16:09:16 -06:00
omap-ocp2scp.c bus: drop owner assignment from platform_drivers 2014-10-20 16:20:19 +02:00
omap_l3_noc.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
omap_l3_noc.h bus: omap_l3_noc: Fix connID for OMAP4 2014-09-11 10:43:39 -07:00
omap_l3_smx.c ARM: OMAP3: Fix errors for omap_l3_smx when booted with device tree 2014-11-05 09:23:14 -08:00
omap_l3_smx.h
vexpress-config.c ARM: vexpress: refine dependencies for new code 2014-05-26 21:26:52 +02:00