xref: /linux/arch/m68k/Kconfig.cpu (revision 5394f1e9)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
20e152d80SGreg Ungerercomment "Processor Type"
30e152d80SGreg Ungerer
4ad8f955dSGeert Uytterhoevenchoice
5ad8f955dSGeert Uytterhoeven	prompt "CPU family support"
6ad8f955dSGeert Uytterhoeven	default M68KCLASSIC if MMU
7ad8f955dSGeert Uytterhoeven	default COLDFIRE if !MMU
8ad8f955dSGeert Uytterhoeven	help
9ad8f955dSGeert Uytterhoeven	  The Freescale (was Motorola) M68K family of processors implements
10ad8f955dSGeert Uytterhoeven	  the full 68000 processor instruction set.
116b2aac42SMasanari Iida	  The Freescale ColdFire family of processors is a modern derivative
12ad8f955dSGeert Uytterhoeven	  of the 68000 processor family. They are mainly targeted at embedded
13ad8f955dSGeert Uytterhoeven	  applications, and are all System-On-Chip (SOC) devices, as opposed
14ad8f955dSGeert Uytterhoeven	  to stand alone CPUs. They implement a subset of the original 68000
15ad8f955dSGeert Uytterhoeven	  processor instruction set.
16ad8f955dSGeert Uytterhoeven	  If you anticipate running this kernel on a computer with a classic
17ad8f955dSGeert Uytterhoeven	  MC68xxx processor, select M68KCLASSIC.
18ad8f955dSGeert Uytterhoeven	  If you anticipate running this kernel on a computer with a ColdFire
19ad8f955dSGeert Uytterhoeven	  processor, select COLDFIRE.
20ad8f955dSGeert Uytterhoeven
21ad8f955dSGeert Uytterhoevenconfig M68KCLASSIC
22ad8f955dSGeert Uytterhoeven	bool "Classic M68K CPU family support"
23fcd353a3SMike Rapoport	select HAVE_ARCH_PFN_VALID
24ad8f955dSGeert Uytterhoeven
25ad8f955dSGeert Uytterhoevenconfig COLDFIRE
26ad8f955dSGeert Uytterhoeven	bool "Coldfire CPU family support"
27ad8f955dSGeert Uytterhoeven	select CPU_HAS_NO_BITFIELDS
282189e928SGeert Uytterhoeven	select CPU_HAS_NO_CAS
29ad8f955dSGeert Uytterhoeven	select CPU_HAS_NO_MULDIV64
30ad8f955dSGeert Uytterhoeven	select GENERIC_CSUM
31e05f2e18SLinus Walleij	select GPIOLIB
32bbd7ffdbSStephen Boyd	select HAVE_LEGACY_CLK
33*5394f1e9SArnd Bergmann	select HAVE_PAGE_SIZE_8KB if !MMU
34ad8f955dSGeert Uytterhoeven
35ad8f955dSGeert Uytterhoevenendchoice
36ad8f955dSGeert Uytterhoeven
37ad8f955dSGeert Uytterhoevenif M68KCLASSIC
38ad8f955dSGeert Uytterhoeven
390e152d80SGreg Ungererconfig M68000
406b8be804SGreg Ungerer	def_bool y
419da1a84aSLuis Alves	depends on !MMU
420e152d80SGreg Ungerer	select CPU_HAS_NO_BITFIELDS
432189e928SGeert Uytterhoeven	select CPU_HAS_NO_CAS
4484f3fb7aSGreg Ungerer	select CPU_HAS_NO_MULDIV64
459f1f1180SGeert Uytterhoeven	select CPU_HAS_NO_UNALIGNED
467f73bafcSGreg Ungerer	select GENERIC_CSUM
47fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
4814c44b95SGeorge Spelvin	select HAVE_ARCH_HASH
49*5394f1e9SArnd Bergmann	select HAVE_PAGE_SIZE_4KB
5018011e50SGreg Ungerer	select LEGACY_TIMER_TICK
510e152d80SGreg Ungerer	help
520e152d80SGreg Ungerer	  The Freescale (was Motorola) 68000 CPU is the first generation of
530e152d80SGreg Ungerer	  the well known M68K family of processors. The CPU core as well as
540e152d80SGreg Ungerer	  being available as a stand alone CPU was also used in many
550e152d80SGreg Ungerer	  System-On-Chip devices (eg 68328, 68302, etc). It does not contain
560e152d80SGreg Ungerer	  a paging MMU.
570e152d80SGreg Ungerer
580e152d80SGreg Ungererconfig M68020
590e152d80SGreg Ungerer	bool "68020 support"
600e152d80SGreg Ungerer	depends on MMU
61e5f8d1f0SGreg Ungerer	select FPU
62e08d703cSGreg Ungerer	select CPU_HAS_ADDRESS_SPACES
630e152d80SGreg Ungerer	help
640e152d80SGreg Ungerer	  If you anticipate running this kernel on a computer with a MC68020
650e152d80SGreg Ungerer	  processor, say Y. Otherwise, say N. Note that the 68020 requires a
660e152d80SGreg Ungerer	  68851 MMU (Memory Management Unit) to run Linux/m68k, except on the
670e152d80SGreg Ungerer	  Sun 3, which provides its own version.
680e152d80SGreg Ungerer
690e152d80SGreg Ungererconfig M68030
700e152d80SGreg Ungerer	bool "68030 support"
710e152d80SGreg Ungerer	depends on MMU && !MMU_SUN3
72e5f8d1f0SGreg Ungerer	select FPU
73e08d703cSGreg Ungerer	select CPU_HAS_ADDRESS_SPACES
740e152d80SGreg Ungerer	help
750e152d80SGreg Ungerer	  If you anticipate running this kernel on a computer with a MC68030
760e152d80SGreg Ungerer	  processor, say Y. Otherwise, say N. Note that a MC68EC030 will not
770e152d80SGreg Ungerer	  work, as it does not include an MMU (Memory Management Unit).
780e152d80SGreg Ungerer
790e152d80SGreg Ungererconfig M68040
800e152d80SGreg Ungerer	bool "68040 support"
810e152d80SGreg Ungerer	depends on MMU && !MMU_SUN3
82e5f8d1f0SGreg Ungerer	select FPU
83e08d703cSGreg Ungerer	select CPU_HAS_ADDRESS_SPACES
840e152d80SGreg Ungerer	help
850e152d80SGreg Ungerer	  If you anticipate running this kernel on a computer with a MC68LC040
860e152d80SGreg Ungerer	  or MC68040 processor, say Y. Otherwise, say N. Note that an
870e152d80SGreg Ungerer	  MC68EC040 will not work, as it does not include an MMU (Memory
880e152d80SGreg Ungerer	  Management Unit).
890e152d80SGreg Ungerer
900e152d80SGreg Ungererconfig M68060
910e152d80SGreg Ungerer	bool "68060 support"
920e152d80SGreg Ungerer	depends on MMU && !MMU_SUN3
93e5f8d1f0SGreg Ungerer	select FPU
94e08d703cSGreg Ungerer	select CPU_HAS_ADDRESS_SPACES
950e152d80SGreg Ungerer	help
960e152d80SGreg Ungerer	  If you anticipate running this kernel on a computer with a MC68060
970e152d80SGreg Ungerer	  processor, say Y. Otherwise, say N.
980e152d80SGreg Ungerer
990e152d80SGreg Ungererconfig M68328
1008b22820eSArnd Bergmann	bool
1010e152d80SGreg Ungerer	depends on !MMU
1020e152d80SGreg Ungerer	select M68000
1030e152d80SGreg Ungerer	help
1040e152d80SGreg Ungerer	  Motorola 68328 processor support.
1050e152d80SGreg Ungerer
1060e152d80SGreg Ungererconfig M68EZ328
1078b22820eSArnd Bergmann	bool
1080e152d80SGreg Ungerer	depends on !MMU
1090e152d80SGreg Ungerer	select M68000
1100e152d80SGreg Ungerer	help
1110e152d80SGreg Ungerer	  Motorola 68EX328 processor support.
1120e152d80SGreg Ungerer
1130e152d80SGreg Ungererconfig M68VZ328
1148b22820eSArnd Bergmann	bool
1150e152d80SGreg Ungerer	depends on !MMU
1160e152d80SGreg Ungerer	select M68000
1170e152d80SGreg Ungerer	help
1180e152d80SGreg Ungerer	  Motorola 68VZ328 processor support.
1190e152d80SGreg Ungerer
120ad8f955dSGeert Uytterhoevenendif # M68KCLASSIC
121ad8f955dSGeert Uytterhoeven
122ad8f955dSGeert Uytterhoevenif COLDFIRE
123ad8f955dSGeert Uytterhoeven
124fa95a1ddSGreg Ungererchoice
125fa95a1ddSGreg Ungerer	prompt "ColdFire SoC type"
126fa95a1ddSGreg Ungerer	default M520x
127fa95a1ddSGreg Ungerer	help
128fa95a1ddSGreg Ungerer	  Select the type of ColdFire System-on-Chip (SoC) that you want
129fa95a1ddSGreg Ungerer	  to build for.
130fa95a1ddSGreg Ungerer
1310e152d80SGreg Ungererconfig M5206
1320e152d80SGreg Ungerer	bool "MCF5206"
1330e152d80SGreg Ungerer	depends on !MMU
1340e152d80SGreg Ungerer	select COLDFIRE_SW_A7
135275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
1360e152d80SGreg Ungerer	select HAVE_MBAR
137fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
1380e152d80SGreg Ungerer	help
1390e152d80SGreg Ungerer	  Motorola ColdFire 5206 processor support.
1400e152d80SGreg Ungerer
1410e152d80SGreg Ungererconfig M5206e
1420e152d80SGreg Ungerer	bool "MCF5206e"
1430e152d80SGreg Ungerer	depends on !MMU
1440e152d80SGreg Ungerer	select COLDFIRE_SW_A7
145275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
1460e152d80SGreg Ungerer	select HAVE_MBAR
147fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
1480e152d80SGreg Ungerer	help
1490e152d80SGreg Ungerer	  Motorola ColdFire 5206e processor support.
1500e152d80SGreg Ungerer
1510e152d80SGreg Ungererconfig M520x
1520e152d80SGreg Ungerer	bool "MCF520x"
1530e152d80SGreg Ungerer	depends on !MMU
154275e70e4SArnd Bergmann	select COLDFIRE_PIT_TIMER
1550e152d80SGreg Ungerer	select HAVE_CACHE_SPLIT
1560e152d80SGreg Ungerer	help
1570e152d80SGreg Ungerer	  Freescale Coldfire 5207/5208 processor support.
1580e152d80SGreg Ungerer
1590e152d80SGreg Ungererconfig M523x
1600e152d80SGreg Ungerer	bool "MCF523x"
1610e152d80SGreg Ungerer	depends on !MMU
162275e70e4SArnd Bergmann	select COLDFIRE_PIT_TIMER
1630e152d80SGreg Ungerer	select HAVE_CACHE_SPLIT
1640e152d80SGreg Ungerer	select HAVE_IPSBAR
1650e152d80SGreg Ungerer	help
1660e152d80SGreg Ungerer	  Freescale Coldfire 5230/1/2/4/5 processor support
1670e152d80SGreg Ungerer
1680e152d80SGreg Ungererconfig M5249
1690e152d80SGreg Ungerer	bool "MCF5249"
1700e152d80SGreg Ungerer	depends on !MMU
1710e152d80SGreg Ungerer	select COLDFIRE_SW_A7
172275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
1730e152d80SGreg Ungerer	select HAVE_MBAR
174fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
1750e152d80SGreg Ungerer	help
1760e152d80SGreg Ungerer	  Motorola ColdFire 5249 processor support.
1770e152d80SGreg Ungerer
17804e037aaSSteven Kingconfig M525x
17904e037aaSSteven King	bool "MCF525x"
18004e037aaSSteven King	depends on !MMU
18104e037aaSSteven King	select COLDFIRE_SW_A7
182275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
18304e037aaSSteven King	select HAVE_MBAR
184fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
18504e037aaSSteven King	help
18604e037aaSSteven King	  Freescale (Motorola) Coldfire 5251/5253 processor support.
18704e037aaSSteven King
1880e152d80SGreg Ungererconfig M5271
1890e152d80SGreg Ungerer	bool "MCF5271"
1900e152d80SGreg Ungerer	depends on !MMU
191275e70e4SArnd Bergmann	select COLDFIRE_PIT_TIMER
1920e152d80SGreg Ungerer	select M527x
1930e152d80SGreg Ungerer	select HAVE_CACHE_SPLIT
1940e152d80SGreg Ungerer	select HAVE_IPSBAR
1950e152d80SGreg Ungerer	help
1960e152d80SGreg Ungerer	  Freescale (Motorola) ColdFire 5270/5271 processor support.
1970e152d80SGreg Ungerer
1980e152d80SGreg Ungererconfig M5272
1990e152d80SGreg Ungerer	bool "MCF5272"
2000e152d80SGreg Ungerer	depends on !MMU
2010e152d80SGreg Ungerer	select COLDFIRE_SW_A7
202275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
2030e152d80SGreg Ungerer	select HAVE_MBAR
204fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
2050e152d80SGreg Ungerer	help
2060e152d80SGreg Ungerer	  Motorola ColdFire 5272 processor support.
2070e152d80SGreg Ungerer
2080e152d80SGreg Ungererconfig M5275
2090e152d80SGreg Ungerer	bool "MCF5275"
2100e152d80SGreg Ungerer	depends on !MMU
211275e70e4SArnd Bergmann	select COLDFIRE_PIT_TIMER
2120e152d80SGreg Ungerer	select M527x
2130e152d80SGreg Ungerer	select HAVE_CACHE_SPLIT
2140e152d80SGreg Ungerer	select HAVE_IPSBAR
2150e152d80SGreg Ungerer	help
2160e152d80SGreg Ungerer	  Freescale (Motorola) ColdFire 5274/5275 processor support.
2170e152d80SGreg Ungerer
2180e152d80SGreg Ungererconfig M528x
2190e152d80SGreg Ungerer	bool "MCF528x"
2200e152d80SGreg Ungerer	depends on !MMU
221275e70e4SArnd Bergmann	select COLDFIRE_PIT_TIMER
2220e152d80SGreg Ungerer	select HAVE_CACHE_SPLIT
2230e152d80SGreg Ungerer	select HAVE_IPSBAR
2240e152d80SGreg Ungerer	help
2250e152d80SGreg Ungerer	  Motorola ColdFire 5280/5282 processor support.
2260e152d80SGreg Ungerer
2270e152d80SGreg Ungererconfig M5307
2280e152d80SGreg Ungerer	bool "MCF5307"
2290e152d80SGreg Ungerer	depends on !MMU
230275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
2310e152d80SGreg Ungerer	select COLDFIRE_SW_A7
2320e152d80SGreg Ungerer	select HAVE_CACHE_CB
2330e152d80SGreg Ungerer	select HAVE_MBAR
234fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
2350e152d80SGreg Ungerer	help
2360e152d80SGreg Ungerer	  Motorola ColdFire 5307 processor support.
2370e152d80SGreg Ungerer
2380e152d80SGreg Ungererconfig M532x
2390e152d80SGreg Ungerer	bool "MCF532x"
2400e152d80SGreg Ungerer	depends on !MMU
241275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
2426eac4027SGreg Ungerer	select M53xx
2430e152d80SGreg Ungerer	select HAVE_CACHE_CB
2440e152d80SGreg Ungerer	help
2450e152d80SGreg Ungerer	  Freescale (Motorola) ColdFire 532x processor support.
2460e152d80SGreg Ungerer
247e9d9dc6aSGreg Ungererconfig M537x
248e9d9dc6aSGreg Ungerer	bool "MCF537x"
249e9d9dc6aSGreg Ungerer	depends on !MMU
250275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
251e9d9dc6aSGreg Ungerer	select M53xx
252e9d9dc6aSGreg Ungerer	select HAVE_CACHE_CB
253e9d9dc6aSGreg Ungerer	help
254e9d9dc6aSGreg Ungerer	  Freescale ColdFire 537x processor support.
255e9d9dc6aSGreg Ungerer
2560e152d80SGreg Ungererconfig M5407
2570e152d80SGreg Ungerer	bool "MCF5407"
2580e152d80SGreg Ungerer	depends on !MMU
2590e152d80SGreg Ungerer	select COLDFIRE_SW_A7
260275e70e4SArnd Bergmann	select COLDFIRE_TIMERS
2610e152d80SGreg Ungerer	select HAVE_CACHE_CB
2620e152d80SGreg Ungerer	select HAVE_MBAR
263fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
2640e152d80SGreg Ungerer	help
2650e152d80SGreg Ungerer	  Motorola ColdFire 5407 processor support.
2660e152d80SGreg Ungerer
2670e152d80SGreg Ungererconfig M547x
2680e152d80SGreg Ungerer	bool "MCF547x"
2690e152d80SGreg Ungerer	select M54xx
270275e70e4SArnd Bergmann	select COLDFIRE_SLTIMERS
2711f7034b9SGreg Ungerer	select MMU_COLDFIRE if MMU
272e5f8d1f0SGreg Ungerer	select FPU if MMU
2730e152d80SGreg Ungerer	select HAVE_CACHE_CB
2740e152d80SGreg Ungerer	select HAVE_MBAR
275fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
2760e152d80SGreg Ungerer	help
2770e152d80SGreg Ungerer	  Freescale ColdFire 5470/5471/5472/5473/5474/5475 processor support.
2780e152d80SGreg Ungerer
2790e152d80SGreg Ungererconfig M548x
2800e152d80SGreg Ungerer	bool "MCF548x"
281275e70e4SArnd Bergmann	select COLDFIRE_SLTIMERS
2821f7034b9SGreg Ungerer	select MMU_COLDFIRE if MMU
283e5f8d1f0SGreg Ungerer	select FPU if MMU
2840e152d80SGreg Ungerer	select M54xx
2850e152d80SGreg Ungerer	select HAVE_CACHE_CB
2860e152d80SGreg Ungerer	select HAVE_MBAR
287fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS
2880e152d80SGreg Ungerer	help
2890e152d80SGreg Ungerer	  Freescale ColdFire 5480/5481/5482/5483/5484/5485 processor support.
2900e152d80SGreg Ungerer
291bea8bcb1SSteven Kingconfig M5441x
292bea8bcb1SSteven King	bool "MCF5441x"
293275e70e4SArnd Bergmann	select COLDFIRE_PIT_TIMER
294b47c7b6fSGreg Ungerer	select MMU_COLDFIRE if MMU
295bea8bcb1SSteven King	select HAVE_CACHE_CB
296bea8bcb1SSteven King	help
297bea8bcb1SSteven King	  Freescale Coldfire 54410/54415/54416/54417/54418 processor support.
298bea8bcb1SSteven King
299fa95a1ddSGreg Ungererendchoice
300fa95a1ddSGreg Ungerer
301fa95a1ddSGreg Ungererconfig M527x
302fa95a1ddSGreg Ungerer	bool
303fa95a1ddSGreg Ungerer
304fa95a1ddSGreg Ungererconfig M53xx
305fa95a1ddSGreg Ungerer	bool
306fa95a1ddSGreg Ungerer
307fa95a1ddSGreg Ungererconfig M54xx
308eb01d42aSChristoph Hellwig	select HAVE_PCI
309fa95a1ddSGreg Ungerer	bool
310fa95a1ddSGreg Ungerer
311275e70e4SArnd Bergmannconfig COLDFIRE_PIT_TIMER
312275e70e4SArnd Bergmann	bool
313275e70e4SArnd Bergmann
314275e70e4SArnd Bergmannconfig COLDFIRE_TIMERS
315275e70e4SArnd Bergmann	bool
316275e70e4SArnd Bergmann	select LEGACY_TIMER_TICK
317275e70e4SArnd Bergmann
318275e70e4SArnd Bergmannconfig COLDFIRE_SLTIMERS
319275e70e4SArnd Bergmann	bool
320275e70e4SArnd Bergmann	select LEGACY_TIMER_TICK
321275e70e4SArnd Bergmann
322ad8f955dSGeert Uytterhoevenendif # COLDFIRE
323ad8f955dSGeert Uytterhoeven
3240e152d80SGreg Ungerercomment "Processor Specific Options"
3250e152d80SGreg Ungerer
3260e152d80SGreg Ungererconfig M68KFPU_EMU
327112f8b12SKees Cook	bool "Math emulation support"
328ed6bc6bfSGeert Uytterhoeven	depends on M68KCLASSIC && FPU
3290e152d80SGreg Ungerer	help
3300e152d80SGreg Ungerer	  At some point in the future, this will cause floating-point math
3310e152d80SGreg Ungerer	  instructions to be emulated by the kernel on machines that lack a
3320e152d80SGreg Ungerer	  floating-point math coprocessor.  Thrill-seekers and chronically
3330e152d80SGreg Ungerer	  sleep-deprived psychotic hacker types can say Y now, everyone else
3340e152d80SGreg Ungerer	  should probably wait a while.
3350e152d80SGreg Ungerer
3360e152d80SGreg Ungererconfig M68KFPU_EMU_EXTRAPREC
3370e152d80SGreg Ungerer	bool "Math emulation extra precision"
3380e152d80SGreg Ungerer	depends on M68KFPU_EMU
3390e152d80SGreg Ungerer	help
3400e152d80SGreg Ungerer	  The fpu uses normally a few bit more during calculations for
3410e152d80SGreg Ungerer	  correct rounding, the emulator can (often) do the same but this
3420e152d80SGreg Ungerer	  extra calculation can cost quite some time, so you can disable
3430e152d80SGreg Ungerer	  it here. The emulator will then "only" calculate with a 64 bit
3440e152d80SGreg Ungerer	  mantissa and round slightly incorrect, what is more than enough
3450e152d80SGreg Ungerer	  for normal usage.
3460e152d80SGreg Ungerer
3470e152d80SGreg Ungererconfig M68KFPU_EMU_ONLY
3480e152d80SGreg Ungerer	bool "Math emulation only kernel"
3490e152d80SGreg Ungerer	depends on M68KFPU_EMU
3500e152d80SGreg Ungerer	help
3510e152d80SGreg Ungerer	  This option prevents any floating-point instructions from being
3520e152d80SGreg Ungerer	  compiled into the kernel, thereby the kernel doesn't save any
3530e152d80SGreg Ungerer	  floating point context anymore during task switches, so this
3540e152d80SGreg Ungerer	  kernel will only be usable on machines without a floating-point
3550e152d80SGreg Ungerer	  math coprocessor. This makes the kernel a bit faster as no tests
3560e152d80SGreg Ungerer	  needs to be executed whether a floating-point instruction in the
3570e152d80SGreg Ungerer	  kernel should be executed or not.
3580e152d80SGreg Ungerer
3590e152d80SGreg Ungererconfig ADVANCED
3600e152d80SGreg Ungerer	bool "Advanced configuration options"
3610e152d80SGreg Ungerer	depends on MMU
362a7f7f624SMasahiro Yamada	help
3630e152d80SGreg Ungerer	  This gives you access to some advanced options for the CPU. The
3640e152d80SGreg Ungerer	  defaults should be fine for most users, but these options may make
3650e152d80SGreg Ungerer	  it possible for you to improve performance somewhat if you know what
3660e152d80SGreg Ungerer	  you are doing.
3670e152d80SGreg Ungerer
3680e152d80SGreg Ungerer	  Note that the answer to this question won't directly affect the
3690e152d80SGreg Ungerer	  kernel: saying N will just cause the configurator to skip all
3700e152d80SGreg Ungerer	  the questions about these options.
3710e152d80SGreg Ungerer
3720e152d80SGreg Ungerer	  Most users should say N to this question.
3730e152d80SGreg Ungerer
3740e152d80SGreg Ungererconfig RMW_INSNS
3750e152d80SGreg Ungerer	bool "Use read-modify-write instructions"
3762189e928SGeert Uytterhoeven	depends on ADVANCED && !CPU_HAS_NO_CAS
377a7f7f624SMasahiro Yamada	help
3780e152d80SGreg Ungerer	  This allows to use certain instructions that work with indivisible
3790e152d80SGreg Ungerer	  read-modify-write bus cycles. While this is faster than the
3800e152d80SGreg Ungerer	  workaround of disabling interrupts, it can conflict with DMA
3810e152d80SGreg Ungerer	  ( = direct memory access) on many Amiga systems, and it is also said
3820e152d80SGreg Ungerer	  to destabilize other machines. It is very likely that this will
3830e152d80SGreg Ungerer	  cause serious problems on any Amiga or Atari Medusa if set. The only
3840e152d80SGreg Ungerer	  configuration where it should work are 68030-based Ataris, where it
3850e152d80SGreg Ungerer	  apparently improves performance. But you've been warned! Unless you
3860e152d80SGreg Ungerer	  really know what you are doing, say N. Try Y only if you're quite
3870e152d80SGreg Ungerer	  adventurous.
3880e152d80SGreg Ungerer
3890e152d80SGreg Ungererconfig SINGLE_MEMORY_CHUNK
3900e152d80SGreg Ungerer	bool "Use one physical chunk of memory only" if ADVANCED && !SUN3
3910e152d80SGreg Ungerer	depends on MMU
3926b2ad8d7SMike Rapoport	default y if SUN3 || MMU_COLDFIRE
3930e152d80SGreg Ungerer	help
3940e152d80SGreg Ungerer	  Ignore all but the first contiguous chunk of physical memory for VM
3950e152d80SGreg Ungerer	  purposes.  This will save a few bytes kernel size and may speed up
396fcd353a3SMike Rapoport	  some operations.
397fcd353a3SMike Rapoport	  When this option os set to N, you may want to lower "Maximum zone
398fcd353a3SMike Rapoport	  order" to save memory that could be wasted for unused memory map.
399fcd353a3SMike Rapoport	  Say N if not sure.
4000e152d80SGreg Ungerer
4010192445cSZi Yanconfig ARCH_FORCE_MAX_ORDER
4027a5b272eSMike Rapoport (IBM)	int "Order of maximal physically contiguous allocations" if ADVANCED
403fcd353a3SMike Rapoport	depends on !SINGLE_MEMORY_CHUNK
40423baf831SKirill A. Shutemov	default "10"
405fcd353a3SMike Rapoport	help
4067a5b272eSMike Rapoport (IBM)	  The kernel page allocator limits the size of maximal physically
4075e0a760bSKirill A. Shutemov	  contiguous allocations. The limit is called MAX_PAGE_ORDER and it
4087a5b272eSMike Rapoport (IBM)	  defines the maximal power of two of number of pages that can be
4097a5b272eSMike Rapoport (IBM)	  allocated as a single contiguous block. This option allows
4107a5b272eSMike Rapoport (IBM)	  overriding the default setting when ability to allocate very
4117a5b272eSMike Rapoport (IBM)	  large blocks of physically contiguous memory is required.
412fcd353a3SMike Rapoport
413fcd353a3SMike Rapoport	  For systems that have holes in their physical address space this
414fcd353a3SMike Rapoport	  value also defines the minimal size of the hole that allows
415fcd353a3SMike Rapoport	  freeing unused memory map.
416fcd353a3SMike Rapoport
4177a5b272eSMike Rapoport (IBM)	  Don't change if unsure.
418fcd353a3SMike Rapoport
4190e152d80SGreg Ungererconfig 060_WRITETHROUGH
4200e152d80SGreg Ungerer	bool "Use write-through caching for 68060 supervisor accesses"
4210e152d80SGreg Ungerer	depends on ADVANCED && M68060
422a7f7f624SMasahiro Yamada	help
4230e152d80SGreg Ungerer	  The 68060 generally uses copyback caching of recently accessed data.
4240e152d80SGreg Ungerer	  Copyback caching means that memory writes will be held in an on-chip
4250e152d80SGreg Ungerer	  cache and only written back to memory some time later.  Saying Y
4260e152d80SGreg Ungerer	  here will force supervisor (kernel) accesses to use writethrough
4270e152d80SGreg Ungerer	  caching.  Writethrough caching means that data is written to memory
4280e152d80SGreg Ungerer	  straight away, so that cache and memory data always agree.
4290e152d80SGreg Ungerer	  Writethrough caching is less efficient, but is needed for some
4300e152d80SGreg Ungerer	  drivers on 68060 based systems where the 68060 bus snooping signal
4310e152d80SGreg Ungerer	  is hardwired on.  The 53c710 SCSI driver is known to suffer from
4320e152d80SGreg Ungerer	  this problem.
4330e152d80SGreg Ungerer
4340e152d80SGreg Ungererconfig M68K_L2_CACHE
4350e152d80SGreg Ungerer	bool
4360e152d80SGreg Ungerer	depends on MAC
4370e152d80SGreg Ungerer	default y
4380e152d80SGreg Ungerer
439022613e0SGeert Uytterhoevenconfig CPU_HAS_NO_BITFIELDS
440022613e0SGeert Uytterhoeven	bool
441022613e0SGeert Uytterhoeven
4422189e928SGeert Uytterhoevenconfig CPU_HAS_NO_CAS
4432189e928SGeert Uytterhoeven	bool
4442189e928SGeert Uytterhoeven
445022613e0SGeert Uytterhoevenconfig CPU_HAS_NO_MULDIV64
446022613e0SGeert Uytterhoeven	bool
447022613e0SGeert Uytterhoeven
4489f1f1180SGeert Uytterhoevenconfig CPU_HAS_NO_UNALIGNED
4499f1f1180SGeert Uytterhoeven	bool
4509f1f1180SGeert Uytterhoeven
451022613e0SGeert Uytterhoevenconfig CPU_HAS_ADDRESS_SPACES
452022613e0SGeert Uytterhoeven	bool
45312700c17SArnd Bergmann	select ALTERNATE_USER_ADDRESS_SPACE
454022613e0SGeert Uytterhoeven
4550e152d80SGreg Ungererconfig FPU
4560e152d80SGreg Ungerer	bool
4570e152d80SGreg Ungerer
4580e152d80SGreg Ungererconfig COLDFIRE_SW_A7
4590e152d80SGreg Ungerer	bool
4600e152d80SGreg Ungerer
4610e152d80SGreg Ungererconfig HAVE_CACHE_SPLIT
4620e152d80SGreg Ungerer	bool
4630e152d80SGreg Ungerer
4640e152d80SGreg Ungererconfig HAVE_CACHE_CB
4650e152d80SGreg Ungerer	bool
4660e152d80SGreg Ungerer
4670e152d80SGreg Ungererconfig HAVE_MBAR
4680e152d80SGreg Ungerer	bool
4690e152d80SGreg Ungerer
4700e152d80SGreg Ungererconfig HAVE_IPSBAR
4710e152d80SGreg Ungerer	bool
4720e152d80SGreg Ungerer
4730e152d80SGreg Ungererconfig CLOCK_FREQ
4740e152d80SGreg Ungerer	int "Set the core clock frequency"
47515c2ca4eSGreg Ungerer	default "25000000" if M5206
47615c2ca4eSGreg Ungerer	default "54000000" if M5206e
47715c2ca4eSGreg Ungerer	default "166666666" if M520x
47815c2ca4eSGreg Ungerer	default "140000000" if M5249
47915c2ca4eSGreg Ungerer	default "150000000" if M527x || M523x
48015c2ca4eSGreg Ungerer	default "90000000" if M5307
48115c2ca4eSGreg Ungerer	default "50000000" if M5407
48215c2ca4eSGreg Ungerer	default "266000000" if M54xx
4830e152d80SGreg Ungerer	default "66666666"
484d9ee4896SGreg Ungerer	depends on COLDFIRE
4850e152d80SGreg Ungerer	help
4860e152d80SGreg Ungerer	  Define the CPU clock frequency in use. This is the core clock
4870e152d80SGreg Ungerer	  frequency, it may or may not be the same as the external clock
4880e152d80SGreg Ungerer	  crystal fitted to your board. Some processors have an internal
4890e152d80SGreg Ungerer	  PLL and can have their frequency programmed at run time, others
4900e152d80SGreg Ungerer	  use internal dividers. In general the kernel won't setup a PLL
4910e152d80SGreg Ungerer	  if it is fitted (there are some exceptions). This value will be
4920e152d80SGreg Ungerer	  specific to the exact CPU that you are using.
4930e152d80SGreg Ungerer
4940e152d80SGreg Ungererconfig OLDMASK
4950e152d80SGreg Ungerer	bool "Old mask 5307 (1H55J) silicon"
4960e152d80SGreg Ungerer	depends on M5307
4970e152d80SGreg Ungerer	help
4980e152d80SGreg Ungerer	  Build support for the older revision ColdFire 5307 silicon.
4990e152d80SGreg Ungerer	  Specifically this is the 1H55J mask revision.
5000e152d80SGreg Ungerer
5010e152d80SGreg Ungererif HAVE_CACHE_SPLIT
5020e152d80SGreg Ungererchoice
5030e152d80SGreg Ungerer	prompt "Split Cache Configuration"
5040e152d80SGreg Ungerer	default CACHE_I
5050e152d80SGreg Ungerer
5060e152d80SGreg Ungererconfig CACHE_I
5070e152d80SGreg Ungerer	bool "Instruction"
5080e152d80SGreg Ungerer	help
5090e152d80SGreg Ungerer	  Use all of the ColdFire CPU cache memory as an instruction cache.
5100e152d80SGreg Ungerer
5110e152d80SGreg Ungererconfig CACHE_D
5120e152d80SGreg Ungerer	bool "Data"
5130e152d80SGreg Ungerer	help
5140e152d80SGreg Ungerer	  Use all of the ColdFire CPU cache memory as a data cache.
5150e152d80SGreg Ungerer
5160e152d80SGreg Ungererconfig CACHE_BOTH
5170e152d80SGreg Ungerer	bool "Both"
5180e152d80SGreg Ungerer	help
5190e152d80SGreg Ungerer	  Split the ColdFire CPU cache, and use half as an instruction cache
5200e152d80SGreg Ungerer	  and half as a data cache.
5210e152d80SGreg Ungererendchoice
522a1ab4c1cSJuerg Haefligerendif # HAVE_CACHE_SPLIT
5230e152d80SGreg Ungerer
5240e152d80SGreg Ungererif HAVE_CACHE_CB
5250e152d80SGreg Ungererchoice
5260e152d80SGreg Ungerer	prompt "Data cache mode"
5270e152d80SGreg Ungerer	default CACHE_WRITETHRU
5280e152d80SGreg Ungerer
5290e152d80SGreg Ungererconfig CACHE_WRITETHRU
5300e152d80SGreg Ungerer	bool "Write-through"
5310e152d80SGreg Ungerer	help
5320e152d80SGreg Ungerer	  The ColdFire CPU cache is set into Write-through mode.
5330e152d80SGreg Ungerer
5340e152d80SGreg Ungererconfig CACHE_COPYBACK
5350e152d80SGreg Ungerer	bool "Copy-back"
5360e152d80SGreg Ungerer	help
5370e152d80SGreg Ungerer	  The ColdFire CPU cache is set into Copy-back mode.
5380e152d80SGreg Ungererendchoice
539a1ab4c1cSJuerg Haefligerendif # HAVE_CACHE_CB
5409e28bf8bSChristoph Hellwig
5419e28bf8bSChristoph Hellwig# Coldfire cores that do not have a data cache configured can do coherent DMA.
5429e28bf8bSChristoph Hellwigconfig COLDFIRE_COHERENT_DMA
5439e28bf8bSChristoph Hellwig	bool
5449e28bf8bSChristoph Hellwig	default y
5459e28bf8bSChristoph Hellwig	depends on COLDFIRE
5469e28bf8bSChristoph Hellwig	depends on !HAVE_CACHE_CB && !CACHE_D && !CACHE_BOTH
5479e28bf8bSChristoph Hellwig
5489e28bf8bSChristoph Hellwigconfig M68K_NONCOHERENT_DMA
5499e28bf8bSChristoph Hellwig	bool
5509e28bf8bSChristoph Hellwig	default y
5519e28bf8bSChristoph Hellwig	depends on HAS_DMA && !COLDFIRE_COHERENT_DMA
552