Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
[pandora-kernel.git] / arch / mn10300 / mm / Kconfig.cache
1 #
2 # MN10300 CPU cache options
3 #
4
5 choice
6         prompt "CPU Caching mode"
7         default MN10300_CACHE_WBACK
8         help
9           This option determines the caching mode for the kernel.
10
11           Write-Back caching mode involves the all reads and writes causing
12           the affected cacheline to be read into the cache first before being
13           operated upon. Memory is not then updated by a write until the cache
14           is filled and a cacheline needs to be displaced from the cache to
15           make room. Only at that point is it written back.
16
17           Write-Through caching only fetches cachelines from memory on a
18           read. Writes always get written directly to memory. If the affected
19           cacheline is also in cache, it will be updated too.
20
21           The final option is to turn of caching entirely.
22
23 config MN10300_CACHE_WBACK
24         bool "Write-Back"
25         help
26           The dcache operates in delayed write-back mode.  It must be manually
27           flushed if writes are made that subsequently need to be executed or
28           to be DMA'd by a device.
29
30 config MN10300_CACHE_WTHRU
31         bool "Write-Through"
32         help
33           The dcache operates in immediate write-through mode.  Writes are
34           committed to RAM immediately in addition to being stored in the
35           cache.  This means that the written data is immediately available for
36           execution or DMA.
37
38           This is not available for use with an SMP kernel if cache flushing
39           and invalidation by automatic purge register is not selected.
40
41 config MN10300_CACHE_DISABLED
42         bool "Disabled"
43         help
44           The icache and dcache are disabled.
45
46 endchoice
47
48 config MN10300_CACHE_ENABLED
49         def_bool y if !MN10300_CACHE_DISABLED
50
51
52 choice
53         prompt "CPU cache flush/invalidate method"
54         default MN10300_CACHE_MANAGE_BY_TAG if !AM34_2
55         default MN10300_CACHE_MANAGE_BY_REG if AM34_2
56         depends on MN10300_CACHE_ENABLED
57         help
58           This determines the method by which CPU cache flushing and
59           invalidation is performed.
60
61 config MN10300_CACHE_MANAGE_BY_TAG
62         bool "Use the cache tag registers directly"
63         depends on !(SMP && MN10300_CACHE_WTHRU)
64
65 config MN10300_CACHE_MANAGE_BY_REG
66         bool "Flush areas by way of automatic purge registers (AM34 only)"
67         depends on AM34_2
68
69 endchoice
70
71 config MN10300_CACHE_INV_BY_TAG
72         def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_ENABLED
73
74 config MN10300_CACHE_INV_BY_REG
75         def_bool y if MN10300_CACHE_MANAGE_BY_REG && MN10300_CACHE_ENABLED
76
77 config MN10300_CACHE_FLUSH_BY_TAG
78         def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_WBACK
79
80 config MN10300_CACHE_FLUSH_BY_REG
81         def_bool y if MN10300_CACHE_MANAGE_BY_REG && MN10300_CACHE_WBACK
82
83
84 config MN10300_HAS_CACHE_SNOOP
85         def_bool n
86
87 config MN10300_CACHE_SNOOP
88         bool "Use CPU Cache Snooping"
89         depends on MN10300_CACHE_ENABLED && MN10300_HAS_CACHE_SNOOP
90         default y
91
92 config MN10300_CACHE_FLUSH_ICACHE
93         def_bool y if MN10300_CACHE_WBACK && !MN10300_CACHE_SNOOP
94         help
95           Set if we need the dcache flushing before the icache is invalidated.
96
97 config MN10300_CACHE_INV_ICACHE
98         def_bool y if MN10300_CACHE_WTHRU && !MN10300_CACHE_SNOOP
99         help
100           Set if we need the icache to be invalidated, even if the dcache is in
101           write-through mode and doesn't need flushing.