linux/arch
David Gibson 4508dc21fe [POWERPC] Merge CPU features pertaining to icache coherency
Currently the powerpc kernel has a 64-bit only feature,
COHERENT_ICACHE used for those CPUS which maintain icache/dcache
coherency in hardware (POWER5, essentially).  It also has a feature,
SPLIT_ID_CACHE, which is used on CPUs which have separate i and
d-caches, which is to say everything except 601 and Freescale E200.

In nearly all the places we check the SPLIT_ID_CACHE, what we actually
care about is whether the i and d-caches are coherent (which they will
be, trivially, if they're the same cache).

This tries to clarify the situation a little.  The COHERENT_ICACHE
feature becomes availble on 32-bit and is set for all CPUs where i and
d-cache are effectively coherent, whether this is due to special logic
(POWER5) or because they're unified.  We check this, instead of
SPLIT_ID_CACHE nearly everywhere.

The SPLIT_ID_CACHE feature itself is replaced by a UNIFIED_ID_CACHE
feature with reversed sense, set only on 601 and Freescale E200.  In
the two places (one Freescale BookE specific) where we really care
whether it's a unified cache, not whether they're coherent, we check
this feature.  The CPUs with unified cache are so few, we could
consider replacing this feature bit with explicit checks against the
PVR.

This will make unifying the 32-bit and 64-bit cache flush code a
little more straightforward.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-06-14 22:30:16 +10:00
..
alpha ALPHA: misc fixes 2007-06-01 08:18:29 -07:00
arm [ARM] Solve buggy smp_processor_id() usage 2007-06-02 21:31:49 +01:00
arm26 all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
avr32 all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
blackfin Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix 2007-05-21 12:03:04 -07:00
cris Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
frv all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
h8300 h8300 trival patches 2007-06-01 08:18:29 -07:00
i386 potential parse error in ifdef part 3 2007-06-08 17:23:33 -07:00
ia64 [IA64] acpi_get_sysname() should be __init 2007-05-24 10:59:44 -07:00
m32r all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
m68k m68k: parenthesis balance 2007-06-01 08:18:27 -07:00
m68knommu m68knommu: fix ColdFire timer off by 1 2007-06-08 17:23:32 -07:00
mips [MIPS] Fix IP27 build 2007-06-11 18:20:55 +01:00
parisc Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix 2007-05-21 12:03:04 -07:00
powerpc [POWERPC] Merge CPU features pertaining to icache coherency 2007-06-14 22:30:16 +10:00
ppc [POWERPC] Merge CPU features pertaining to icache coherency 2007-06-14 22:30:16 +10:00
s390 [S390] Fix section annotations. 2007-05-31 17:38:11 +02:00
sh sh: Fix se73180 platform device registration. 2007-06-04 11:07:23 +09:00
sh64 potential parse error in ifdef part 3 2007-06-08 17:23:33 -07:00
sparc [SPARC32]: Build fix. 2007-05-31 01:52:51 -07:00
sparc64 [SPARC64]: Handle PCI bridges without 'ranges' property. 2007-06-07 21:59:44 -07:00
um uml: get declaration of simple_strtoul 2007-06-08 17:23:33 -07:00
v850 all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
x86_64 x86_64: oops_begin() fix 2007-06-08 17:23:34 -07:00
xtensa [XTENSA] Remove non-rt signal handling 2007-05-31 17:49:32 -07:00