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. Change-Id: I4555796ce9964a5351fb26f31e480f66ba0e9335 Signed-off-by:Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by:
Nicolas Pitre <nicolas.pitre@linaro.org> Git-commit: ed69bdd8fd9b2db68b915ce5f60fc51d4744a9b1 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git Signed-off-by:
Neil Leeder <nleeder@codeaurora.org>
Loading
Please register or sign in to comment