blob: abc90988080750041fdbf73befcb057fd19cd95f [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * include/asm-sh/cpu-sh3/cacheflush.h
3 *
4 * Copyright (C) 1999 Niibe Yutaka
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 */
10#ifndef __ASM_CPU_SH3_CACHEFLUSH_H
11#define __ASM_CPU_SH3_CACHEFLUSH_H
12
Linus Torvalds1da177e2005-04-16 15:20:36 -070013#if defined(CONFIG_SH7705_CACHE_32KB)
Linus Torvalds1da177e2005-04-16 15:20:36 -070014/* SH7705 is an SH3 processor with 32KB cache. This has alias issues like the
15 * SH4. Unlike the SH4 this is a unified cache so we need to do some work
16 * in mmap when 'exec'ing a new binary
17 */
18 /* 32KB cache, 4kb PAGE sizes need to check bit 12 */
19#define CACHE_ALIAS 0x00001000
20
Paul Mundt39e688a2007-03-05 19:46:47 +090021#define PG_mapped PG_arch_1
22
Paul Mundtc4706622006-09-27 15:29:18 +090023void flush_cache_all(void);
24void flush_cache_mm(struct mm_struct *mm);
Ralf Baechleec8c0442006-12-12 17:14:57 +000025#define flush_cache_dup_mm(mm) flush_cache_mm(mm)
Paul Mundtc4706622006-09-27 15:29:18 +090026void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
Linus Torvalds1da177e2005-04-16 15:20:36 -070027 unsigned long end);
Paul Mundtc4706622006-09-27 15:29:18 +090028void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);
29void flush_dcache_page(struct page *pg);
30void flush_icache_range(unsigned long start, unsigned long end);
31void flush_icache_page(struct vm_area_struct *vma, struct page *page);
32#else
Paul Mundt51f35472008-07-29 22:52:49 +090033#include <cpu-common/cpu/cacheflush.h>
Paul Mundtc4706622006-09-27 15:29:18 +090034#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070035
Linus Torvalds1da177e2005-04-16 15:20:36 -070036#endif /* __ASM_CPU_SH3_CACHEFLUSH_H */