blob: 653254a34f88af20d5731db0abf1ca2136bd5452 [file] [log] [blame]
David Howells0bc42d72010-10-27 17:28:41 +01001#
2# MN10300 CPU cache options
3#
4
5choice
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
23config MN10300_CACHE_WBACK
24 bool "Write-Back"
David Howellsb4784912010-10-27 17:28:46 +010025 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.
David Howells0bc42d72010-10-27 17:28:41 +010029
30config MN10300_CACHE_WTHRU
31 bool "Write-Through"
David Howellsb4784912010-10-27 17:28:46 +010032 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.
David Howells0bc42d72010-10-27 17:28:41 +010040
41config MN10300_CACHE_DISABLED
42 bool "Disabled"
David Howellsb4784912010-10-27 17:28:46 +010043 help
44 The icache and dcache are disabled.
David Howells0bc42d72010-10-27 17:28:41 +010045
46endchoice
David Howells344af922010-10-27 17:28:42 +010047
48config MN10300_CACHE_ENABLED
49 def_bool y if !MN10300_CACHE_DISABLED
David Howells518d4bb2010-10-27 17:28:43 +010050
51
52choice
53 prompt "CPU cache flush/invalidate method"
Akira Takeuchi9731d232010-10-27 17:28:45 +010054 default MN10300_CACHE_MANAGE_BY_TAG if !AM34_2
55 default MN10300_CACHE_MANAGE_BY_REG if AM34_2
David Howells518d4bb2010-10-27 17:28:43 +010056 depends on MN10300_CACHE_ENABLED
57 help
58 This determines the method by which CPU cache flushing and
59 invalidation is performed.
60
61config MN10300_CACHE_MANAGE_BY_TAG
62 bool "Use the cache tag registers directly"
63
Akira Takeuchi9731d232010-10-27 17:28:45 +010064config MN10300_CACHE_MANAGE_BY_REG
65 bool "Flush areas by way of automatic purge registers (AM34 only)"
66 depends on AM34_2
67
David Howells518d4bb2010-10-27 17:28:43 +010068endchoice
69
70config MN10300_CACHE_INV_BY_TAG
71 def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_ENABLED
72
Akira Takeuchi9731d232010-10-27 17:28:45 +010073config MN10300_CACHE_INV_BY_REG
74 def_bool y if MN10300_CACHE_MANAGE_BY_REG && MN10300_CACHE_ENABLED
75
David Howells518d4bb2010-10-27 17:28:43 +010076config MN10300_CACHE_FLUSH_BY_TAG
77 def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_WBACK
Akira Takeuchi9731d232010-10-27 17:28:45 +010078
79config MN10300_CACHE_FLUSH_BY_REG
80 def_bool y if MN10300_CACHE_MANAGE_BY_REG && MN10300_CACHE_WBACK
David Howellsb4784912010-10-27 17:28:46 +010081
82
83config MN10300_HAS_CACHE_SNOOP
84 def_bool n
85
86config MN10300_CACHE_SNOOP
87 bool "Use CPU Cache Snooping"
88 depends on MN10300_CACHE_ENABLED && MN10300_HAS_CACHE_SNOOP
89 default y
90
91config MN10300_CACHE_FLUSH_ICACHE
92 def_bool y if MN10300_CACHE_WBACK && !MN10300_CACHE_SNOOP
93 help
94 Set if we need the dcache flushing before the icache is invalidated.
95
96config MN10300_CACHE_INV_ICACHE
97 def_bool y if MN10300_CACHE_WTHRU && !MN10300_CACHE_SNOOP
98 help
99 Set if we need the icache to be invalidated, even if the dcache is in
100 write-through mode and doesn't need flushing.