]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
drivers: bus: add ARM CCI support
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 13 Jul 2012 14:55:52 +0000 (15:55 +0100)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 29 May 2013 19:50:34 +0000 (15:50 -0400)
commited69bdd8fd9b2db68b915ce5f60fc51d4744a9b1
tree02dc3a5343f662ce153c66cb0e370a49b35b066f
parent78ecad0183bd7e49131da2b5aa82bee017db1cf0
drivers: bus: add ARM CCI support

On ARM multi-cluster systems coherency between cores running on
different clusters is managed by the cache-coherent interconnect (CCI).
It allows broadcasting of TLB invalidates and memory barriers and it
guarantees cache coherency at system level through snooping of slave
interfaces connected to it.

This patch enables the basic infrastructure required in Linux to handle and
programme the CCI component.

Non-local variables used by the CCI management functions called by power
down function calls after disabling the cache must be flushed out to main
memory in advance, otherwise incoherency of those values may occur if they
are sitting in the cache of some other CPU when power down functions
execute. Driver code ensures that relevant data structures are flushed
from inner and outer caches after the driver probe is completed.

CCI slave port resources are linked to set of CPUs through bus masters
phandle properties that link the interface resources to masters node in
the device tree.

Documentation describing the CCI DT bindings is provided with the patch.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Documentation/devicetree/bindings/arm/cci.txt [new file with mode: 0644]
drivers/bus/Kconfig
drivers/bus/Makefile
drivers/bus/arm-cci.c [new file with mode: 0644]
include/linux/arm-cci.h [new file with mode: 0644]