MIPS: c-r4k.c: Fix the 74K D-cache alias erratum workaround
authorMaciej W. Rozycki <macro@codesourcery.com>
Sun, 16 Nov 2014 01:02:29 +0000 (01:02 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 2 Apr 2015 11:54:18 +0000 (13:54 +0200)
commite2e7f29af84aa59dd8191b9f6fee80aafa4e06cd
treed24402478d2956b93d2d881673d527f0a483eb11
parent12a8471de9e8dc3c867e15bbf4a37152d2f690b8
MIPS: c-r4k.c: Fix the 74K D-cache alias erratum workaround

Fix the 74K D-cache alias erratum workaround so that it actually works.
Our current code sets MIPS_CACHE_VTAG for the D-cache, but that flag
only has any effect for the I-cache.  Additionally MIPS_CACHE_PINDEX is
set for the D-cache if CP0.Config7.AR is also set for an affected
processor, leading to confusing information in the bootstrap log (the
flag isn't used beyond that).

So delete the setting of MIPS_CACHE_VTAG and rely on MIPS_CACHE_ALIASES,
set in a common place, removing I-cache coherency issues seen in GDB
testing with software breakpoints, gdbserver and ptrace(2), on affected
systems.

While at it add a little piece of explanation of what CP0.Config6.SYND
is so that people do not have to chase documentation.

Signed-off-by: Maciej W. Rozycki <macro@codesourcery.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8507/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/mm/c-r4k.c