998c5c86346fa436eb06bfce47be22da0359b633
[powerpc.git] / arch / sh / mm / Kconfig
1 menu "Memory management options"
2
3 config QUICKLIST
4         def_bool y
5
6 config MMU
7         bool "Support for memory management hardware"
8         depends on !CPU_SH2
9         default y
10         help
11           Some SH processors (such as SH-2/SH-2A) lack an MMU. In order to
12           boot on these systems, this option must not be set.
13
14           On other systems (such as the SH-3 and 4) where an MMU exists,
15           turning this off will boot the kernel on these machines with the
16           MMU implicitly switched off.
17
18 config PAGE_OFFSET
19         hex
20         default "0x80000000" if MMU
21         default "0x00000000"
22
23 config MEMORY_START
24         hex "Physical memory start address"
25         default "0x08000000"
26         ---help---
27           Computers built with Hitachi SuperH processors always
28           map the ROM starting at address zero.  But the processor
29           does not specify the range that RAM takes.
30
31           The physical memory (RAM) start address will be automatically
32           set to 08000000. Other platforms, such as the Solution Engine
33           boards typically map RAM at 0C000000.
34
35           Tweak this only when porting to a new machine which does not
36           already have a defconfig. Changing it from the known correct
37           value on any of the known systems will only lead to disaster.
38
39 config MEMORY_SIZE
40         hex "Physical memory size"
41         default "0x00400000"
42         help
43           This sets the default memory size assumed by your SH kernel. It can
44           be overridden as normal by the 'mem=' argument on the kernel command
45           line. If unsure, consult your board specifications or just leave it
46           as 0x00400000 which was the default value before this became
47           configurable.
48
49 config 32BIT
50         bool "Support 32-bit physical addressing through PMB"
51         depends on MMU && (CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785)
52         default y
53         help
54           If you say Y here, physical addressing will be extended to
55           32-bits through the SH-4A PMB. If this is not set, legacy
56           29-bit physical addressing will be used.
57
58 config X2TLB
59         bool "Enable extended TLB mode"
60         depends on (CPU_SHX2 || CPU_SHX3) && MMU && EXPERIMENTAL
61         help
62           Selecting this option will enable the extended mode of the SH-X2
63           TLB. For legacy SH-X behaviour and interoperability, say N. For
64           all of the fun new features and a willingless to submit bug reports,
65           say Y.
66
67 config VSYSCALL
68         bool "Support vsyscall page"
69         depends on MMU
70         default y
71         help
72           This will enable support for the kernel mapping a vDSO page
73           in process space, and subsequently handing down the entry point
74           to the libc through the ELF auxiliary vector.
75
76           From the kernel side this is used for the signal trampoline.
77           For systems with an MMU that can afford to give up a page,
78           (the default value) say Y.
79
80 config NUMA
81         bool "Non Uniform Memory Access (NUMA) Support"
82         depends on MMU && SYS_SUPPORTS_NUMA && EXPERIMENTAL
83         default n
84         help
85           Some SH systems have many various memories scattered around
86           the address space, each with varying latencies. This enables
87           support for these blocks by binding them to nodes and allowing
88           memory policies to be used for prioritizing and controlling
89           allocation behaviour.
90
91 config NODES_SHIFT
92         int
93         default "3" if CPU_SUBTYPE_SHX3
94         default "1"
95         depends on NEED_MULTIPLE_NODES
96
97 config ARCH_FLATMEM_ENABLE
98         def_bool y
99         depends on !NUMA
100
101 config ARCH_SPARSEMEM_ENABLE
102         def_bool y
103         select SPARSEMEM_STATIC
104
105 config ARCH_SPARSEMEM_DEFAULT
106         def_bool y
107
108 config MAX_ACTIVE_REGIONS
109         int
110         default "6" if (CPU_SUBTYPE_SHX3 && SPARSEMEM)
111         default "2" if SPARSEMEM && (CPU_SUBTYPE_SH7722 || \
112                        CPU_SUBTYPE_SH7785)
113         default "1"
114
115 config ARCH_POPULATES_NODE_MAP
116         def_bool y
117
118 config ARCH_SELECT_MEMORY_MODEL
119         def_bool y
120
121 config ARCH_ENABLE_MEMORY_HOTPLUG
122         def_bool y
123         depends on SPARSEMEM
124
125 config ARCH_MEMORY_PROBE
126         def_bool y
127         depends on MEMORY_HOTPLUG
128
129 choice
130         prompt "Kernel page size"
131         default PAGE_SIZE_8KB if X2TLB
132         default PAGE_SIZE_4KB
133
134 config PAGE_SIZE_4KB
135         bool "4kB"
136         depends on !X2TLB
137         help
138           This is the default page size used by all SuperH CPUs.
139
140 config PAGE_SIZE_8KB
141         bool "8kB"
142         depends on X2TLB
143         help
144           This enables 8kB pages as supported by SH-X2 and later MMUs.
145
146 config PAGE_SIZE_64KB
147         bool "64kB"
148         depends on CPU_SH4
149         help
150           This enables support for 64kB pages, possible on all SH-4
151           CPUs and later.
152
153 endchoice
154
155 choice
156         prompt "HugeTLB page size"
157         depends on HUGETLB_PAGE && CPU_SH4 && MMU
158         default HUGETLB_PAGE_SIZE_64K
159
160 config HUGETLB_PAGE_SIZE_64K
161         bool "64kB"
162
163 config HUGETLB_PAGE_SIZE_256K
164         bool "256kB"
165         depends on X2TLB
166
167 config HUGETLB_PAGE_SIZE_1MB
168         bool "1MB"
169
170 config HUGETLB_PAGE_SIZE_4MB
171         bool "4MB"
172         depends on X2TLB
173
174 config HUGETLB_PAGE_SIZE_64MB
175         bool "64MB"
176         depends on X2TLB
177
178 endchoice
179
180 source "mm/Kconfig"
181
182 endmenu
183
184 menu "Cache configuration"
185
186 config SH7705_CACHE_32KB
187         bool "Enable 32KB cache size for SH7705"
188         depends on CPU_SUBTYPE_SH7705
189         default y
190
191 config SH_DIRECT_MAPPED
192         bool "Use direct-mapped caching"
193         default n
194         help
195           Selecting this option will configure the caches to be direct-mapped,
196           even if the cache supports a 2 or 4-way mode. This is useful primarily
197           for debugging on platforms with 2 and 4-way caches (SH7750R/SH7751R,
198           SH4-202, SH4-501, etc.)
199
200           Turn this option off for platforms that do not have a direct-mapped
201           cache, and you have no need to run the caches in such a configuration.
202
203 choice
204         prompt "Cache mode"
205         default CACHE_WRITEBACK if CPU_SH2A || CPU_SH3 || CPU_SH4
206         default CACHE_WRITETHROUGH if (CPU_SH2 && !CPU_SH2A)
207
208 config CACHE_WRITEBACK
209         bool "Write-back"
210         depends on CPU_SH2A || CPU_SH3 || CPU_SH4
211
212 config CACHE_WRITETHROUGH
213         bool "Write-through"
214         help
215           Selecting this option will configure the caches in write-through
216           mode, as opposed to the default write-back configuration.
217
218           Since there's sill some aliasing issues on SH-4, this option will
219           unfortunately still require the majority of flushing functions to
220           be implemented to deal with aliasing.
221
222           If unsure, say N.
223
224 config CACHE_OFF
225         bool "Off"
226
227 endchoice
228
229 endmenu