ARM: 8725/1: Add Broadcom Brahma-B15 readahead cache support
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 1 Dec 2017 00:10:09 +0000 (01:10 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Sun, 17 Dec 2017 22:15:35 +0000 (22:15 +0000)
commitf6f9be1c30f3b2ab308167f70932bd37556a4853
tree664ac2aeaed7354678fd5f4d099021359ce357d1
parent328829125e2fe3596a14c5020ba4a5a34882d665
ARM: 8725/1: Add Broadcom Brahma-B15 readahead cache support

This patch adds support for the Broadcom Brahma-B15 CPU readahead cache
controller. This cache controller sits between the L2 and the memory bus
and its purpose is to provide a friendler burst size towards the DDR
interface than the native cache line size.

The readahead cache is mostly transparent, except for
flush_kern_cache_all, which is precisely what we are overriding here.

The readahead cache only intercepts reads, and does invalidate on
writes (IOW), as such, some data can remain stale in any of its buffers, such
that we need to flush it, which is an operation that needs to happen in
a particular order:

- disable the readahead cache
- flush it
- call the appropriate cache-v7.S function
- re-enable

This patch tries to minimize the impact to the cache-v7.S file by only
providing a stub in case CONFIG_CACHE_B15_RAC is enabled (default for
ARCH_BRCMSTB since it is the current user).

Signed-off-by: Alamy Liu <alamyliu@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/include/asm/glue-cache.h
arch/arm/include/asm/hardware/cache-b15-rac.h [new file with mode: 0644]
arch/arm/mm/Kconfig
arch/arm/mm/Makefile
arch/arm/mm/cache-b15-rac.c [new file with mode: 0644]