aboutsummaryrefslogtreecommitdiff
path: root/Documentation/blackfin/cachefeatures.txt
blob: 0fbec23becb5b0903b90e7bbeed62e30af3809ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
 * File:         Documentation/blackfin/cachefeatures.txt
 * Based on:
 * Author:
 *
 * Created:
 * Description:  This file contains the simple DMA Implementation for Blackfin
 *
 * Rev:          $Id: cachefeatures.txt 2384 2006-11-01 04:12:43Z magicyang $
 *
 * Modified:
 *               Copyright 2004-2006 Analog Devices Inc.
 *
 * Bugs:         Enter bugs at http://blackfin.uclinux.org/
 *
 */

	- Instruction and Data cache initialization.
		icache_init();
		dcache_init();

	-  Instruction and Data cache Invalidation Routines, when flushing the
	   same is not required.
		_icache_invalidate();
		_dcache_invalidate();

	Also, for invalidating the entire instruction and data cache, the below
	routines are provided (another method for invalidation, refer page no 267 and 287 of
	ADSP-BF533 Hardware Reference manual)

		invalidate_entire_dcache();
		invalidate_entire_icache();

	-External Flushing of Instruction and data cache routines.

		flush_instruction_cache();
		flush_data_cache();

	- Internal Flushing of Instruction and Data Cache.

		icplb_flush();
		dcplb_flush();

	- Locking the cache.

		cache_grab_lock();
		cache_lock();

	Please refer linux-2.6.x/Documentation/blackfin/cache-lock.txt for how to
	lock the cache.

	Locking the cache is optional feature.

	- Miscellaneous cache functions.

		flush_cache_all();
		flush_cache_mm();
		invalidate_dcache_range();
		flush_dcache_range();
		flush_dcache_page();
		flush_cache_range();
		flush_cache_page();
		invalidate_dcache_range();
		flush_page_to_ram();