|  | comment "Processor Type" | 
|  |  | 
|  | choice | 
|  | prompt "CPU family support" | 
|  | default M68KCLASSIC if MMU | 
|  | default COLDFIRE if !MMU | 
|  | help | 
|  | The Freescale (was Motorola) M68K family of processors implements | 
|  | the full 68000 processor instruction set. | 
|  | The Freescale ColdFire family of processors is a modern derivative | 
|  | of the 68000 processor family. They are mainly targeted at embedded | 
|  | applications, and are all System-On-Chip (SOC) devices, as opposed | 
|  | to stand alone CPUs. They implement a subset of the original 68000 | 
|  | processor instruction set. | 
|  | If you anticipate running this kernel on a computer with a classic | 
|  | MC68xxx processor, select M68KCLASSIC. | 
|  | If you anticipate running this kernel on a computer with a ColdFire | 
|  | processor, select COLDFIRE. | 
|  |  | 
|  | config M68KCLASSIC | 
|  | bool "Classic M68K CPU family support" | 
|  |  | 
|  | config COLDFIRE | 
|  | bool "Coldfire CPU family support" | 
|  | select GENERIC_GPIO | 
|  | select ARCH_REQUIRE_GPIOLIB | 
|  | select ARCH_HAVE_CUSTOM_GPIO_H | 
|  | select CPU_HAS_NO_BITFIELDS | 
|  | select CPU_HAS_NO_MULDIV64 | 
|  | select GENERIC_CSUM | 
|  |  | 
|  | endchoice | 
|  |  | 
|  | if M68KCLASSIC | 
|  |  | 
|  | config M68000 | 
|  | bool | 
|  | select CPU_HAS_NO_BITFIELDS | 
|  | select CPU_HAS_NO_MULDIV64 | 
|  | select GENERIC_CSUM | 
|  | help | 
|  | The Freescale (was Motorola) 68000 CPU is the first generation of | 
|  | the well known M68K family of processors. The CPU core as well as | 
|  | being available as a stand alone CPU was also used in many | 
|  | System-On-Chip devices (eg 68328, 68302, etc). It does not contain | 
|  | a paging MMU. | 
|  |  | 
|  | config MCPU32 | 
|  | bool | 
|  | select CPU_HAS_NO_BITFIELDS | 
|  | help | 
|  | The Freescale (was then Motorola) CPU32 is a CPU core that is | 
|  | based on the 68020 processor. For the most part it is used in | 
|  | System-On-Chip parts, and does not contain a paging MMU. | 
|  |  | 
|  | config M68020 | 
|  | bool "68020 support" | 
|  | depends on MMU | 
|  | select GENERIC_ATOMIC64 | 
|  | select CPU_HAS_ADDRESS_SPACES | 
|  | help | 
|  | If you anticipate running this kernel on a computer with a MC68020 | 
|  | processor, say Y. Otherwise, say N. Note that the 68020 requires a | 
|  | 68851 MMU (Memory Management Unit) to run Linux/m68k, except on the | 
|  | Sun 3, which provides its own version. | 
|  |  | 
|  | config M68030 | 
|  | bool "68030 support" | 
|  | depends on MMU && !MMU_SUN3 | 
|  | select GENERIC_ATOMIC64 | 
|  | select CPU_HAS_ADDRESS_SPACES | 
|  | help | 
|  | If you anticipate running this kernel on a computer with a MC68030 | 
|  | processor, say Y. Otherwise, say N. Note that a MC68EC030 will not | 
|  | work, as it does not include an MMU (Memory Management Unit). | 
|  |  | 
|  | config M68040 | 
|  | bool "68040 support" | 
|  | depends on MMU && !MMU_SUN3 | 
|  | select GENERIC_ATOMIC64 | 
|  | select CPU_HAS_ADDRESS_SPACES | 
|  | help | 
|  | If you anticipate running this kernel on a computer with a MC68LC040 | 
|  | or MC68040 processor, say Y. Otherwise, say N. Note that an | 
|  | MC68EC040 will not work, as it does not include an MMU (Memory | 
|  | Management Unit). | 
|  |  | 
|  | config M68060 | 
|  | bool "68060 support" | 
|  | depends on MMU && !MMU_SUN3 | 
|  | select GENERIC_ATOMIC64 | 
|  | select CPU_HAS_ADDRESS_SPACES | 
|  | help | 
|  | If you anticipate running this kernel on a computer with a MC68060 | 
|  | processor, say Y. Otherwise, say N. | 
|  |  | 
|  | config M68328 | 
|  | bool "MC68328" | 
|  | depends on !MMU | 
|  | select M68000 | 
|  | help | 
|  | Motorola 68328 processor support. | 
|  |  | 
|  | config M68EZ328 | 
|  | bool "MC68EZ328" | 
|  | depends on !MMU | 
|  | select M68000 | 
|  | help | 
|  | Motorola 68EX328 processor support. | 
|  |  | 
|  | config M68VZ328 | 
|  | bool "MC68VZ328" | 
|  | depends on !MMU | 
|  | select M68000 | 
|  | help | 
|  | Motorola 68VZ328 processor support. | 
|  |  | 
|  | config M68360 | 
|  | bool "MC68360" | 
|  | depends on !MMU | 
|  | select MCPU32 | 
|  | help | 
|  | Motorola 68360 processor support. | 
|  |  | 
|  | endif # M68KCLASSIC | 
|  |  | 
|  | if COLDFIRE | 
|  |  | 
|  | config M5206 | 
|  | bool "MCF5206" | 
|  | depends on !MMU | 
|  | select COLDFIRE_SW_A7 | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Motorola ColdFire 5206 processor support. | 
|  |  | 
|  | config M5206e | 
|  | bool "MCF5206e" | 
|  | depends on !MMU | 
|  | select COLDFIRE_SW_A7 | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Motorola ColdFire 5206e processor support. | 
|  |  | 
|  | config M520x | 
|  | bool "MCF520x" | 
|  | depends on !MMU | 
|  | select GENERIC_CLOCKEVENTS | 
|  | select HAVE_CACHE_SPLIT | 
|  | help | 
|  | Freescale Coldfire 5207/5208 processor support. | 
|  |  | 
|  | config M523x | 
|  | bool "MCF523x" | 
|  | depends on !MMU | 
|  | select GENERIC_CLOCKEVENTS | 
|  | select HAVE_CACHE_SPLIT | 
|  | select HAVE_IPSBAR | 
|  | help | 
|  | Freescale Coldfire 5230/1/2/4/5 processor support | 
|  |  | 
|  | config M5249 | 
|  | bool "MCF5249" | 
|  | depends on !MMU | 
|  | select COLDFIRE_SW_A7 | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Motorola ColdFire 5249 processor support. | 
|  |  | 
|  | config M527x | 
|  | bool | 
|  |  | 
|  | config M5271 | 
|  | bool "MCF5271" | 
|  | depends on !MMU | 
|  | select M527x | 
|  | select HAVE_CACHE_SPLIT | 
|  | select HAVE_IPSBAR | 
|  | select GENERIC_CLOCKEVENTS | 
|  | help | 
|  | Freescale (Motorola) ColdFire 5270/5271 processor support. | 
|  |  | 
|  | config M5272 | 
|  | bool "MCF5272" | 
|  | depends on !MMU | 
|  | select COLDFIRE_SW_A7 | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Motorola ColdFire 5272 processor support. | 
|  |  | 
|  | config M5275 | 
|  | bool "MCF5275" | 
|  | depends on !MMU | 
|  | select M527x | 
|  | select HAVE_CACHE_SPLIT | 
|  | select HAVE_IPSBAR | 
|  | select GENERIC_CLOCKEVENTS | 
|  | help | 
|  | Freescale (Motorola) ColdFire 5274/5275 processor support. | 
|  |  | 
|  | config M528x | 
|  | bool "MCF528x" | 
|  | depends on !MMU | 
|  | select GENERIC_CLOCKEVENTS | 
|  | select HAVE_CACHE_SPLIT | 
|  | select HAVE_IPSBAR | 
|  | help | 
|  | Motorola ColdFire 5280/5282 processor support. | 
|  |  | 
|  | config M5307 | 
|  | bool "MCF5307" | 
|  | depends on !MMU | 
|  | select COLDFIRE_SW_A7 | 
|  | select HAVE_CACHE_CB | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Motorola ColdFire 5307 processor support. | 
|  |  | 
|  | config M532x | 
|  | bool "MCF532x" | 
|  | depends on !MMU | 
|  | select HAVE_CACHE_CB | 
|  | help | 
|  | Freescale (Motorola) ColdFire 532x processor support. | 
|  |  | 
|  | config M5407 | 
|  | bool "MCF5407" | 
|  | depends on !MMU | 
|  | select COLDFIRE_SW_A7 | 
|  | select HAVE_CACHE_CB | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Motorola ColdFire 5407 processor support. | 
|  |  | 
|  | config M54xx | 
|  | bool | 
|  |  | 
|  | config M547x | 
|  | bool "MCF547x" | 
|  | select M54xx | 
|  | select MMU_COLDFIRE if MMU | 
|  | select HAVE_CACHE_CB | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Freescale ColdFire 5470/5471/5472/5473/5474/5475 processor support. | 
|  |  | 
|  | config M548x | 
|  | bool "MCF548x" | 
|  | select MMU_COLDFIRE if MMU | 
|  | select M54xx | 
|  | select HAVE_CACHE_CB | 
|  | select HAVE_MBAR | 
|  | help | 
|  | Freescale ColdFire 5480/5481/5482/5483/5484/5485 processor support. | 
|  |  | 
|  | endif # COLDFIRE | 
|  |  | 
|  |  | 
|  | comment "Processor Specific Options" | 
|  |  | 
|  | config M68KFPU_EMU | 
|  | bool "Math emulation support (EXPERIMENTAL)" | 
|  | depends on MMU | 
|  | depends on EXPERIMENTAL | 
|  | help | 
|  | At some point in the future, this will cause floating-point math | 
|  | instructions to be emulated by the kernel on machines that lack a | 
|  | floating-point math coprocessor.  Thrill-seekers and chronically | 
|  | sleep-deprived psychotic hacker types can say Y now, everyone else | 
|  | should probably wait a while. | 
|  |  | 
|  | config M68KFPU_EMU_EXTRAPREC | 
|  | bool "Math emulation extra precision" | 
|  | depends on M68KFPU_EMU | 
|  | help | 
|  | The fpu uses normally a few bit more during calculations for | 
|  | correct rounding, the emulator can (often) do the same but this | 
|  | extra calculation can cost quite some time, so you can disable | 
|  | it here. The emulator will then "only" calculate with a 64 bit | 
|  | mantissa and round slightly incorrect, what is more than enough | 
|  | for normal usage. | 
|  |  | 
|  | config M68KFPU_EMU_ONLY | 
|  | bool "Math emulation only kernel" | 
|  | depends on M68KFPU_EMU | 
|  | help | 
|  | This option prevents any floating-point instructions from being | 
|  | compiled into the kernel, thereby the kernel doesn't save any | 
|  | floating point context anymore during task switches, so this | 
|  | kernel will only be usable on machines without a floating-point | 
|  | math coprocessor. This makes the kernel a bit faster as no tests | 
|  | needs to be executed whether a floating-point instruction in the | 
|  | kernel should be executed or not. | 
|  |  | 
|  | config ADVANCED | 
|  | bool "Advanced configuration options" | 
|  | depends on MMU | 
|  | ---help--- | 
|  | This gives you access to some advanced options for the CPU. The | 
|  | defaults should be fine for most users, but these options may make | 
|  | it possible for you to improve performance somewhat if you know what | 
|  | you are doing. | 
|  |  | 
|  | Note that the answer to this question won't directly affect the | 
|  | kernel: saying N will just cause the configurator to skip all | 
|  | the questions about these options. | 
|  |  | 
|  | Most users should say N to this question. | 
|  |  | 
|  | config RMW_INSNS | 
|  | bool "Use read-modify-write instructions" | 
|  | depends on ADVANCED | 
|  | ---help--- | 
|  | This allows to use certain instructions that work with indivisible | 
|  | read-modify-write bus cycles. While this is faster than the | 
|  | workaround of disabling interrupts, it can conflict with DMA | 
|  | ( = direct memory access) on many Amiga systems, and it is also said | 
|  | to destabilize other machines. It is very likely that this will | 
|  | cause serious problems on any Amiga or Atari Medusa if set. The only | 
|  | configuration where it should work are 68030-based Ataris, where it | 
|  | apparently improves performance. But you've been warned! Unless you | 
|  | really know what you are doing, say N. Try Y only if you're quite | 
|  | adventurous. | 
|  |  | 
|  | config SINGLE_MEMORY_CHUNK | 
|  | bool "Use one physical chunk of memory only" if ADVANCED && !SUN3 | 
|  | depends on MMU | 
|  | default y if SUN3 | 
|  | select NEED_MULTIPLE_NODES | 
|  | help | 
|  | Ignore all but the first contiguous chunk of physical memory for VM | 
|  | purposes.  This will save a few bytes kernel size and may speed up | 
|  | some operations.  Say N if not sure. | 
|  |  | 
|  | config ARCH_DISCONTIGMEM_ENABLE | 
|  | def_bool MMU && !SINGLE_MEMORY_CHUNK | 
|  |  | 
|  | config 060_WRITETHROUGH | 
|  | bool "Use write-through caching for 68060 supervisor accesses" | 
|  | depends on ADVANCED && M68060 | 
|  | ---help--- | 
|  | The 68060 generally uses copyback caching of recently accessed data. | 
|  | Copyback caching means that memory writes will be held in an on-chip | 
|  | cache and only written back to memory some time later.  Saying Y | 
|  | here will force supervisor (kernel) accesses to use writethrough | 
|  | caching.  Writethrough caching means that data is written to memory | 
|  | straight away, so that cache and memory data always agree. | 
|  | Writethrough caching is less efficient, but is needed for some | 
|  | drivers on 68060 based systems where the 68060 bus snooping signal | 
|  | is hardwired on.  The 53c710 SCSI driver is known to suffer from | 
|  | this problem. | 
|  |  | 
|  | config M68K_L2_CACHE | 
|  | bool | 
|  | depends on MAC | 
|  | default y | 
|  |  | 
|  | config NODES_SHIFT | 
|  | int | 
|  | default "3" | 
|  | depends on !SINGLE_MEMORY_CHUNK | 
|  |  | 
|  | config FPU | 
|  | bool | 
|  |  | 
|  | config COLDFIRE_SW_A7 | 
|  | bool | 
|  |  | 
|  | config HAVE_CACHE_SPLIT | 
|  | bool | 
|  |  | 
|  | config HAVE_CACHE_CB | 
|  | bool | 
|  |  | 
|  | config HAVE_MBAR | 
|  | bool | 
|  |  | 
|  | config HAVE_IPSBAR | 
|  | bool | 
|  |  | 
|  | config CLOCK_SET | 
|  | bool "Enable setting the CPU clock frequency" | 
|  | depends on COLDFIRE | 
|  | default n | 
|  | help | 
|  | On some CPU's you do not need to know what the core CPU clock | 
|  | frequency is. On these you can disable clock setting. On some | 
|  | traditional 68K parts, and on all ColdFire parts you need to set | 
|  | the appropriate CPU clock frequency. On these devices many of the | 
|  | onboard peripherals derive their timing from the master CPU clock | 
|  | frequency. | 
|  |  | 
|  | config CLOCK_FREQ | 
|  | int "Set the core clock frequency" | 
|  | default "66666666" | 
|  | depends on CLOCK_SET | 
|  | help | 
|  | Define the CPU clock frequency in use. This is the core clock | 
|  | frequency, it may or may not be the same as the external clock | 
|  | crystal fitted to your board. Some processors have an internal | 
|  | PLL and can have their frequency programmed at run time, others | 
|  | use internal dividers. In general the kernel won't setup a PLL | 
|  | if it is fitted (there are some exceptions). This value will be | 
|  | specific to the exact CPU that you are using. | 
|  |  | 
|  | config OLDMASK | 
|  | bool "Old mask 5307 (1H55J) silicon" | 
|  | depends on M5307 | 
|  | help | 
|  | Build support for the older revision ColdFire 5307 silicon. | 
|  | Specifically this is the 1H55J mask revision. | 
|  |  | 
|  | if HAVE_CACHE_SPLIT | 
|  | choice | 
|  | prompt "Split Cache Configuration" | 
|  | default CACHE_I | 
|  |  | 
|  | config CACHE_I | 
|  | bool "Instruction" | 
|  | help | 
|  | Use all of the ColdFire CPU cache memory as an instruction cache. | 
|  |  | 
|  | config CACHE_D | 
|  | bool "Data" | 
|  | help | 
|  | Use all of the ColdFire CPU cache memory as a data cache. | 
|  |  | 
|  | config CACHE_BOTH | 
|  | bool "Both" | 
|  | help | 
|  | Split the ColdFire CPU cache, and use half as an instruction cache | 
|  | and half as a data cache. | 
|  | endchoice | 
|  | endif | 
|  |  | 
|  | if HAVE_CACHE_CB | 
|  | choice | 
|  | prompt "Data cache mode" | 
|  | default CACHE_WRITETHRU | 
|  |  | 
|  | config CACHE_WRITETHRU | 
|  | bool "Write-through" | 
|  | help | 
|  | The ColdFire CPU cache is set into Write-through mode. | 
|  |  | 
|  | config CACHE_COPYBACK | 
|  | bool "Copy-back" | 
|  | help | 
|  | The ColdFire CPU cache is set into Copy-back mode. | 
|  | endchoice | 
|  | endif | 
|  |  |