• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SPDX-License-Identifier: GPL-2.0
2comment "Processor Type"
3
4choice
5	prompt "CPU family support"
6	default M68KCLASSIC if MMU
7	default COLDFIRE if !MMU
8	help
9	  The Freescale (was Motorola) M68K family of processors implements
10	  the full 68000 processor instruction set.
11	  The Freescale ColdFire family of processors is a modern derivative
12	  of the 68000 processor family. They are mainly targeted at embedded
13	  applications, and are all System-On-Chip (SOC) devices, as opposed
14	  to stand alone CPUs. They implement a subset of the original 68000
15	  processor instruction set.
16	  If you anticipate running this kernel on a computer with a classic
17	  MC68xxx processor, select M68KCLASSIC.
18	  If you anticipate running this kernel on a computer with a ColdFire
19	  processor, select COLDFIRE.
20
21config M68KCLASSIC
22	bool "Classic M68K CPU family support"
23
24config COLDFIRE
25	bool "Coldfire CPU family support"
26	select ARCH_HAVE_CUSTOM_GPIO_H
27	select CPU_HAS_NO_BITFIELDS
28	select CPU_HAS_NO_CAS
29	select CPU_HAS_NO_MULDIV64
30	select GENERIC_CSUM
31	select GPIOLIB
32	select HAVE_LEGACY_CLK
33
34endchoice
35
36if M68KCLASSIC
37
38config M68000
39	bool "MC68000"
40	depends on !MMU
41	select CPU_HAS_NO_BITFIELDS
42	select CPU_HAS_NO_CAS
43	select CPU_HAS_NO_MULDIV64
44	select CPU_HAS_NO_UNALIGNED
45	select GENERIC_CSUM
46	select CPU_NO_EFFICIENT_FFS
47	select HAVE_ARCH_HASH
48	help
49	  The Freescale (was Motorola) 68000 CPU is the first generation of
50	  the well known M68K family of processors. The CPU core as well as
51	  being available as a stand alone CPU was also used in many
52	  System-On-Chip devices (eg 68328, 68302, etc). It does not contain
53	  a paging MMU.
54
55config MCPU32
56	bool
57	select CPU_HAS_NO_BITFIELDS
58	select CPU_HAS_NO_CAS
59	select CPU_HAS_NO_UNALIGNED
60	select CPU_NO_EFFICIENT_FFS
61	help
62	  The Freescale (was then Motorola) CPU32 is a CPU core that is
63	  based on the 68020 processor. For the most part it is used in
64	  System-On-Chip parts, and does not contain a paging MMU.
65
66config M68020
67	bool "68020 support"
68	depends on MMU
69	select FPU
70	select CPU_HAS_ADDRESS_SPACES
71	help
72	  If you anticipate running this kernel on a computer with a MC68020
73	  processor, say Y. Otherwise, say N. Note that the 68020 requires a
74	  68851 MMU (Memory Management Unit) to run Linux/m68k, except on the
75	  Sun 3, which provides its own version.
76
77config M68030
78	bool "68030 support"
79	depends on MMU && !MMU_SUN3
80	select FPU
81	select CPU_HAS_ADDRESS_SPACES
82	help
83	  If you anticipate running this kernel on a computer with a MC68030
84	  processor, say Y. Otherwise, say N. Note that a MC68EC030 will not
85	  work, as it does not include an MMU (Memory Management Unit).
86
87config M68040
88	bool "68040 support"
89	depends on MMU && !MMU_SUN3
90	select FPU
91	select CPU_HAS_ADDRESS_SPACES
92	help
93	  If you anticipate running this kernel on a computer with a MC68LC040
94	  or MC68040 processor, say Y. Otherwise, say N. Note that an
95	  MC68EC040 will not work, as it does not include an MMU (Memory
96	  Management Unit).
97
98config M68060
99	bool "68060 support"
100	depends on MMU && !MMU_SUN3
101	select FPU
102	select CPU_HAS_ADDRESS_SPACES
103	help
104	  If you anticipate running this kernel on a computer with a MC68060
105	  processor, say Y. Otherwise, say N.
106
107config M68328
108	bool "MC68328"
109	depends on !MMU
110	select M68000
111	help
112	  Motorola 68328 processor support.
113
114config M68EZ328
115	bool "MC68EZ328"
116	depends on !MMU
117	select M68000
118	help
119	  Motorola 68EX328 processor support.
120
121config M68VZ328
122	bool "MC68VZ328"
123	depends on !MMU
124	select M68000
125	help
126	  Motorola 68VZ328 processor support.
127
128endif # M68KCLASSIC
129
130if COLDFIRE
131
132choice
133	prompt "ColdFire SoC type"
134	default M520x
135	help
136	  Select the type of ColdFire System-on-Chip (SoC) that you want
137	  to build for.
138
139config M5206
140	bool "MCF5206"
141	depends on !MMU
142	select COLDFIRE_SW_A7
143	select HAVE_MBAR
144	select CPU_NO_EFFICIENT_FFS
145	help
146	  Motorola ColdFire 5206 processor support.
147
148config M5206e
149	bool "MCF5206e"
150	depends on !MMU
151	select COLDFIRE_SW_A7
152	select HAVE_MBAR
153	select CPU_NO_EFFICIENT_FFS
154	help
155	  Motorola ColdFire 5206e processor support.
156
157config M520x
158	bool "MCF520x"
159	depends on !MMU
160	select GENERIC_CLOCKEVENTS
161	select HAVE_CACHE_SPLIT
162	help
163	   Freescale Coldfire 5207/5208 processor support.
164
165config M523x
166	bool "MCF523x"
167	depends on !MMU
168	select GENERIC_CLOCKEVENTS
169	select HAVE_CACHE_SPLIT
170	select HAVE_IPSBAR
171	help
172	  Freescale Coldfire 5230/1/2/4/5 processor support
173
174config M5249
175	bool "MCF5249"
176	depends on !MMU
177	select COLDFIRE_SW_A7
178	select HAVE_MBAR
179	select CPU_NO_EFFICIENT_FFS
180	help
181	  Motorola ColdFire 5249 processor support.
182
183config M525x
184	bool "MCF525x"
185	depends on !MMU
186	select COLDFIRE_SW_A7
187	select HAVE_MBAR
188	select CPU_NO_EFFICIENT_FFS
189	help
190	  Freescale (Motorola) Coldfire 5251/5253 processor support.
191
192config M5271
193	bool "MCF5271"
194	depends on !MMU
195	select M527x
196	select HAVE_CACHE_SPLIT
197	select HAVE_IPSBAR
198	select GENERIC_CLOCKEVENTS
199	help
200	  Freescale (Motorola) ColdFire 5270/5271 processor support.
201
202config M5272
203	bool "MCF5272"
204	depends on !MMU
205	select COLDFIRE_SW_A7
206	select HAVE_MBAR
207	select CPU_NO_EFFICIENT_FFS
208	help
209	  Motorola ColdFire 5272 processor support.
210
211config M5275
212	bool "MCF5275"
213	depends on !MMU
214	select M527x
215	select HAVE_CACHE_SPLIT
216	select HAVE_IPSBAR
217	select GENERIC_CLOCKEVENTS
218	help
219	  Freescale (Motorola) ColdFire 5274/5275 processor support.
220
221config M528x
222	bool "MCF528x"
223	depends on !MMU
224	select GENERIC_CLOCKEVENTS
225	select HAVE_CACHE_SPLIT
226	select HAVE_IPSBAR
227	help
228	  Motorola ColdFire 5280/5282 processor support.
229
230config M5307
231	bool "MCF5307"
232	depends on !MMU
233	select COLDFIRE_SW_A7
234	select HAVE_CACHE_CB
235	select HAVE_MBAR
236	select CPU_NO_EFFICIENT_FFS
237	help
238	  Motorola ColdFire 5307 processor support.
239
240config M532x
241	bool "MCF532x"
242	depends on !MMU
243	select M53xx
244	select HAVE_CACHE_CB
245	help
246	  Freescale (Motorola) ColdFire 532x processor support.
247
248config M537x
249	bool "MCF537x"
250	depends on !MMU
251	select M53xx
252	select HAVE_CACHE_CB
253	help
254	  Freescale ColdFire 537x processor support.
255
256config M5407
257	bool "MCF5407"
258	depends on !MMU
259	select COLDFIRE_SW_A7
260	select HAVE_CACHE_CB
261	select HAVE_MBAR
262	select CPU_NO_EFFICIENT_FFS
263	help
264	  Motorola ColdFire 5407 processor support.
265
266config M547x
267	bool "MCF547x"
268	select M54xx
269	select MMU_COLDFIRE if MMU
270	select FPU if MMU
271	select HAVE_CACHE_CB
272	select HAVE_MBAR
273	select CPU_NO_EFFICIENT_FFS
274	help
275	  Freescale ColdFire 5470/5471/5472/5473/5474/5475 processor support.
276
277config M548x
278	bool "MCF548x"
279	select MMU_COLDFIRE if MMU
280	select FPU if MMU
281	select M54xx
282	select HAVE_CACHE_CB
283	select HAVE_MBAR
284	select CPU_NO_EFFICIENT_FFS
285	help
286	  Freescale ColdFire 5480/5481/5482/5483/5484/5485 processor support.
287
288config M5441x
289	bool "MCF5441x"
290	select MMU_COLDFIRE if MMU
291	select GENERIC_CLOCKEVENTS
292	select HAVE_CACHE_CB
293	help
294	  Freescale Coldfire 54410/54415/54416/54417/54418 processor support.
295
296endchoice
297
298config M527x
299	bool
300
301config M53xx
302	bool
303
304config M54xx
305	select HAVE_PCI
306	bool
307
308endif # COLDFIRE
309
310
311comment "Processor Specific Options"
312
313config M68KFPU_EMU
314	bool "Math emulation support"
315	depends on M68KCLASSIC && FPU
316	help
317	  At some point in the future, this will cause floating-point math
318	  instructions to be emulated by the kernel on machines that lack a
319	  floating-point math coprocessor.  Thrill-seekers and chronically
320	  sleep-deprived psychotic hacker types can say Y now, everyone else
321	  should probably wait a while.
322
323config M68KFPU_EMU_EXTRAPREC
324	bool "Math emulation extra precision"
325	depends on M68KFPU_EMU
326	help
327	  The fpu uses normally a few bit more during calculations for
328	  correct rounding, the emulator can (often) do the same but this
329	  extra calculation can cost quite some time, so you can disable
330	  it here. The emulator will then "only" calculate with a 64 bit
331	  mantissa and round slightly incorrect, what is more than enough
332	  for normal usage.
333
334config M68KFPU_EMU_ONLY
335	bool "Math emulation only kernel"
336	depends on M68KFPU_EMU
337	help
338	  This option prevents any floating-point instructions from being
339	  compiled into the kernel, thereby the kernel doesn't save any
340	  floating point context anymore during task switches, so this
341	  kernel will only be usable on machines without a floating-point
342	  math coprocessor. This makes the kernel a bit faster as no tests
343	  needs to be executed whether a floating-point instruction in the
344	  kernel should be executed or not.
345
346config ADVANCED
347	bool "Advanced configuration options"
348	depends on MMU
349	help
350	  This gives you access to some advanced options for the CPU. The
351	  defaults should be fine for most users, but these options may make
352	  it possible for you to improve performance somewhat if you know what
353	  you are doing.
354
355	  Note that the answer to this question won't directly affect the
356	  kernel: saying N will just cause the configurator to skip all
357	  the questions about these options.
358
359	  Most users should say N to this question.
360
361config RMW_INSNS
362	bool "Use read-modify-write instructions"
363	depends on ADVANCED && !CPU_HAS_NO_CAS
364	help
365	  This allows to use certain instructions that work with indivisible
366	  read-modify-write bus cycles. While this is faster than the
367	  workaround of disabling interrupts, it can conflict with DMA
368	  ( = direct memory access) on many Amiga systems, and it is also said
369	  to destabilize other machines. It is very likely that this will
370	  cause serious problems on any Amiga or Atari Medusa if set. The only
371	  configuration where it should work are 68030-based Ataris, where it
372	  apparently improves performance. But you've been warned! Unless you
373	  really know what you are doing, say N. Try Y only if you're quite
374	  adventurous.
375
376config SINGLE_MEMORY_CHUNK
377	bool "Use one physical chunk of memory only" if ADVANCED && !SUN3
378	depends on MMU
379	default y if SUN3
380	select NEED_MULTIPLE_NODES
381	help
382	  Ignore all but the first contiguous chunk of physical memory for VM
383	  purposes.  This will save a few bytes kernel size and may speed up
384	  some operations.  Say N if not sure.
385
386config ARCH_DISCONTIGMEM_ENABLE
387	def_bool MMU && !SINGLE_MEMORY_CHUNK
388
389config 060_WRITETHROUGH
390	bool "Use write-through caching for 68060 supervisor accesses"
391	depends on ADVANCED && M68060
392	help
393	  The 68060 generally uses copyback caching of recently accessed data.
394	  Copyback caching means that memory writes will be held in an on-chip
395	  cache and only written back to memory some time later.  Saying Y
396	  here will force supervisor (kernel) accesses to use writethrough
397	  caching.  Writethrough caching means that data is written to memory
398	  straight away, so that cache and memory data always agree.
399	  Writethrough caching is less efficient, but is needed for some
400	  drivers on 68060 based systems where the 68060 bus snooping signal
401	  is hardwired on.  The 53c710 SCSI driver is known to suffer from
402	  this problem.
403
404config M68K_L2_CACHE
405	bool
406	depends on MAC
407	default y
408
409config NODES_SHIFT
410	int
411	default "3"
412	depends on !SINGLE_MEMORY_CHUNK
413
414config CPU_HAS_NO_BITFIELDS
415	bool
416
417config CPU_HAS_NO_CAS
418	bool
419
420config CPU_HAS_NO_MULDIV64
421	bool
422
423config CPU_HAS_NO_UNALIGNED
424	bool
425
426config CPU_HAS_ADDRESS_SPACES
427	bool
428
429config FPU
430	bool
431
432config COLDFIRE_SW_A7
433	bool
434
435config HAVE_CACHE_SPLIT
436	bool
437
438config HAVE_CACHE_CB
439	bool
440
441config HAVE_MBAR
442	bool
443
444config HAVE_IPSBAR
445	bool
446
447config CLOCK_FREQ
448	int "Set the core clock frequency"
449	default "25000000" if M5206
450	default "54000000" if M5206e
451	default "166666666" if M520x
452	default "140000000" if M5249
453	default "150000000" if M527x || M523x
454	default "90000000" if M5307
455	default "50000000" if M5407
456	default "266000000" if M54xx
457	default "66666666"
458	depends on COLDFIRE
459	help
460	  Define the CPU clock frequency in use. This is the core clock
461	  frequency, it may or may not be the same as the external clock
462	  crystal fitted to your board. Some processors have an internal
463	  PLL and can have their frequency programmed at run time, others
464	  use internal dividers. In general the kernel won't setup a PLL
465	  if it is fitted (there are some exceptions). This value will be
466	  specific to the exact CPU that you are using.
467
468config OLDMASK
469	bool "Old mask 5307 (1H55J) silicon"
470	depends on M5307
471	help
472	  Build support for the older revision ColdFire 5307 silicon.
473	  Specifically this is the 1H55J mask revision.
474
475if HAVE_CACHE_SPLIT
476choice
477	prompt "Split Cache Configuration"
478	default CACHE_I
479
480config CACHE_I
481	bool "Instruction"
482	help
483	  Use all of the ColdFire CPU cache memory as an instruction cache.
484
485config CACHE_D
486	bool "Data"
487	help
488	  Use all of the ColdFire CPU cache memory as a data cache.
489
490config CACHE_BOTH
491	bool "Both"
492	help
493	  Split the ColdFire CPU cache, and use half as an instruction cache
494	  and half as a data cache.
495endchoice
496endif
497
498if HAVE_CACHE_CB
499choice
500	prompt "Data cache mode"
501	default CACHE_WRITETHRU
502
503config CACHE_WRITETHRU
504	bool "Write-through"
505	help
506	  The ColdFire CPU cache is set into Write-through mode.
507
508config CACHE_COPYBACK
509	bool "Copy-back"
510	help
511	  The ColdFire CPU cache is set into Copy-back mode.
512endchoice
513endif
514
515