1config METAG
2	def_bool y
3	select EMBEDDED
4	select GENERIC_ATOMIC64
5	select GENERIC_CLOCKEVENTS
6	select GENERIC_IRQ_SHOW
7	select GENERIC_SMP_IDLE_THREAD
8	select HAVE_64BIT_ALIGNED_ACCESS
9	select HAVE_ARCH_TRACEHOOK
10	select HAVE_C_RECORDMCOUNT
11	select HAVE_DEBUG_KMEMLEAK
12	select HAVE_DEBUG_STACKOVERFLOW
13	select HAVE_DYNAMIC_FTRACE
14	select HAVE_FTRACE_MCOUNT_RECORD
15	select HAVE_FUNCTION_TRACER
16	select HAVE_KERNEL_BZIP2
17	select HAVE_KERNEL_GZIP
18	select HAVE_KERNEL_LZO
19	select HAVE_KERNEL_XZ
20	select HAVE_MEMBLOCK
21	select HAVE_MEMBLOCK_NODE_MAP
22	select HAVE_MOD_ARCH_SPECIFIC
23	select HAVE_OPROFILE
24	select HAVE_PERF_EVENTS
25	select HAVE_SYSCALL_TRACEPOINTS
26	select HAVE_UNDERSCORE_SYMBOL_PREFIX
27	select IRQ_DOMAIN
28	select MODULES_USE_ELF_RELA
29	select OF
30	select OF_EARLY_FLATTREE
31	select SPARSE_IRQ
32
33config STACKTRACE_SUPPORT
34	def_bool y
35
36config LOCKDEP_SUPPORT
37	def_bool y
38
39config HAVE_LATENCYTOP_SUPPORT
40	def_bool y
41
42config RWSEM_GENERIC_SPINLOCK
43	def_bool y
44
45config RWSEM_XCHGADD_ALGORITHM
46	bool
47
48config GENERIC_HWEIGHT
49	def_bool y
50
51config GENERIC_CALIBRATE_DELAY
52	def_bool y
53
54config NO_IOPORT_MAP
55	def_bool y
56
57source "init/Kconfig"
58
59source "kernel/Kconfig.freezer"
60
61menu "Processor type and features"
62
63config MMU
64	def_bool y
65
66config STACK_GROWSUP
67	def_bool y
68
69config HOTPLUG_CPU
70	bool "Enable CPU hotplug support"
71	depends on SMP
72	help
73	  Say Y here to allow turning CPUs off and on. CPUs can be
74	  controlled through /sys/devices/system/cpu.
75
76	  Say N if you want to disable CPU hotplug.
77
78config HIGHMEM
79	bool "High Memory Support"
80	help
81	  The address space of Meta processors is only 4 Gigabytes large
82	  and it has to accommodate user address space, kernel address
83	  space as well as some memory mapped IO. That means that, if you
84	  have a large amount of physical memory and/or IO, not all of the
85	  memory can be "permanently mapped" by the kernel. The physical
86	  memory that is not permanently mapped is called "high memory".
87
88	  Depending on the selected kernel/user memory split, minimum
89	  vmalloc space and actual amount of RAM, you may not need this
90	  option which should result in a slightly faster kernel.
91
92	  If unsure, say n.
93
94source "arch/metag/mm/Kconfig"
95
96source "arch/metag/Kconfig.soc"
97
98config METAG_META12
99	bool
100	help
101	  Select this from the SoC config symbol to indicate that it contains a
102	  Meta 1.2 core.
103
104config METAG_META21
105	bool
106	help
107	  Select this from the SoC config symbol to indicate that it contains a
108	  Meta 2.1 core.
109
110config SMP
111	bool "Symmetric multi-processing support"
112	depends on METAG_META21 && METAG_META21_MMU
113	help
114	  This enables support for systems with more than one thread running
115	  Linux. If you have a system with only one thread running Linux,
116	  say N. Otherwise, say Y.
117
118config NR_CPUS
119	int "Maximum number of CPUs (2-4)" if SMP
120	range 2 4 if SMP
121	default "1" if !SMP
122	default "4" if SMP
123
124config METAG_SMP_WRITE_REORDERING
125	bool
126	help
127	  This attempts to prevent cache-memory incoherence due to external
128	  reordering of writes from different hardware threads when SMP is
129	  enabled. It adds fences (system event 0) to smp_mb and smp_rmb in an
130	  attempt to catch some of the cases, and also before writes to shared
131	  memory in LOCK1 protected atomics and spinlocks.
132	  This will not completely prevent cache incoherency on affected cores.
133
134config METAG_LNKGET_AROUND_CACHE
135	bool
136	depends on METAG_META21
137	help
138	  This indicates that the LNKGET/LNKSET instructions go around the
139	  cache, which requires some extra cache flushes when the memory needs
140	  to be accessed by normal GET/SET instructions too.
141
142choice
143	prompt "Atomicity primitive"
144	default METAG_ATOMICITY_LNKGET
145	help
146	  This option selects the mechanism for performing atomic operations.
147
148config METAG_ATOMICITY_IRQSOFF
149	depends on !SMP
150	bool "irqsoff"
151	help
152	  This option disables interrupts to achieve atomicity. This mechanism
153	  is not SMP-safe.
154
155config METAG_ATOMICITY_LNKGET
156	depends on METAG_META21
157	bool "lnkget/lnkset"
158	help
159	  This option uses the LNKGET and LNKSET instructions to achieve
160	  atomicity. LNKGET/LNKSET are load-link/store-conditional instructions.
161	  Choose this option if your system requires low latency.
162
163config METAG_ATOMICITY_LOCK1
164	depends on SMP
165	bool "lock1"
166	help
167	  This option uses the LOCK1 instruction for atomicity. This is mainly
168	  provided as a debugging aid if the lnkget/lnkset atomicity primitive
169	  isn't working properly.
170
171endchoice
172
173config METAG_FPU
174	bool "FPU Support"
175	depends on METAG_META21
176	default y
177	help
178	  This option allows processes to use FPU hardware available with this
179	  CPU. If this option is not enabled FPU registers will not be saved
180	  and restored on context-switch.
181
182	  If you plan on running programs which are compiled to use hard floats
183	  say Y here.
184
185config METAG_DSP
186	bool "DSP Support"
187	help
188	  This option allows processes to use DSP hardware available
189	  with this CPU. If this option is not enabled DSP registers
190	  will not be saved and restored on context-switch.
191
192	  If you plan on running DSP programs say Y here.
193
194config METAG_PERFCOUNTER_IRQS
195	bool "PerfCounters interrupt support"
196	depends on METAG_META21
197	help
198	  This option enables using interrupts to collect information from
199	  Performance Counters. This option is supported in new META21
200	  (starting from HTP265).
201
202	  When disabled, Performance Counters information will be collected
203	  based on Timer Interrupt.
204
205config HW_PERF_EVENTS
206	def_bool METAG_PERFCOUNTER_IRQS && PERF_EVENTS
207
208config METAG_DA
209	bool "DA support"
210	help
211	  Say Y if you plan to use a DA debug adapter with Linux. The presence
212	  of the DA will be detected automatically at boot, so it is safe to say
213	  Y to this option even when booting without a DA.
214
215	  This enables support for services provided by DA JTAG debug adapters,
216	  such as:
217	  - communication over DA channels (such as the console driver).
218	  - use of the DA filesystem.
219
220menu "Boot options"
221
222config METAG_BUILTIN_DTB
223	bool "Embed DTB in kernel image"
224	default y
225	help
226	  Embeds a device tree binary in the kernel image.
227
228config METAG_BUILTIN_DTB_NAME
229	string "Built in DTB"
230	depends on METAG_BUILTIN_DTB
231	help
232	  Set the name of the DTB to embed (leave blank to pick one
233	  automatically based on kernel configuration).
234
235config CMDLINE_BOOL
236	bool "Default bootloader kernel arguments"
237
238config CMDLINE
239	string "Kernel command line"
240	depends on CMDLINE_BOOL
241	help
242	  On some architectures there is currently no way for the boot loader
243	  to pass arguments to the kernel. For these architectures, you should
244	  supply some command-line options at build time by entering them
245	  here.
246
247config CMDLINE_FORCE
248	bool "Force default kernel command string"
249	depends on CMDLINE_BOOL
250	help
251	  Set this to have arguments from the default kernel command string
252	  override those passed by the boot loader.
253
254endmenu
255
256source "kernel/Kconfig.preempt"
257
258source kernel/Kconfig.hz
259
260endmenu
261
262menu "Power management options"
263
264source kernel/power/Kconfig
265
266endmenu
267
268menu "Executable file formats"
269
270source "fs/Kconfig.binfmt"
271
272endmenu
273
274source "net/Kconfig"
275
276source "drivers/Kconfig"
277
278source "fs/Kconfig"
279
280source "arch/metag/Kconfig.debug"
281
282source "security/Kconfig"
283
284source "crypto/Kconfig"
285
286source "lib/Kconfig"
287