1 # SPDX-License-Identifier: GPL-2.0
2 comment "Processor Type"
5 prompt "CPU family support"
6 default M68KCLASSIC if MMU
7 default COLDFIRE if !MMU
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.
22 bool "Classic M68K CPU family support"
23 select HAVE_ARCH_PFN_VALID
26 bool "Coldfire CPU family support"
27 select ARCH_HAVE_CUSTOM_GPIO_H
28 select CPU_HAS_NO_BITFIELDS
30 select CPU_HAS_NO_MULDIV64
33 select HAVE_LEGACY_CLK
42 select CPU_HAS_NO_BITFIELDS
44 select CPU_HAS_NO_MULDIV64
45 select CPU_HAS_NO_UNALIGNED
47 select CPU_NO_EFFICIENT_FFS
49 select LEGACY_TIMER_TICK
51 The Freescale (was Motorola) 68000 CPU is the first generation of
52 the well known M68K family of processors. The CPU core as well as
53 being available as a stand alone CPU was also used in many
54 System-On-Chip devices (eg 68328, 68302, etc). It does not contain
61 select CPU_HAS_ADDRESS_SPACES
63 If you anticipate running this kernel on a computer with a MC68020
64 processor, say Y. Otherwise, say N. Note that the 68020 requires a
65 68851 MMU (Memory Management Unit) to run Linux/m68k, except on the
66 Sun 3, which provides its own version.
70 depends on MMU && !MMU_SUN3
72 select CPU_HAS_ADDRESS_SPACES
74 If you anticipate running this kernel on a computer with a MC68030
75 processor, say Y. Otherwise, say N. Note that a MC68EC030 will not
76 work, as it does not include an MMU (Memory Management Unit).
80 depends on MMU && !MMU_SUN3
82 select CPU_HAS_ADDRESS_SPACES
84 If you anticipate running this kernel on a computer with a MC68LC040
85 or MC68040 processor, say Y. Otherwise, say N. Note that an
86 MC68EC040 will not work, as it does not include an MMU (Memory
91 depends on MMU && !MMU_SUN3
93 select CPU_HAS_ADDRESS_SPACES
95 If you anticipate running this kernel on a computer with a MC68060
96 processor, say Y. Otherwise, say N.
103 Motorola 68328 processor support.
110 Motorola 68EX328 processor support.
117 Motorola 68VZ328 processor support.
124 prompt "ColdFire SoC type"
127 Select the type of ColdFire System-on-Chip (SoC) that you want
133 select COLDFIRE_SW_A7
134 select COLDFIRE_TIMERS
136 select CPU_NO_EFFICIENT_FFS
138 Motorola ColdFire 5206 processor support.
143 select COLDFIRE_SW_A7
144 select COLDFIRE_TIMERS
146 select CPU_NO_EFFICIENT_FFS
148 Motorola ColdFire 5206e processor support.
153 select COLDFIRE_PIT_TIMER
154 select HAVE_CACHE_SPLIT
156 Freescale Coldfire 5207/5208 processor support.
161 select COLDFIRE_PIT_TIMER
162 select HAVE_CACHE_SPLIT
165 Freescale Coldfire 5230/1/2/4/5 processor support
170 select COLDFIRE_SW_A7
171 select COLDFIRE_TIMERS
173 select CPU_NO_EFFICIENT_FFS
175 Motorola ColdFire 5249 processor support.
180 select COLDFIRE_SW_A7
181 select COLDFIRE_TIMERS
183 select CPU_NO_EFFICIENT_FFS
185 Freescale (Motorola) Coldfire 5251/5253 processor support.
190 select COLDFIRE_PIT_TIMER
192 select HAVE_CACHE_SPLIT
195 Freescale (Motorola) ColdFire 5270/5271 processor support.
200 select COLDFIRE_SW_A7
201 select COLDFIRE_TIMERS
203 select CPU_NO_EFFICIENT_FFS
205 Motorola ColdFire 5272 processor support.
210 select COLDFIRE_PIT_TIMER
212 select HAVE_CACHE_SPLIT
215 Freescale (Motorola) ColdFire 5274/5275 processor support.
220 select COLDFIRE_PIT_TIMER
221 select HAVE_CACHE_SPLIT
224 Motorola ColdFire 5280/5282 processor support.
229 select COLDFIRE_TIMERS
230 select COLDFIRE_SW_A7
233 select CPU_NO_EFFICIENT_FFS
235 Motorola ColdFire 5307 processor support.
240 select COLDFIRE_TIMERS
244 Freescale (Motorola) ColdFire 532x processor support.
249 select COLDFIRE_TIMERS
253 Freescale ColdFire 537x processor support.
258 select COLDFIRE_SW_A7
259 select COLDFIRE_TIMERS
262 select CPU_NO_EFFICIENT_FFS
264 Motorola ColdFire 5407 processor support.
269 select COLDFIRE_SLTIMERS
270 select MMU_COLDFIRE if MMU
274 select CPU_NO_EFFICIENT_FFS
276 Freescale ColdFire 5470/5471/5472/5473/5474/5475 processor support.
280 select COLDFIRE_SLTIMERS
281 select MMU_COLDFIRE if MMU
286 select CPU_NO_EFFICIENT_FFS
288 Freescale ColdFire 5480/5481/5482/5483/5484/5485 processor support.
292 select COLDFIRE_PIT_TIMER
293 select MMU_COLDFIRE if MMU
296 Freescale Coldfire 54410/54415/54416/54417/54418 processor support.
310 config COLDFIRE_PIT_TIMER
313 config COLDFIRE_TIMERS
315 select LEGACY_TIMER_TICK
317 config COLDFIRE_SLTIMERS
319 select LEGACY_TIMER_TICK
323 comment "Processor Specific Options"
326 bool "Math emulation support"
327 depends on M68KCLASSIC && FPU
329 At some point in the future, this will cause floating-point math
330 instructions to be emulated by the kernel on machines that lack a
331 floating-point math coprocessor. Thrill-seekers and chronically
332 sleep-deprived psychotic hacker types can say Y now, everyone else
333 should probably wait a while.
335 config M68KFPU_EMU_EXTRAPREC
336 bool "Math emulation extra precision"
337 depends on M68KFPU_EMU
339 The fpu uses normally a few bit more during calculations for
340 correct rounding, the emulator can (often) do the same but this
341 extra calculation can cost quite some time, so you can disable
342 it here. The emulator will then "only" calculate with a 64 bit
343 mantissa and round slightly incorrect, what is more than enough
346 config M68KFPU_EMU_ONLY
347 bool "Math emulation only kernel"
348 depends on M68KFPU_EMU
350 This option prevents any floating-point instructions from being
351 compiled into the kernel, thereby the kernel doesn't save any
352 floating point context anymore during task switches, so this
353 kernel will only be usable on machines without a floating-point
354 math coprocessor. This makes the kernel a bit faster as no tests
355 needs to be executed whether a floating-point instruction in the
356 kernel should be executed or not.
359 bool "Advanced configuration options"
362 This gives you access to some advanced options for the CPU. The
363 defaults should be fine for most users, but these options may make
364 it possible for you to improve performance somewhat if you know what
367 Note that the answer to this question won't directly affect the
368 kernel: saying N will just cause the configurator to skip all
369 the questions about these options.
371 Most users should say N to this question.
374 bool "Use read-modify-write instructions"
375 depends on ADVANCED && !CPU_HAS_NO_CAS
377 This allows to use certain instructions that work with indivisible
378 read-modify-write bus cycles. While this is faster than the
379 workaround of disabling interrupts, it can conflict with DMA
380 ( = direct memory access) on many Amiga systems, and it is also said
381 to destabilize other machines. It is very likely that this will
382 cause serious problems on any Amiga or Atari Medusa if set. The only
383 configuration where it should work are 68030-based Ataris, where it
384 apparently improves performance. But you've been warned! Unless you
385 really know what you are doing, say N. Try Y only if you're quite
388 config SINGLE_MEMORY_CHUNK
389 bool "Use one physical chunk of memory only" if ADVANCED && !SUN3
391 default y if SUN3 || MMU_COLDFIRE
393 Ignore all but the first contiguous chunk of physical memory for VM
394 purposes. This will save a few bytes kernel size and may speed up
396 When this option os set to N, you may want to lower "Maximum zone
397 order" to save memory that could be wasted for unused memory map.
400 config ARCH_FORCE_MAX_ORDER
401 int "Maximum zone order" if ADVANCED
402 depends on !SINGLE_MEMORY_CHUNK
405 The kernel memory allocator divides physically contiguous memory
406 blocks into "zones", where each zone is a power of two number of
407 pages. This option selects the largest power of two that the kernel
408 keeps in the memory allocator. If you need to allocate very large
409 blocks of physically contiguous memory, then you may need to
412 For systems that have holes in their physical address space this
413 value also defines the minimal size of the hole that allows
414 freeing unused memory map.
416 This config option is actually maximum order plus one. For example,
417 a value of 11 means that the largest free memory block is 2^10 pages.
419 config 060_WRITETHROUGH
420 bool "Use write-through caching for 68060 supervisor accesses"
421 depends on ADVANCED && M68060
423 The 68060 generally uses copyback caching of recently accessed data.
424 Copyback caching means that memory writes will be held in an on-chip
425 cache and only written back to memory some time later. Saying Y
426 here will force supervisor (kernel) accesses to use writethrough
427 caching. Writethrough caching means that data is written to memory
428 straight away, so that cache and memory data always agree.
429 Writethrough caching is less efficient, but is needed for some
430 drivers on 68060 based systems where the 68060 bus snooping signal
431 is hardwired on. The 53c710 SCSI driver is known to suffer from
439 config CPU_HAS_NO_BITFIELDS
442 config CPU_HAS_NO_CAS
445 config CPU_HAS_NO_MULDIV64
448 config CPU_HAS_NO_UNALIGNED
451 config CPU_HAS_ADDRESS_SPACES
453 select ALTERNATE_USER_ADDRESS_SPACE
458 config COLDFIRE_SW_A7
461 config HAVE_CACHE_SPLIT
474 int "Set the core clock frequency"
475 default "25000000" if M5206
476 default "54000000" if M5206e
477 default "166666666" if M520x
478 default "140000000" if M5249
479 default "150000000" if M527x || M523x
480 default "90000000" if M5307
481 default "50000000" if M5407
482 default "266000000" if M54xx
486 Define the CPU clock frequency in use. This is the core clock
487 frequency, it may or may not be the same as the external clock
488 crystal fitted to your board. Some processors have an internal
489 PLL and can have their frequency programmed at run time, others
490 use internal dividers. In general the kernel won't setup a PLL
491 if it is fitted (there are some exceptions). This value will be
492 specific to the exact CPU that you are using.
495 bool "Old mask 5307 (1H55J) silicon"
498 Build support for the older revision ColdFire 5307 silicon.
499 Specifically this is the 1H55J mask revision.
503 prompt "Split Cache Configuration"
509 Use all of the ColdFire CPU cache memory as an instruction cache.
514 Use all of the ColdFire CPU cache memory as a data cache.
519 Split the ColdFire CPU cache, and use half as an instruction cache
520 and half as a data cache.
522 endif # HAVE_CACHE_SPLIT
526 prompt "Data cache mode"
527 default CACHE_WRITETHRU
529 config CACHE_WRITETHRU
532 The ColdFire CPU cache is set into Write-through mode.
534 config CACHE_COPYBACK
537 The ColdFire CPU cache is set into Copy-back mode.
539 endif # HAVE_CACHE_CB