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