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"
25 bool "Coldfire CPU family support"
26 select ARCH_HAVE_CUSTOM_GPIO_H
27 select CPU_HAS_NO_BITFIELDS
29 select CPU_HAS_NO_MULDIV64
32 select HAVE_LEGACY_CLK
41 select CPU_HAS_NO_BITFIELDS
43 select CPU_HAS_NO_MULDIV64
44 select CPU_HAS_NO_UNALIGNED
46 select CPU_NO_EFFICIENT_FFS
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
57 select CPU_HAS_NO_BITFIELDS
59 select CPU_HAS_NO_UNALIGNED
60 select CPU_NO_EFFICIENT_FFS
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.
70 select CPU_HAS_ADDRESS_SPACES
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.
79 depends on MMU && !MMU_SUN3
81 select CPU_HAS_ADDRESS_SPACES
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).
89 depends on MMU && !MMU_SUN3
91 select CPU_HAS_ADDRESS_SPACES
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
100 depends on MMU && !MMU_SUN3
102 select CPU_HAS_ADDRESS_SPACES
104 If you anticipate running this kernel on a computer with a MC68060
105 processor, say Y. Otherwise, say N.
112 Motorola 68328 processor support.
119 Motorola 68EX328 processor support.
126 Motorola 68VZ328 processor support.
133 prompt "ColdFire SoC type"
136 Select the type of ColdFire System-on-Chip (SoC) that you want
142 select COLDFIRE_SW_A7
144 select CPU_NO_EFFICIENT_FFS
146 Motorola ColdFire 5206 processor support.
151 select COLDFIRE_SW_A7
153 select CPU_NO_EFFICIENT_FFS
155 Motorola ColdFire 5206e processor support.
160 select GENERIC_CLOCKEVENTS
161 select HAVE_CACHE_SPLIT
163 Freescale Coldfire 5207/5208 processor support.
168 select GENERIC_CLOCKEVENTS
169 select HAVE_CACHE_SPLIT
172 Freescale Coldfire 5230/1/2/4/5 processor support
177 select COLDFIRE_SW_A7
179 select CPU_NO_EFFICIENT_FFS
181 Motorola ColdFire 5249 processor support.
186 select COLDFIRE_SW_A7
188 select CPU_NO_EFFICIENT_FFS
190 Freescale (Motorola) Coldfire 5251/5253 processor support.
196 select HAVE_CACHE_SPLIT
198 select GENERIC_CLOCKEVENTS
200 Freescale (Motorola) ColdFire 5270/5271 processor support.
205 select COLDFIRE_SW_A7
207 select CPU_NO_EFFICIENT_FFS
209 Motorola ColdFire 5272 processor support.
215 select HAVE_CACHE_SPLIT
217 select GENERIC_CLOCKEVENTS
219 Freescale (Motorola) ColdFire 5274/5275 processor support.
224 select GENERIC_CLOCKEVENTS
225 select HAVE_CACHE_SPLIT
228 Motorola ColdFire 5280/5282 processor support.
233 select COLDFIRE_SW_A7
236 select CPU_NO_EFFICIENT_FFS
238 Motorola ColdFire 5307 processor support.
246 Freescale (Motorola) ColdFire 532x processor support.
254 Freescale ColdFire 537x processor support.
259 select COLDFIRE_SW_A7
262 select CPU_NO_EFFICIENT_FFS
264 Motorola ColdFire 5407 processor support.
269 select MMU_COLDFIRE if MMU
273 select CPU_NO_EFFICIENT_FFS
275 Freescale ColdFire 5470/5471/5472/5473/5474/5475 processor support.
279 select MMU_COLDFIRE if MMU
284 select CPU_NO_EFFICIENT_FFS
286 Freescale ColdFire 5480/5481/5482/5483/5484/5485 processor support.
290 select MMU_COLDFIRE if MMU
291 select GENERIC_CLOCKEVENTS
294 Freescale Coldfire 54410/54415/54416/54417/54418 processor support.
311 comment "Processor Specific Options"
314 bool "Math emulation support"
315 depends on M68KCLASSIC && FPU
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.
323 config M68KFPU_EMU_EXTRAPREC
324 bool "Math emulation extra precision"
325 depends on M68KFPU_EMU
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
334 config M68KFPU_EMU_ONLY
335 bool "Math emulation only kernel"
336 depends on M68KFPU_EMU
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.
347 bool "Advanced configuration options"
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
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.
359 Most users should say N to this question.
362 bool "Use read-modify-write instructions"
363 depends on ADVANCED && !CPU_HAS_NO_CAS
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
376 config SINGLE_MEMORY_CHUNK
377 bool "Use one physical chunk of memory only" if ADVANCED && !SUN3
380 select NEED_MULTIPLE_NODES
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.
386 config ARCH_DISCONTIGMEM_ENABLE
387 def_bool MMU && !SINGLE_MEMORY_CHUNK
389 config 060_WRITETHROUGH
390 bool "Use write-through caching for 68060 supervisor accesses"
391 depends on ADVANCED && M68060
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
412 depends on !SINGLE_MEMORY_CHUNK
414 config CPU_HAS_NO_BITFIELDS
417 config CPU_HAS_NO_CAS
420 config CPU_HAS_NO_MULDIV64
423 config CPU_HAS_NO_UNALIGNED
426 config CPU_HAS_ADDRESS_SPACES
432 config COLDFIRE_SW_A7
435 config HAVE_CACHE_SPLIT
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
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.
469 bool "Old mask 5307 (1H55J) silicon"
472 Build support for the older revision ColdFire 5307 silicon.
473 Specifically this is the 1H55J mask revision.
477 prompt "Split Cache Configuration"
483 Use all of the ColdFire CPU cache memory as an instruction cache.
488 Use all of the ColdFire CPU cache memory as a data cache.
493 Split the ColdFire CPU cache, and use half as an instruction cache
494 and half as a data cache.
500 prompt "Data cache mode"
501 default CACHE_WRITETHRU
503 config CACHE_WRITETHRU
506 The ColdFire CPU cache is set into Write-through mode.
508 config CACHE_COPYBACK
511 The ColdFire CPU cache is set into Copy-back mode.