linux_dsm_epyc7002/arch/powerpc/kernel
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
..
vdso32 [POWERPC] Support feature fixups in vdso's 2006-10-25 11:54:07 +10:00
vdso64 [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
align.c [POWERPC] Alignment exception uses __get/put_user_inatomic 2007-04-13 04:09:38 +10:00
asm-offsets.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-05-09 12:56:01 -07:00
audit.c [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
binfmt_elf32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
btext.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
compat_audit.c [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
cpu_setup_6xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cpu_setup_pa6t.S [POWERPC] pasemi: Enable one more hid bit 2007-04-24 21:31:49 +10:00
cpu_setup_ppc970.S [POWERPC] powerpc: Enable DEEPNAP power savings mode on 970MP 2006-10-16 16:32:25 +10:00
cputable.c [POWERPC] Add missing pmc_type fields in cpu_table 2007-05-22 20:20:56 +10:00
crash_dump.c [POWERPC] Make doc comments extractable 2006-08-08 17:07:04 +10:00
crash.c [PATCH] Kexec / Kdump: Unify elf note code 2006-12-07 08:39:46 -08:00
dma_64.c [POWERPC] Make direct DMA use node local allocations 2006-12-04 20:38:59 +11:00
entry_32.S [POWERPC] Fix COMMON symbol warnings 2007-05-17 21:10:15 +10:00
entry_64.S [POWERPC] Clear RI bit in MSR before restoring r13 when returning to userspace 2007-02-07 14:03:23 +11:00
firmware.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fpu.S [POWERPC] Restore copyright notice in arch/powerpc/kernel/fpu.S 2006-08-30 14:45:35 +10:00
head_4xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_8xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_32.S [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
head_44x.S [POWERPC] Early serial debug support for PPC44x 2007-05-08 14:47:33 +10:00
head_64.S [POWERPC] Save trap number in bad_stack 2007-04-24 22:06:59 +10:00
head_booke.h [PATCH] powerpc: Fix Kernel FP unavail exception for BookE 2006-02-10 16:51:50 +11:00
head_fsl_booke.S [POWERPC] 85xx: Drop use of SYNC macro in head_fsl_booke.S 2007-02-13 16:13:27 -06:00
ibmebus.c [POWERPC] ibmebus: change probe/remove interface from using loc-code to DT path 2007-04-13 06:12:42 +10:00
idle_6xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
idle_power4.S [POWERPC] powermac: Support G5 CPU hotplug 2007-05-07 20:31:13 +10:00
idle.c [POWERPC] powermac: Suspend to disk on G5 2007-05-07 20:31:14 +10:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
io.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
iomap.c [POWERPC] Remove fastcall function attribute 2007-01-26 01:52:27 -06:00
iommu.c Revert "[POWERPC] DMA 4GB boundary protection" 2007-04-26 19:48:15 +10:00
irq.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
isa-bridge.c [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
kprobes.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-05-08 11:50:19 -07:00
l2cr_6xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
legacy_serial.c Merge branch 'linux-2.6' 2007-05-08 13:37:51 +10:00
lparcfg.c [POWERPC] Replace if-then-else with a switch statement 2007-04-27 21:13:21 +10:00
lparmap.c [POWERPC] iSeries: suppress build warning in lparmap.c 2007-05-09 16:34:59 +10:00
machine_kexec_32.c Storage class should be first 2006-06-26 18:57:34 +02:00
machine_kexec_64.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
machine_kexec.c [POWERPC] Move some kexec logic into machine_kexec.c 2006-08-17 16:41:10 +10:00
Makefile [POWERPC] Make syscall restart code more common 2007-06-14 22:29:57 +10:00
misc_32.S [POWERPC] Merge CPU features pertaining to icache coherency 2007-06-14 22:30:16 +10:00
misc_64.S [POWERPC] pasemi: UART udbg support 2007-02-07 14:03:22 +11:00
misc.S [POWERPC] convert string i/o operations to C 2006-09-20 14:06:18 +10:00
module_32.c [POWERPC] Add support for R_PPC_ADDR16_HI relocations 2007-01-24 21:13:58 +11:00
module_64.c [POWERPC] Generic BUG for powerpc 2006-12-11 16:35:07 +11:00
msi.c [POWERPC] PowerPC MSI infrastructure 2007-05-08 13:40:31 +10:00
nvram_64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
of_device.c [POWERPC] Export of_device_get_modalias 2007-05-07 20:31:15 +10:00
of_platform.c [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
paca.c [POWERPC] Implement SLB shadow buffer 2006-08-08 17:08:56 +10:00
pci_32.c [POWERPC] Fix STRICT_MM_TYPECHECKS 2007-05-02 20:04:30 +10:00
pci_64.c [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
pci_dn.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
pmc.c [POWERPC] Fix typo: MMCR0_PMA0 != MMCR0_PMAO 2007-05-22 20:20:56 +10:00
ppc32.h powerpc: move include/asm-ppc64/ppc32.h to arch/powerpc/kernel 2005-11-03 16:03:28 +11:00
ppc_ksyms.c [POWERPC] Remove duplicate export of __div64_32. 2007-05-02 20:04:32 +10:00
proc_ppc64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
process.c [POWERPC] Always apply DABR changes on context switches 2007-06-14 22:29:57 +10:00
prom_init.c [POWERPC] Donate idle CPU cycles on dedicated partitions 2007-06-14 22:29:58 +10:00
prom_parse.c [POWERPC] Don't complain if size-cells == 0 in prom_parse() 2007-05-12 11:32:48 +10:00
prom.c [POWERPC] Update documentation for of_find_node_by_type() 2007-06-02 21:01:55 +10:00
ptrace32.c [POWERPC] ptrace shouldn't touch FP exec mode 2007-06-14 22:29:57 +10:00
ptrace.c [POWERPC] powerpc: ptrace can set DABR on both 32 and 64 bits 2007-06-14 22:29:57 +10:00
rtas_flash.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
rtas_pci.c [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
rtas-proc.c [POWERPC] Fix ppc_rtas_progress_show() 2007-05-17 21:11:15 +10:00
rtas-rtc.c [PATCH] powerpc: reorg RTAS delay code 2006-06-09 21:21:06 +10:00
rtas.c [POWERPC] Remove old interface find_path_device 2007-04-24 22:08:59 +10:00
semaphore.c powerpc: Merge enough to start building in arch/powerpc. 2005-09-26 16:04:21 +10:00
setup_32.c [POWERPC] Merge CPU features pertaining to icache coherency 2007-06-14 22:30:16 +10:00
setup_64.c [PATCH] x86: Allow percpu variables to be page-aligned 2007-05-02 19:27:12 +02:00
setup-common.c [POWERPC] Check cache coherency of kernel vs firmware 2007-05-12 11:32:50 +10:00
setup.h [PATCH] powerpc: Make early xmon logic immune to location of early parsing 2006-05-19 15:02:12 +10:00
signal_32.c [POWERPC] Merge creation of signal frame 2007-06-14 22:29:58 +10:00
signal_64.c [POWERPC] Merge creation of signal frame 2007-06-14 22:29:58 +10:00
signal.c [POWERPC] Less ifdef's in signal.c/signal.h 2007-06-14 22:29:58 +10:00
signal.h [POWERPC] Less ifdef's in signal.c/signal.h 2007-06-14 22:29:58 +10:00
smp-tbsync.c [POWERPC] Replace kmalloc+memset with kzalloc 2006-12-04 20:42:09 +11:00
smp.c [POWERPC] Fix smp_call_function to be preempt-safe 2007-05-22 20:20:56 +10:00
suspend.c [PATCH] x86: Move swsusp __pa() dependent code to arch portion 2007-05-02 19:27:07 +02:00
swsusp_32.S [PATCH] Change the name of pagedir_nosave 2006-09-26 08:49:01 -07:00
swsusp_64.c [POWERPC] powermac: Suspend to disk on G5 2007-05-07 20:31:14 +10:00
swsusp_asm64.S [POWERPC] powermac: Suspend to disk on G5 2007-05-07 20:31:14 +10:00
swsusp.c powerpc: fixup hard_irq_disable semantics 2007-05-11 08:29:34 -07:00
sys_ppc32.c [POWERPC] Clean up unused ROUND_UP, NAME_OFFSET macros in arch/powerpc 2007-04-13 04:00:41 +10:00
syscalls.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
sysfs.c Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
systbl.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tau_6xx.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
time.c [POWERPC] Simplify smp_space_timers 2007-05-12 11:32:47 +10:00
traps.c move die notifier handling to common code 2007-05-08 11:15:04 -07:00
udbg_16550.c [POWERPC] Early serial debug support for PPC44x 2007-05-08 14:47:33 +10:00
udbg.c [POWERPC] Fix console output getting dropped on platforms without udbg_putc 2007-06-14 11:56:17 +10:00
vdso.c [POWERPC] Fix VDSO compile warning 2007-06-14 22:29:55 +10:00
vecemu.c [PATCH] powerpc: Move arch/ppc*/kernel/vecemu.c to arch/powerpc 2005-09-21 19:21:07 +10:00
vector.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
vio.c Merge branch 'linux-2.6' 2007-05-08 13:37:51 +10:00
vmlinux.lds.S [POWERPC] Fix powerpc vmlinux.lds.S 2007-05-22 20:20:56 +10:00