summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/cputable.h
diff options
context:
space:
mode:
authorchenhui zhao <chenhui.zhao@freescale.com>2015-11-20 10:13:58 +0100
committerScott Wood <oss@buserror.net>2016-03-05 06:44:51 +0100
commite7affb1dba0e9068aeb3978e858f39753e0dc20a (patch)
treeacc3b13685888fd5ad9ba6a67b0b6235447eba7f /arch/powerpc/include/asm/cputable.h
parentpowerpc/mm: any thread in one core can be the first to setup TLB1 (diff)
downloadlinux-e7affb1dba0e9068aeb3978e858f39753e0dc20a.tar.xz
linux-e7affb1dba0e9068aeb3978e858f39753e0dc20a.zip
powerpc/cache: add cache flush operation for various e500
Various e500 core have different cache architecture, so they need different cache flush operations. Therefore, add a callback function cpu_flush_caches to the struct cpu_spec. The cache flush operation for the specific kind of e500 is selected at init time. The callback function will flush all caches inside the current cpu. Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com> Signed-off-by: Tang Yuantian <Yuantian.Tang@feescale.com> Signed-off-by: Scott Wood <oss@buserror.net>
Diffstat (limited to 'arch/powerpc/include/asm/cputable.h')
-rw-r--r--arch/powerpc/include/asm/cputable.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
index 94ace9b4c4e1..df4fb5faba43 100644
--- a/arch/powerpc/include/asm/cputable.h
+++ b/arch/powerpc/include/asm/cputable.h
@@ -43,6 +43,11 @@ extern int machine_check_e500(struct pt_regs *regs);
extern int machine_check_e200(struct pt_regs *regs);
extern int machine_check_47x(struct pt_regs *regs);
+extern void cpu_down_flush_e500v2(void);
+extern void cpu_down_flush_e500mc(void);
+extern void cpu_down_flush_e5500(void);
+extern void cpu_down_flush_e6500(void);
+
/* NOTE WELL: Update identify_cpu() if fields are added or removed! */
struct cpu_spec {
/* CPU is matched via (PVR & pvr_mask) == pvr_value */
@@ -59,6 +64,9 @@ struct cpu_spec {
unsigned int icache_bsize;
unsigned int dcache_bsize;
+ /* flush caches inside the current cpu */
+ void (*cpu_down_flush)(void);
+
/* number of performance monitor counters */
unsigned int num_pmcs;
enum powerpc_pmc_type pmc_type;