xref: /linux/arch/sh/mm/Kconfig (revision 896f0c0e8e4ee02ee72a203aef79f362d5f7b7cc)
1cad82448SPaul Mundtmenu "Memory management options"
2cad82448SPaul Mundt
35f8c9908SPaul Mundtconfig QUICKLIST
45f8c9908SPaul Mundt	def_bool y
55f8c9908SPaul Mundt
6cad82448SPaul Mundtconfig MMU
7cad82448SPaul Mundt        bool "Support for memory management hardware"
8cad82448SPaul Mundt	depends on !CPU_SH2
9cad82448SPaul Mundt	default y
10cad82448SPaul Mundt	help
11cad82448SPaul Mundt	  Some SH processors (such as SH-2/SH-2A) lack an MMU. In order to
12cad82448SPaul Mundt	  boot on these systems, this option must not be set.
13cad82448SPaul Mundt
14cad82448SPaul Mundt	  On other systems (such as the SH-3 and 4) where an MMU exists,
15cad82448SPaul Mundt	  turning this off will boot the kernel on these machines with the
16cad82448SPaul Mundt	  MMU implicitly switched off.
17cad82448SPaul Mundt
18e7f93a35SPaul Mundtconfig PAGE_OFFSET
19e7f93a35SPaul Mundt	hex
2036763b22SPaul Mundt	default "0x80000000" if MMU && SUPERH32
2136763b22SPaul Mundt	default "0x20000000" if MMU && SUPERH64
22e7f93a35SPaul Mundt	default "0x00000000"
23e7f93a35SPaul Mundt
24ad3256e3SPaul Mundtconfig FORCE_MAX_ZONEORDER
25ad3256e3SPaul Mundt	int "Maximum zone order"
26ad3256e3SPaul Mundt	range 9 64 if PAGE_SIZE_16KB
27ad3256e3SPaul Mundt	default "9" if PAGE_SIZE_16KB
28ad3256e3SPaul Mundt	range 7 64 if PAGE_SIZE_64KB
29ad3256e3SPaul Mundt	default "7" if PAGE_SIZE_64KB
30ad3256e3SPaul Mundt	range 11 64
31ad3256e3SPaul Mundt	default "14" if !MMU
32ad3256e3SPaul Mundt	default "11"
33ad3256e3SPaul Mundt	help
34ad3256e3SPaul Mundt	  The kernel memory allocator divides physically contiguous memory
35ad3256e3SPaul Mundt	  blocks into "zones", where each zone is a power of two number of
36ad3256e3SPaul Mundt	  pages.  This option selects the largest power of two that the kernel
37ad3256e3SPaul Mundt	  keeps in the memory allocator.  If you need to allocate very large
38ad3256e3SPaul Mundt	  blocks of physically contiguous memory, then you may need to
39ad3256e3SPaul Mundt	  increase this value.
40ad3256e3SPaul Mundt
41ad3256e3SPaul Mundt	  This config option is actually maximum order plus one. For example,
42ad3256e3SPaul Mundt	  a value of 11 means that the largest free memory block is 2^10 pages.
43ad3256e3SPaul Mundt
44ad3256e3SPaul Mundt	  The page size is not necessarily 4KB. Keep this in mind when
45ad3256e3SPaul Mundt	  choosing a value for this option.
46ad3256e3SPaul Mundt
47e7f93a35SPaul Mundtconfig MEMORY_START
48e7f93a35SPaul Mundt	hex "Physical memory start address"
49e7f93a35SPaul Mundt	default "0x08000000"
50e7f93a35SPaul Mundt	---help---
51e7f93a35SPaul Mundt	  Computers built with Hitachi SuperH processors always
52e7f93a35SPaul Mundt	  map the ROM starting at address zero.  But the processor
53e7f93a35SPaul Mundt	  does not specify the range that RAM takes.
54e7f93a35SPaul Mundt
55e7f93a35SPaul Mundt	  The physical memory (RAM) start address will be automatically
56e7f93a35SPaul Mundt	  set to 08000000. Other platforms, such as the Solution Engine
57e7f93a35SPaul Mundt	  boards typically map RAM at 0C000000.
58e7f93a35SPaul Mundt
59e7f93a35SPaul Mundt	  Tweak this only when porting to a new machine which does not
60e7f93a35SPaul Mundt	  already have a defconfig. Changing it from the known correct
61e7f93a35SPaul Mundt	  value on any of the known systems will only lead to disaster.
62e7f93a35SPaul Mundt
63e7f93a35SPaul Mundtconfig MEMORY_SIZE
64e7f93a35SPaul Mundt	hex "Physical memory size"
65711fe436SPaul Mundt	default "0x04000000"
66e7f93a35SPaul Mundt	help
67e7f93a35SPaul Mundt	  This sets the default memory size assumed by your SH kernel. It can
68e7f93a35SPaul Mundt	  be overridden as normal by the 'mem=' argument on the kernel command
69e7f93a35SPaul Mundt	  line. If unsure, consult your board specifications or just leave it
70711fe436SPaul Mundt	  as 0x04000000 which was the default value before this became
71e7f93a35SPaul Mundt	  configurable.
72e7f93a35SPaul Mundt
7336bcd39dSPaul Mundt# Physical addressing modes
7436bcd39dSPaul Mundt
7536bcd39dSPaul Mundtconfig 29BIT
7636bcd39dSPaul Mundt	def_bool !32BIT
7736bcd39dSPaul Mundt	depends on SUPERH32
7836bcd39dSPaul Mundt
79cad82448SPaul Mundtconfig 32BIT
8036bcd39dSPaul Mundt	bool
8136bcd39dSPaul Mundt	default y if CPU_SH5
8236bcd39dSPaul Mundt
832f47f447SYoshihiro Shimodaconfig PMB_ENABLE
84cad82448SPaul Mundt	bool "Support 32-bit physical addressing through PMB"
85c01f0f1aSYoshihiro Shimoda	depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7757 || CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785)
86cad82448SPaul Mundt	default y
87cad82448SPaul Mundt	help
88cad82448SPaul Mundt	  If you say Y here, physical addressing will be extended to
89cad82448SPaul Mundt	  32-bits through the SH-4A PMB. If this is not set, legacy
90cad82448SPaul Mundt	  29-bit physical addressing will be used.
91cad82448SPaul Mundt
922f47f447SYoshihiro Shimodachoice
932f47f447SYoshihiro Shimoda	prompt "PMB handling type"
942f47f447SYoshihiro Shimoda	depends on PMB_ENABLE
952f47f447SYoshihiro Shimoda	default PMB_FIXED
962f47f447SYoshihiro Shimoda
972f47f447SYoshihiro Shimodaconfig PMB
982f47f447SYoshihiro Shimoda	bool "PMB"
99c01f0f1aSYoshihiro Shimoda	depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7757 || CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785)
1002f47f447SYoshihiro Shimoda	help
1012f47f447SYoshihiro Shimoda	  If you say Y here, physical addressing will be extended to
1022f47f447SYoshihiro Shimoda	  32-bits through the SH-4A PMB. If this is not set, legacy
1032f47f447SYoshihiro Shimoda	  29-bit physical addressing will be used.
1042f47f447SYoshihiro Shimoda
1052f47f447SYoshihiro Shimodaconfig PMB_FIXED
1062f47f447SYoshihiro Shimoda	bool "fixed PMB"
107c01f0f1aSYoshihiro Shimoda	depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7757 || \
108c01f0f1aSYoshihiro Shimoda					   CPU_SUBTYPE_SH7780 || \
1092f47f447SYoshihiro Shimoda					   CPU_SUBTYPE_SH7785)
1102f47f447SYoshihiro Shimoda	select 32BIT
1112f47f447SYoshihiro Shimoda	help
1122f47f447SYoshihiro Shimoda	  If this option is enabled, fixed PMB mappings are inherited
1132f47f447SYoshihiro Shimoda	  from the boot loader, and the kernel does not attempt dynamic
1142f47f447SYoshihiro Shimoda	  management. This is the closest to legacy 29-bit physical mode,
1152f47f447SYoshihiro Shimoda	  and allows systems to support up to 512MiB of system memory.
1162f47f447SYoshihiro Shimoda
1172f47f447SYoshihiro Shimodaendchoice
1182f47f447SYoshihiro Shimoda
11921440cf0SPaul Mundtconfig X2TLB
12021440cf0SPaul Mundt	bool "Enable extended TLB mode"
121c3af3975SPaul Mundt	depends on (CPU_SHX2 || CPU_SHX3) && MMU && EXPERIMENTAL
12221440cf0SPaul Mundt	help
12321440cf0SPaul Mundt	  Selecting this option will enable the extended mode of the SH-X2
12421440cf0SPaul Mundt	  TLB. For legacy SH-X behaviour and interoperability, say N. For
12521440cf0SPaul Mundt	  all of the fun new features and a willingless to submit bug reports,
12621440cf0SPaul Mundt	  say Y.
12721440cf0SPaul Mundt
12819f9a34fSPaul Mundtconfig VSYSCALL
12919f9a34fSPaul Mundt	bool "Support vsyscall page"
130a09063daSPaul Mundt	depends on MMU && (CPU_SH3 || CPU_SH4)
13119f9a34fSPaul Mundt	default y
13219f9a34fSPaul Mundt	help
13319f9a34fSPaul Mundt	  This will enable support for the kernel mapping a vDSO page
13419f9a34fSPaul Mundt	  in process space, and subsequently handing down the entry point
13519f9a34fSPaul Mundt	  to the libc through the ELF auxiliary vector.
13619f9a34fSPaul Mundt
13719f9a34fSPaul Mundt	  From the kernel side this is used for the signal trampoline.
13819f9a34fSPaul Mundt	  For systems with an MMU that can afford to give up a page,
13919f9a34fSPaul Mundt	  (the default value) say Y.
14019f9a34fSPaul Mundt
141b241cb0cSPaul Mundtconfig NUMA
142b241cb0cSPaul Mundt	bool "Non Uniform Memory Access (NUMA) Support"
143357d5946SPaul Mundt	depends on MMU && SYS_SUPPORTS_NUMA && EXPERIMENTAL
144b241cb0cSPaul Mundt	default n
145b241cb0cSPaul Mundt	help
146b241cb0cSPaul Mundt	  Some SH systems have many various memories scattered around
147b241cb0cSPaul Mundt	  the address space, each with varying latencies. This enables
148b241cb0cSPaul Mundt	  support for these blocks by binding them to nodes and allowing
149b241cb0cSPaul Mundt	  memory policies to be used for prioritizing and controlling
150b241cb0cSPaul Mundt	  allocation behaviour.
151b241cb0cSPaul Mundt
15201066625SPaul Mundtconfig NODES_SHIFT
15301066625SPaul Mundt	int
1549904494dSPaul Mundt	default "3" if CPU_SUBTYPE_SHX3
15501066625SPaul Mundt	default "1"
15601066625SPaul Mundt	depends on NEED_MULTIPLE_NODES
15701066625SPaul Mundt
15801066625SPaul Mundtconfig ARCH_FLATMEM_ENABLE
15901066625SPaul Mundt	def_bool y
160357d5946SPaul Mundt	depends on !NUMA
16101066625SPaul Mundt
162dfbb9042SPaul Mundtconfig ARCH_SPARSEMEM_ENABLE
163dfbb9042SPaul Mundt	def_bool y
164dfbb9042SPaul Mundt	select SPARSEMEM_STATIC
165dfbb9042SPaul Mundt
166dfbb9042SPaul Mundtconfig ARCH_SPARSEMEM_DEFAULT
167dfbb9042SPaul Mundt	def_bool y
168dfbb9042SPaul Mundt
1691ce7ddd5SPaul Mundtconfig MAX_ACTIVE_REGIONS
1701ce7ddd5SPaul Mundt	int
1717da3b8efSPaul Mundt	default "6" if (CPU_SUBTYPE_SHX3 && SPARSEMEM)
172dc47e9ddSPaul Mundt	default "2" if SPARSEMEM && (CPU_SUBTYPE_SH7722 || \
173dc47e9ddSPaul Mundt		       CPU_SUBTYPE_SH7785)
1741ce7ddd5SPaul Mundt	default "1"
1751ce7ddd5SPaul Mundt
17601066625SPaul Mundtconfig ARCH_POPULATES_NODE_MAP
17701066625SPaul Mundt	def_bool y
17801066625SPaul Mundt
179dfbb9042SPaul Mundtconfig ARCH_SELECT_MEMORY_MODEL
180dfbb9042SPaul Mundt	def_bool y
181dfbb9042SPaul Mundt
18233d63bd8SPaul Mundtconfig ARCH_ENABLE_MEMORY_HOTPLUG
18333d63bd8SPaul Mundt	def_bool y
184b85641bdSPaul Mundt	depends on SPARSEMEM && MMU
18533d63bd8SPaul Mundt
1863159e7d6SPaul Mundtconfig ARCH_ENABLE_MEMORY_HOTREMOVE
1873159e7d6SPaul Mundt	def_bool y
188b85641bdSPaul Mundt	depends on SPARSEMEM && MMU
1893159e7d6SPaul Mundt
19033d63bd8SPaul Mundtconfig ARCH_MEMORY_PROBE
19133d63bd8SPaul Mundt	def_bool y
19233d63bd8SPaul Mundt	depends on MEMORY_HOTPLUG
19333d63bd8SPaul Mundt
194cad82448SPaul Mundtchoice
19521440cf0SPaul Mundt	prompt "Kernel page size"
1964d2cab7cSPaul Mundt	default PAGE_SIZE_8KB if X2TLB
19721440cf0SPaul Mundt	default PAGE_SIZE_4KB
19821440cf0SPaul Mundt
19921440cf0SPaul Mundtconfig PAGE_SIZE_4KB
20021440cf0SPaul Mundt	bool "4kB"
20174fcc779SPaul Mundt	depends on !MMU || !X2TLB
20221440cf0SPaul Mundt	help
20321440cf0SPaul Mundt	  This is the default page size used by all SuperH CPUs.
20421440cf0SPaul Mundt
20521440cf0SPaul Mundtconfig PAGE_SIZE_8KB
20621440cf0SPaul Mundt	bool "8kB"
20774fcc779SPaul Mundt	depends on !MMU || X2TLB
20821440cf0SPaul Mundt	help
20921440cf0SPaul Mundt	  This enables 8kB pages as supported by SH-X2 and later MMUs.
21021440cf0SPaul Mundt
21166dfe181SPaul Mundtconfig PAGE_SIZE_16KB
21266dfe181SPaul Mundt	bool "16kB"
21366dfe181SPaul Mundt	depends on !MMU
21466dfe181SPaul Mundt	help
21566dfe181SPaul Mundt	  This enables 16kB pages on MMU-less SH systems.
21666dfe181SPaul Mundt
21721440cf0SPaul Mundtconfig PAGE_SIZE_64KB
21821440cf0SPaul Mundt	bool "64kB"
21974fcc779SPaul Mundt	depends on !MMU || CPU_SH4 || CPU_SH5
22021440cf0SPaul Mundt	help
22121440cf0SPaul Mundt	  This enables support for 64kB pages, possible on all SH-4
2224d2cab7cSPaul Mundt	  CPUs and later.
22321440cf0SPaul Mundt
22421440cf0SPaul Mundtendchoice
22521440cf0SPaul Mundt
22621440cf0SPaul Mundtchoice
227cad82448SPaul Mundt	prompt "HugeTLB page size"
228079060c6SPaul Mundt	depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU
22968b7c24cSPaul Mundt	default HUGETLB_PAGE_SIZE_1MB if PAGE_SIZE_64KB
230cad82448SPaul Mundt	default HUGETLB_PAGE_SIZE_64K
231cad82448SPaul Mundt
232cad82448SPaul Mundtconfig HUGETLB_PAGE_SIZE_64K
23321440cf0SPaul Mundt	bool "64kB"
23468b7c24cSPaul Mundt	depends on !PAGE_SIZE_64KB
23521440cf0SPaul Mundt
23621440cf0SPaul Mundtconfig HUGETLB_PAGE_SIZE_256K
23721440cf0SPaul Mundt	bool "256kB"
23821440cf0SPaul Mundt	depends on X2TLB
239cad82448SPaul Mundt
240cad82448SPaul Mundtconfig HUGETLB_PAGE_SIZE_1MB
241cad82448SPaul Mundt	bool "1MB"
242cad82448SPaul Mundt
24321440cf0SPaul Mundtconfig HUGETLB_PAGE_SIZE_4MB
24421440cf0SPaul Mundt	bool "4MB"
24521440cf0SPaul Mundt	depends on X2TLB
24621440cf0SPaul Mundt
24721440cf0SPaul Mundtconfig HUGETLB_PAGE_SIZE_64MB
24821440cf0SPaul Mundt	bool "64MB"
24921440cf0SPaul Mundt	depends on X2TLB
25021440cf0SPaul Mundt
251a09063daSPaul Mundtconfig HUGETLB_PAGE_SIZE_512MB
252a09063daSPaul Mundt	bool "512MB"
253a09063daSPaul Mundt	depends on CPU_SH5
254a09063daSPaul Mundt
255cad82448SPaul Mundtendchoice
256cad82448SPaul Mundt
257cad82448SPaul Mundtsource "mm/Kconfig"
258cad82448SPaul Mundt
259*896f0c0eSPaul Mundtconfig SCHED_MC
260*896f0c0eSPaul Mundt	bool "Multi-core scheduler support"
261*896f0c0eSPaul Mundt	depends on SMP
262*896f0c0eSPaul Mundt	default y
263*896f0c0eSPaul Mundt	help
264*896f0c0eSPaul Mundt	  Multi-core scheduler support improves the CPU scheduler's decision
265*896f0c0eSPaul Mundt	  making when dealing with multi-core CPU chips at a cost of slightly
266*896f0c0eSPaul Mundt	  increased overhead in some places. If unsure say N here.
267*896f0c0eSPaul Mundt
268cad82448SPaul Mundtendmenu
269cad82448SPaul Mundt
270cad82448SPaul Mundtmenu "Cache configuration"
271cad82448SPaul Mundt
272cad82448SPaul Mundtconfig SH7705_CACHE_32KB
273cad82448SPaul Mundt	bool "Enable 32KB cache size for SH7705"
274cad82448SPaul Mundt	depends on CPU_SUBTYPE_SH7705
275cad82448SPaul Mundt	default y
276cad82448SPaul Mundt
277e7bd34a1SPaul Mundtchoice
278e7bd34a1SPaul Mundt	prompt "Cache mode"
279a09063daSPaul Mundt	default CACHE_WRITEBACK if CPU_SH2A || CPU_SH3 || CPU_SH4 || CPU_SH5
280e7bd34a1SPaul Mundt	default CACHE_WRITETHROUGH if (CPU_SH2 && !CPU_SH2A)
281e7bd34a1SPaul Mundt
282e7bd34a1SPaul Mundtconfig CACHE_WRITEBACK
283e7bd34a1SPaul Mundt	bool "Write-back"
284e7bd34a1SPaul Mundt
285e7bd34a1SPaul Mundtconfig CACHE_WRITETHROUGH
286e7bd34a1SPaul Mundt	bool "Write-through"
287cad82448SPaul Mundt	help
288cad82448SPaul Mundt	  Selecting this option will configure the caches in write-through
289cad82448SPaul Mundt	  mode, as opposed to the default write-back configuration.
290cad82448SPaul Mundt
291cad82448SPaul Mundt	  Since there's sill some aliasing issues on SH-4, this option will
292cad82448SPaul Mundt	  unfortunately still require the majority of flushing functions to
293cad82448SPaul Mundt	  be implemented to deal with aliasing.
294cad82448SPaul Mundt
295cad82448SPaul Mundt	  If unsure, say N.
296cad82448SPaul Mundt
297e7bd34a1SPaul Mundtconfig CACHE_OFF
298e7bd34a1SPaul Mundt	bool "Off"
299e7bd34a1SPaul Mundt
300e7bd34a1SPaul Mundtendchoice
301e7bd34a1SPaul Mundt
302cad82448SPaul Mundtendmenu
303