Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
[linux-2.6] / arch / sh / mm / Kconfig
1 #
2 # Processor families
3 #
4 config CPU_SH2
5         bool
6
7 config CPU_SH2A
8         bool
9         select CPU_SH2
10
11 config CPU_SH3
12         bool
13         select CPU_HAS_INTEVT
14         select CPU_HAS_SR_RB
15
16 config CPU_SH4
17         bool
18         select CPU_HAS_INTEVT
19         select CPU_HAS_SR_RB
20         select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
21         select CPU_HAS_FPU if !CPU_SH4AL_DSP
22
23 config CPU_SH4A
24         bool
25         select CPU_SH4
26
27 config CPU_SH4AL_DSP
28         bool
29         select CPU_SH4A
30         select CPU_HAS_DSP
31
32 config CPU_SHX2
33         bool
34
35 config CPU_SHX3
36         bool
37
38 choice
39         prompt "Processor sub-type selection"
40
41 #
42 # Processor subtypes
43 #
44
45 # SH-2 Processor Support
46
47 config CPU_SUBTYPE_SH7619
48         bool "Support SH7619 processor"
49         select CPU_SH2
50
51 # SH-2A Processor Support
52
53 config CPU_SUBTYPE_SH7206
54         bool "Support SH7206 processor"
55         select CPU_SH2A
56
57 # SH-3 Processor Support
58
59 config CPU_SUBTYPE_SH7705
60         bool "Support SH7705 processor"
61         select CPU_SH3
62
63 config CPU_SUBTYPE_SH7706
64         bool "Support SH7706 processor"
65         select CPU_SH3
66         help
67           Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
68
69 config CPU_SUBTYPE_SH7707
70         bool "Support SH7707 processor"
71         select CPU_SH3
72         help
73           Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
74
75 config CPU_SUBTYPE_SH7708
76         bool "Support SH7708 processor"
77         select CPU_SH3
78         help
79           Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
80           if you have a 100 Mhz SH-3 HD6417708R CPU.
81
82 config CPU_SUBTYPE_SH7709
83         bool "Support SH7709 processor"
84         select CPU_SH3
85         help
86           Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
87
88 config CPU_SUBTYPE_SH7710
89         bool "Support SH7710 processor"
90         select CPU_SH3
91         select CPU_HAS_DSP
92         help
93           Select SH7710 if you have a SH3-DSP SH7710 CPU.
94
95 config CPU_SUBTYPE_SH7712
96         bool "Support SH7712 processor"
97         select CPU_SH3
98         select CPU_HAS_DSP
99         help
100           Select SH7712 if you have a SH3-DSP SH7712 CPU.
101
102 config CPU_SUBTYPE_SH7720
103         bool "Support SH7720 processor"
104         select CPU_SH3
105         select CPU_HAS_DSP
106         help
107           Select SH7720 if you have a SH3-DSP SH7720 CPU.
108
109 # SH-4 Processor Support
110
111 config CPU_SUBTYPE_SH7750
112         bool "Support SH7750 processor"
113         select CPU_SH4
114         help
115           Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
116
117 config CPU_SUBTYPE_SH7091
118         bool "Support SH7091 processor"
119         select CPU_SH4
120         help
121           Select SH7091 if you have an SH-4 based Sega device (such as
122           the Dreamcast, Naomi, and Naomi 2).
123
124 config CPU_SUBTYPE_SH7750R
125         bool "Support SH7750R processor"
126         select CPU_SH4
127
128 config CPU_SUBTYPE_SH7750S
129         bool "Support SH7750S processor"
130         select CPU_SH4
131
132 config CPU_SUBTYPE_SH7751
133         bool "Support SH7751 processor"
134         select CPU_SH4
135         help
136           Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
137           or if you have a HD6417751R CPU.
138
139 config CPU_SUBTYPE_SH7751R
140         bool "Support SH7751R processor"
141         select CPU_SH4
142
143 config CPU_SUBTYPE_SH7760
144         bool "Support SH7760 processor"
145         select CPU_SH4
146
147 config CPU_SUBTYPE_SH4_202
148         bool "Support SH4-202 processor"
149         select CPU_SH4
150
151 # SH-4A Processor Support
152
153 config CPU_SUBTYPE_SH7770
154         bool "Support SH7770 processor"
155         select CPU_SH4A
156
157 config CPU_SUBTYPE_SH7780
158         bool "Support SH7780 processor"
159         select CPU_SH4A
160
161 config CPU_SUBTYPE_SH7785
162         bool "Support SH7785 processor"
163         select CPU_SH4A
164         select CPU_SHX2
165         select ARCH_SPARSEMEM_ENABLE
166         select SYS_SUPPORTS_NUMA
167
168 config CPU_SUBTYPE_SHX3
169         bool "Support SH-X3 processor"
170         select CPU_SH4A
171         select CPU_SHX3
172         select ARCH_SPARSEMEM_ENABLE
173         select SYS_SUPPORTS_NUMA
174         select SYS_SUPPORTS_SMP
175
176 # SH4AL-DSP Processor Support
177
178 config CPU_SUBTYPE_SH7343
179         bool "Support SH7343 processor"
180         select CPU_SH4AL_DSP
181
182 config CPU_SUBTYPE_SH7722
183         bool "Support SH7722 processor"
184         select CPU_SH4AL_DSP
185         select CPU_SHX2
186         select ARCH_SPARSEMEM_ENABLE
187         select SYS_SUPPORTS_NUMA
188
189 endchoice
190
191 menu "Memory management options"
192
193 config QUICKLIST
194         def_bool y
195
196 config MMU
197         bool "Support for memory management hardware"
198         depends on !CPU_SH2
199         default y
200         help
201           Some SH processors (such as SH-2/SH-2A) lack an MMU. In order to
202           boot on these systems, this option must not be set.
203
204           On other systems (such as the SH-3 and 4) where an MMU exists,
205           turning this off will boot the kernel on these machines with the
206           MMU implicitly switched off.
207
208 config PAGE_OFFSET
209         hex
210         default "0x80000000" if MMU
211         default "0x00000000"
212
213 config MEMORY_START
214         hex "Physical memory start address"
215         default "0x08000000"
216         ---help---
217           Computers built with Hitachi SuperH processors always
218           map the ROM starting at address zero.  But the processor
219           does not specify the range that RAM takes.
220
221           The physical memory (RAM) start address will be automatically
222           set to 08000000. Other platforms, such as the Solution Engine
223           boards typically map RAM at 0C000000.
224
225           Tweak this only when porting to a new machine which does not
226           already have a defconfig. Changing it from the known correct
227           value on any of the known systems will only lead to disaster.
228
229 config MEMORY_SIZE
230         hex "Physical memory size"
231         default "0x00400000"
232         help
233           This sets the default memory size assumed by your SH kernel. It can
234           be overridden as normal by the 'mem=' argument on the kernel command
235           line. If unsure, consult your board specifications or just leave it
236           as 0x00400000 which was the default value before this became
237           configurable.
238
239 config 32BIT
240         bool "Support 32-bit physical addressing through PMB"
241         depends on MMU && (CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785)
242         default y
243         help
244           If you say Y here, physical addressing will be extended to
245           32-bits through the SH-4A PMB. If this is not set, legacy
246           29-bit physical addressing will be used.
247
248 config X2TLB
249         bool "Enable extended TLB mode"
250         depends on (CPU_SHX2 || CPU_SHX3) && MMU && EXPERIMENTAL
251         help
252           Selecting this option will enable the extended mode of the SH-X2
253           TLB. For legacy SH-X behaviour and interoperability, say N. For
254           all of the fun new features and a willingless to submit bug reports,
255           say Y.
256
257 config VSYSCALL
258         bool "Support vsyscall page"
259         depends on MMU
260         default y
261         help
262           This will enable support for the kernel mapping a vDSO page
263           in process space, and subsequently handing down the entry point
264           to the libc through the ELF auxiliary vector.
265
266           From the kernel side this is used for the signal trampoline.
267           For systems with an MMU that can afford to give up a page,
268           (the default value) say Y.
269
270 config NUMA
271         bool "Non Uniform Memory Access (NUMA) Support"
272         depends on MMU && SYS_SUPPORTS_NUMA && EXPERIMENTAL
273         default n
274         help
275           Some SH systems have many various memories scattered around
276           the address space, each with varying latencies. This enables
277           support for these blocks by binding them to nodes and allowing
278           memory policies to be used for prioritizing and controlling
279           allocation behaviour.
280
281 config NODES_SHIFT
282         int
283         default "3" if CPU_SUBTYPE_SHX3
284         default "1"
285         depends on NEED_MULTIPLE_NODES
286
287 config ARCH_FLATMEM_ENABLE
288         def_bool y
289         depends on !NUMA
290
291 config ARCH_SPARSEMEM_ENABLE
292         def_bool y
293         select SPARSEMEM_STATIC
294
295 config ARCH_SPARSEMEM_DEFAULT
296         def_bool y
297
298 config MAX_ACTIVE_REGIONS
299         int
300         default "6" if (CPU_SUBTYPE_SHX3 && SPARSEMEM)
301         default "2" if SPARSEMEM && (CPU_SUBTYPE_SH7722 || \
302                        CPU_SUBTYPE_SH7785)
303         default "1"
304
305 config ARCH_POPULATES_NODE_MAP
306         def_bool y
307
308 config ARCH_SELECT_MEMORY_MODEL
309         def_bool y
310
311 config ARCH_ENABLE_MEMORY_HOTPLUG
312         def_bool y
313         depends on SPARSEMEM
314
315 config ARCH_MEMORY_PROBE
316         def_bool y
317         depends on MEMORY_HOTPLUG
318
319 choice
320         prompt "Kernel page size"
321         default PAGE_SIZE_8KB if X2TLB
322         default PAGE_SIZE_4KB
323
324 config PAGE_SIZE_4KB
325         bool "4kB"
326         depends on !X2TLB
327         help
328           This is the default page size used by all SuperH CPUs.
329
330 config PAGE_SIZE_8KB
331         bool "8kB"
332         depends on X2TLB
333         help
334           This enables 8kB pages as supported by SH-X2 and later MMUs.
335
336 config PAGE_SIZE_64KB
337         bool "64kB"
338         depends on CPU_SH4
339         help
340           This enables support for 64kB pages, possible on all SH-4
341           CPUs and later.
342
343 endchoice
344
345 choice
346         prompt "HugeTLB page size"
347         depends on HUGETLB_PAGE && CPU_SH4 && MMU
348         default HUGETLB_PAGE_SIZE_64K
349
350 config HUGETLB_PAGE_SIZE_64K
351         bool "64kB"
352
353 config HUGETLB_PAGE_SIZE_256K
354         bool "256kB"
355         depends on X2TLB
356
357 config HUGETLB_PAGE_SIZE_1MB
358         bool "1MB"
359
360 config HUGETLB_PAGE_SIZE_4MB
361         bool "4MB"
362         depends on X2TLB
363
364 config HUGETLB_PAGE_SIZE_64MB
365         bool "64MB"
366         depends on X2TLB
367
368 endchoice
369
370 source "mm/Kconfig"
371
372 endmenu
373
374 menu "Cache configuration"
375
376 config SH7705_CACHE_32KB
377         bool "Enable 32KB cache size for SH7705"
378         depends on CPU_SUBTYPE_SH7705
379         default y
380
381 config SH_DIRECT_MAPPED
382         bool "Use direct-mapped caching"
383         default n
384         help
385           Selecting this option will configure the caches to be direct-mapped,
386           even if the cache supports a 2 or 4-way mode. This is useful primarily
387           for debugging on platforms with 2 and 4-way caches (SH7750R/SH7751R,
388           SH4-202, SH4-501, etc.)
389
390           Turn this option off for platforms that do not have a direct-mapped
391           cache, and you have no need to run the caches in such a configuration.
392
393 choice
394         prompt "Cache mode"
395         default CACHE_WRITEBACK if CPU_SH2A || CPU_SH3 || CPU_SH4
396         default CACHE_WRITETHROUGH if (CPU_SH2 && !CPU_SH2A)
397
398 config CACHE_WRITEBACK
399         bool "Write-back"
400         depends on CPU_SH2A || CPU_SH3 || CPU_SH4
401
402 config CACHE_WRITETHROUGH
403         bool "Write-through"
404         help
405           Selecting this option will configure the caches in write-through
406           mode, as opposed to the default write-back configuration.
407
408           Since there's sill some aliasing issues on SH-4, this option will
409           unfortunately still require the majority of flushing functions to
410           be implemented to deal with aliasing.
411
412           If unsure, say N.
413
414 config CACHE_OFF
415         bool "Off"
416
417 endchoice
418
419 endmenu