1menu "Memory management options"
2
3config PAGE_OFFSET
4	hex "Kernel page offset address"
5	default "0x40000000"
6	help
7	  This option allows you to set the virtual address at which the
8	  kernel will be mapped to.
9endmenu
10
11config KERNEL_4M_PAGES
12	bool "Map kernel with 4MB pages"
13	depends on METAG_META21_MMU
14	default y
15	help
16	  Map the kernel with large pages to reduce TLB pressure.
17
18choice
19	prompt "User page size"
20	default PAGE_SIZE_4K
21
22config PAGE_SIZE_4K
23	bool "4kB"
24	help
25	  This is the default page size used by all Meta cores.
26
27config PAGE_SIZE_8K
28	bool "8kB"
29	depends on METAG_META21_MMU
30	help
31	  This enables 8kB pages as supported by Meta 2.x and later MMUs.
32
33config PAGE_SIZE_16K
34	bool "16kB"
35	depends on METAG_META21_MMU
36	help
37	  This enables 16kB pages as supported by Meta 2.x and later MMUs.
38
39endchoice
40
41config NUMA
42	bool "Non Uniform Memory Access (NUMA) Support"
43	select ARCH_WANT_NUMA_VARIABLE_LOCALITY
44	help
45	  Some Meta systems have MMU-mappable on-chip memories with
46	  lower latencies than main memory. This enables support for
47	  these blocks by binding them to nodes and allowing
48	  memory policies to be used for prioritizing and controlling
49	  allocation behaviour.
50
51config FORCE_MAX_ZONEORDER
52	int "Maximum zone order"
53	range 10 32
54	default "10"
55	help
56	  The kernel memory allocator divides physically contiguous memory
57	  blocks into "zones", where each zone is a power of two number of
58	  pages.  This option selects the largest power of two that the kernel
59	  keeps in the memory allocator.  If you need to allocate very large
60	  blocks of physically contiguous memory, then you may need to
61	  increase this value.
62
63	  This config option is actually maximum order plus one. For example,
64	  a value of 11 means that the largest free memory block is 2^10 pages.
65
66	  The page size is not necessarily 4KB.  Keep this in mind
67	  when choosing a value for this option.
68
69config METAG_L2C
70	bool "Level 2 Cache Support"
71	depends on METAG_META21
72	help
73	  Press y here to enable support for the Meta Level 2 (L2) cache. This
74	  will enable the cache at start up if it hasn't already been enabled
75	  by the bootloader.
76
77	  If the bootloader enables the L2 you must press y here to ensure the
78	  kernel takes the appropriate actions to keep the cache coherent.
79
80config NODES_SHIFT
81	int
82	default "1"
83	depends on NEED_MULTIPLE_NODES
84
85config ARCH_FLATMEM_ENABLE
86	def_bool y
87	depends on !NUMA
88
89config ARCH_SPARSEMEM_ENABLE
90	def_bool y
91	select SPARSEMEM_STATIC
92
93config ARCH_SPARSEMEM_DEFAULT
94	def_bool y
95
96config ARCH_SELECT_MEMORY_MODEL
97	def_bool y
98
99config SYS_SUPPORTS_HUGETLBFS
100	def_bool y
101	depends on METAG_META21_MMU
102
103choice
104	prompt "HugeTLB page size"
105	depends on METAG_META21_MMU && HUGETLB_PAGE
106	default HUGETLB_PAGE_SIZE_1M
107
108config HUGETLB_PAGE_SIZE_8K
109	bool "8kB"
110	depends on PAGE_SIZE_4K
111
112config HUGETLB_PAGE_SIZE_16K
113	bool "16kB"
114	depends on PAGE_SIZE_4K || PAGE_SIZE_8K
115
116config HUGETLB_PAGE_SIZE_32K
117	bool "32kB"
118
119config HUGETLB_PAGE_SIZE_64K
120	bool "64kB"
121
122config HUGETLB_PAGE_SIZE_128K
123	bool "128kB"
124
125config HUGETLB_PAGE_SIZE_256K
126	bool "256kB"
127
128config HUGETLB_PAGE_SIZE_512K
129	bool "512kB"
130
131config HUGETLB_PAGE_SIZE_1M
132	bool "1MB"
133
134config HUGETLB_PAGE_SIZE_2M
135	bool "2MB"
136
137config HUGETLB_PAGE_SIZE_4M
138	bool "4MB"
139
140endchoice
141
142config METAG_COREMEM
143	bool
144	default y if SUSPEND
145
146source "mm/Kconfig"
147