MIPS: c-r4k: Treat I6400 dcache as though physically indexed
authorPaul Burton <paul.burton@imgtec.com>
Fri, 19 Aug 2016 17:13:34 +0000 (18:13 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 3 Jan 2017 15:48:40 +0000 (16:48 +0100)
commit819da1ead13621edd4f05df730651cf5b623de7e
tree4d9b94e1f751dd62abfa5f1a77405b48a45170b7
parent5d0a99d6afd80d375fcfea26467eb5b219b9f9d4
MIPS: c-r4k: Treat I6400 dcache as though physically indexed

The L1 data cache in I6400 CPUs is indexed by physical address bits if
an entry for the address is present in the DTLB early enough in the
pipelined execution of a memory access instruction. If an entry is not
present then it's indexed by virtual address bits, but hardware will
check in a later pipeline stage when a DTLB entry has been created
whether the virtual address bits used match the physical address bits,
and if not will transparently restart the memory access instruction.

This means that although it isn't always physically indexed, it appears
so to software & we can treat the I6400 L1 data cache as being
physically indexed in order to avoid considering aliasing.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14016/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/mm/c-r4k.c