m68k: reorganize Kconfig options to improve mmu/non-mmu selections
[linux-2.6.git] / arch / m68k / Kconfig.machine
similarity index 62%
rename from arch/m68k/Kconfig.nommu
rename to arch/m68k/Kconfig.machine
index ff46383..7d5c20b 100644 (file)
-config FPU
-       bool
-       default n
-
-config GENERIC_GPIO
-       bool
-       default n
-
-config GENERIC_CMOS_UPDATE
-       bool
-       default y
-
-config GENERIC_CLOCKEVENTS
-       bool
-       default n
-
-config M68000
-       bool
-       select CPU_HAS_NO_BITFIELDS
-       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 COLDFIRE
-       bool
-       select GENERIC_GPIO
-       select ARCH_REQUIRE_GPIOLIB
-       select CPU_HAS_NO_BITFIELDS
-       help
-         The Freescale ColdFire family of processors is a modern derivitive
-         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.
-
-config COLDFIRE_SW_A7
-       bool
-       default n
-
-config HAVE_CACHE_SPLIT
-       bool
-
-config HAVE_CACHE_CB
-       bool
-
-config HAVE_MBAR
-       bool
-
-config HAVE_IPSBAR
-       bool
-
-choice
-       prompt "CPU"
-       default M68EZ328
-
-config M68328
-       bool "MC68328"
-       select M68000
-       help
-         Motorola 68328 processor support.
-
-config M68EZ328
-       bool "MC68EZ328"
-       select M68000
-       help
-         Motorola 68EX328 processor support.
-
-config M68VZ328
-       bool "MC68VZ328"
-       select M68000
-       help
-         Motorola 68VZ328 processor support.
-
-config M68360
-       bool "MC68360"
-       select MCPU32
-       help
-         Motorola 68360 processor support.
-
-config M5206
-       bool "MCF5206"
-       select COLDFIRE
-       select COLDFIRE_SW_A7
-       select HAVE_MBAR
-       help
-         Motorola ColdFire 5206 processor support.
+comment "Machine Types"
+
+config AMIGA
+       bool "Amiga support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       help
+         This option enables support for the Amiga series of computers. If
+         you plan to use this kernel on an Amiga, say Y here and browse the
+         material available in <file:Documentation/m68k>; otherwise say N.
+
+config ATARI
+       bool "Atari support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       help
+         This option enables support for the 68000-based Atari series of
+         computers (including the TT, Falcon and Medusa). If you plan to use
+         this kernel on an Atari, say Y here and browse the material
+         available in <file:Documentation/m68k>; otherwise say N.
+
+config MAC
+       bool "Macintosh support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       help
+         This option enables support for the Apple Macintosh series of
+         computers (yes, there is experimental support now, at least for part
+         of the series).
+
+         Say N unless you're willing to code the remaining necessary support.
+         ;)
+
+config APOLLO
+       bool "Apollo support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       help
+         Say Y here if you want to run Linux on an MC680x0-based Apollo
+         Domain workstation such as the DN3500.
+
+config VME
+       bool "VME (Motorola and BVM) support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       help
+         Say Y here if you want to build a kernel for a 680x0 based VME
+         board.  Boards currently supported include Motorola boards MVME147,
+         MVME162, MVME166, MVME167, MVME172, and MVME177.  BVME4000 and
+         BVME6000 boards from BVM Ltd are also supported.
+
+config MVME147
+       bool "MVME147 support"
+       depends on MMU
+       depends on VME
+       help
+         Say Y to include support for early Motorola VME boards.  This will
+         build a kernel which can run on MVME147 single-board computers.  If
+         you select this option you will have to select the appropriate
+         drivers for SCSI, Ethernet and serial ports later on.
+
+config MVME16x
+       bool "MVME162, 166 and 167 support"
+       depends on MMU
+       depends on VME
+       help
+         Say Y to include support for Motorola VME boards.  This will build a
+         kernel which can run on MVME162, MVME166, MVME167, MVME172, and
+         MVME177 boards.  If you select this option you will have to select
+         the appropriate drivers for SCSI, Ethernet and serial ports later
+         on.
+
+config BVME6000
+       bool "BVME4000 and BVME6000 support"
+       depends on MMU
+       depends on VME
+       help
+         Say Y to include support for VME boards from BVM Ltd.  This will
+         build a kernel which can run on BVME4000 and BVME6000 boards.  If
+         you select this option you will have to select the appropriate
+         drivers for SCSI, Ethernet and serial ports later on.
+
+config HP300
+       bool "HP9000/300 and HP9000/400 support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       help
+         This option enables support for the HP9000/300 and HP9000/400 series
+         of workstations. Support for these machines is still somewhat
+         experimental. If you plan to try to use the kernel on such a machine
+         say Y here.
+         Everybody else says N.
+
+config SUN3X
+       bool "Sun3x support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       select M68030
+       help
+         This option enables support for the Sun 3x series of workstations.
+         Be warned that this support is very experimental.
+         Note that Sun 3x kernels are not compatible with Sun 3 hardware.
+         General Linux information on the Sun 3x series (now discontinued)
+         is at <http://www.angelfire.com/ca2/tech68k/sun3.html>.
+
+         If you don't want to compile a kernel for a Sun 3x, say N.
+
+config Q40
+       bool "Q40/Q60 support"
+       depends on MMU
+       select MMU_MOTOROLA if MMU
+       help
+         The Q40 is a Motorola 68040-based successor to the Sinclair QL
+         manufactured in Germany.  There is an official Q40 home page at
+         <http://www.q40.de/>.  This option enables support for the Q40 and
+         Q60. Select your CPU below.  For 68LC060 don't forget to enable FPU
+         emulation.
+
+config SUN3
+       bool "Sun3 support"
+       depends on MMU
+       depends on !MMU_MOTOROLA
+       select MMU_SUN3 if MMU
+       select M68020
+       help
+         This option enables support for the Sun 3 series of workstations
+         (3/50, 3/60, 3/1xx, 3/2xx systems). Enabling this option requires
+         that all other hardware types must be disabled, as Sun 3 kernels
+         are incompatible with all other m68k targets (including Sun 3x!).
+
+         If you don't want to compile a kernel exclusively for a Sun 3, say N.
 
-config M5206e
-       bool "MCF5206e"
-       select COLDFIRE
-       select COLDFIRE_SW_A7
-       select HAVE_MBAR
-       help
-         Motorola ColdFire 5206e processor support.
-
-config M520x
-       bool "MCF520x"
-       select COLDFIRE
-       select GENERIC_CLOCKEVENTS
-       select HAVE_CACHE_SPLIT
-       help
-          Freescale Coldfire 5207/5208 processor support.
-
-config M523x
-       bool "MCF523x"
-       select COLDFIRE
-       select GENERIC_CLOCKEVENTS
-       select HAVE_CACHE_SPLIT
-       select HAVE_IPSBAR
-       help
-         Freescale Coldfire 5230/1/2/4/5 processor support
-
-config M5249
-       bool "MCF5249"
-       select COLDFIRE
-       select COLDFIRE_SW_A7
-       select HAVE_MBAR
-       help
-         Motorola ColdFire 5249 processor support.
-
-config M5271
-       bool "MCF5271"
-       select COLDFIRE
-       select HAVE_CACHE_SPLIT
-       select HAVE_IPSBAR
-       help
-         Freescale (Motorola) ColdFire 5270/5271 processor support.
-
-config M5272
-       bool "MCF5272"
-       select COLDFIRE
-       select COLDFIRE_SW_A7
-       select HAVE_MBAR
-       help
-         Motorola ColdFire 5272 processor support.
-
-config M5275
-       bool "MCF5275"
-       select COLDFIRE
-       select HAVE_CACHE_SPLIT
-       select HAVE_IPSBAR
-       help
-         Freescale (Motorola) ColdFire 5274/5275 processor support.
-
-config M528x
-       bool "MCF528x"
-       select COLDFIRE
-       select GENERIC_CLOCKEVENTS
-       select HAVE_CACHE_SPLIT
-       select HAVE_IPSBAR
-       help
-         Motorola ColdFire 5280/5282 processor support.
-
-config M5307
-       bool "MCF5307"
-       select COLDFIRE
-       select COLDFIRE_SW_A7
-       select HAVE_CACHE_CB
-       select HAVE_MBAR
-       help
-         Motorola ColdFire 5307 processor support.
-
-config M532x
-       bool "MCF532x"
-       select COLDFIRE
-       select HAVE_CACHE_CB
-       help
-         Freescale (Motorola) ColdFire 532x processor support.
-
-config M5407
-       bool "MCF5407"
-       select COLDFIRE
-       select COLDFIRE_SW_A7
-       select HAVE_CACHE_CB
-       select HAVE_MBAR
-       help
-         Motorola ColdFire 5407 processor support.
-
-config M547x
-       bool "MCF547x"
-       select COLDFIRE
-       select HAVE_CACHE_CB
-       select HAVE_MBAR
-       help
-         Freescale ColdFire 5470/5471/5472/5473/5474/5475 processor support.
-
-config M548x
-       bool "MCF548x"
-       select COLDFIRE
-       select HAVE_CACHE_CB
-       select HAVE_MBAR
-       help
-         Freescale ColdFire 5480/5481/5482/5483/5484/5485 processor support.
-
-endchoice
-
-config M527x
-       bool
-       depends on (M5271 || M5275)
-       select GENERIC_CLOCKEVENTS
-       default y
-
-config M54xx
+config PILOT
        bool
-       depends on (M548x || M547x)
-       default y
-
-config CLOCK_SET
-       bool "Enable setting the CPU clock frequency"
-       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
-
-comment "Platform"
 
 config PILOT3
        bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support"
        depends on M68328
+       select PILOT
        help
          Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII.
 
@@ -302,7 +147,7 @@ config XCOPILOT_BUGS
          Support the bugs of Xcopilot.
 
 config UC5272
-       bool 'Arcturus Networks uC5272 dimm board support'
+       bool "Arcturus Networks uC5272 dimm board support"
        depends on M5272
        help
          Support for the Arcturus Networks uC5272 dimm board.
@@ -356,15 +201,23 @@ config UCQUICC
        help
          Support for the Lineo uCquicc board.
 
+config ARNEWSH
+       bool
+
 config ARN5206
        bool "Arnewsh 5206 board support"
        depends on M5206
+       select ARNEWSH
        help
          Support for the Arnewsh 5206 board.
 
+config FREESCALE
+       bool
+
 config M5206eC3
        bool "Motorola M5206eC3 board support"
        depends on M5206e
+       select FREESCALE
        help
          Support for the Motorola M5206eC3 board.
 
@@ -377,75 +230,95 @@ config ELITE
 config M5208EVB
        bool "Freescale M5208EVB board support"
        depends on M520x
+       select FREESCALE
        help
          Support for the Freescale Coldfire M5208EVB.
 
 config M5235EVB
        bool "Freescale M5235EVB support"
        depends on M523x
+       select FREESCALE
        help
          Support for the Freescale M5235EVB board.
 
 config M5249C3
        bool "Motorola M5249C3 board support"
        depends on M5249
+       select FREESCALE
        help
          Support for the Motorola M5249C3 board.
 
 config M5271EVB
        bool "Freescale (Motorola) M5271EVB board support"
        depends on M5271
+       select FREESCALE
        help
          Support for the Freescale (Motorola) M5271EVB board.
 
 config M5275EVB
        bool "Freescale (Motorola) M5275EVB board support"
        depends on M5275
+       select FREESCALE
        help
          Support for the Freescale (Motorola) M5275EVB board.
 
 config M5272C3
        bool "Motorola M5272C3 board support"
        depends on M5272
+       select FREESCALE
        help
          Support for the Motorola M5272C3 board.
 
+config senTec
+       bool
+
 config COBRA5272
        bool "senTec COBRA5272 board support"
        depends on M5272
+       select senTec
        help
          Support for the senTec COBRA5272 board.
 
+config AVNET
+       bool
+
 config AVNET5282
        bool "Avnet 5282 board support"
        depends on M528x
+       select AVNET
        help
-         Support for the Avnet 5282 board.  
-         
+         Support for the Avnet 5282 board.
+
 config M5282EVB
        bool "Motorola M5282EVB board support"
        depends on M528x
+       select FREESCALE
        help
          Support for the Motorola M5282EVB board.
 
 config COBRA5282
        bool "senTec COBRA5282 board support"
        depends on M528x
+       select senTec
        help
          Support for the senTec COBRA5282 board.
-         
+
+config EMAC_INC
+       bool
+
 config SOM5282EM
        bool "EMAC.Inc SOM5282EM board support"
        depends on M528x
+       select EMAC_INC
        help
-         Support for the EMAC.Inc SOM5282EM module.  
-         
+         Support for the EMAC.Inc SOM5282EM module.
+
 config WILDFIRE
        bool "Intec Automation Inc. WildFire board support"
        depends on M528x
        help
          Support for the Intec Automation Inc. WildFire.
-         
+
 config WILDFIREMOD
        bool "Intec Automation Inc. WildFire module support"
        depends on M528x
@@ -455,12 +328,14 @@ config WILDFIREMOD
 config ARN5307
        bool "Arnewsh 5307 board support"
        depends on M5307
+       select ARNEWSH
        help
          Support for the Arnewsh 5307 board.
 
 config M5307C3
        bool "Motorola M5307C3 board support"
        depends on M5307
+       select FREESCALE
        help
          Support for the Motorola M5307C3 board.
 
@@ -473,6 +348,7 @@ config SECUREEDGEMP3
 config M5329EVB
        bool "Freescale (Motorola) M5329EVB board support"
        depends on M532x
+       select FREESCALE
        help
          Support for the Freescale (Motorola) M5329EVB board.
 
@@ -485,6 +361,7 @@ config COBRA5329
 config M5407C3
        bool "Motorola M5407C3 board support"
        depends on M5407
+       select FREESCALE
        help
          Support for the Motorola M5407C3 board.
 
@@ -494,21 +371,27 @@ config FIREBEE
        help
          Support for the FireBee ColdFire 5475 based board.
 
+config HW_FEITH
+       bool
+
 config CLEOPATRA
        bool "Feith CLEOPATRA board support"
        depends on (M5307 || M5407)
+       select HW_FEITH
        help
          Support for the Feith Cleopatra boards.
 
 config CANCam
        bool "Feith CANCam board support"
        depends on M5272
+       select HW_FEITH
        help
          Support for the Feith CANCam board.
 
 config SCALES
        bool "Feith SCALES board support"
        depends on M5272
+       select HW_FEITH
        help
          Support for the Feith SCALES board.
 
@@ -524,9 +407,13 @@ config SNAPGEAR
        help
          Special additional support for SnapGear router boards.
 
+config SNEHA
+       bool
+
 config CPU16B
        bool "Sneha Technologies S.L. Sarasvati board support"
        depends on M5272
+       select SNEHA
        help
          Support for the SNEHA CPU16B board.
 
@@ -536,12 +423,21 @@ config MOD5272
        help
          Support for the Netburner MOD-5272 board.
 
+config SAVANT
+       bool
+
 config SAVANTrosie1
        bool "Savant Rosie1 board support"
        depends on M523x
+       select SAVANT
        help
          Support for the Savant Rosie1 board.
 
+
+if !MMU || COLDFIRE
+
+comment "Machine Options"
+
 config ROMFS_FROM_ROM
        bool "ROMFS image not RAM resident"
        depends on (NETtel || SNAPGEAR)
@@ -549,51 +445,6 @@ config ROMFS_FROM_ROM
          The ROMfs filesystem will stay resident in the FLASH/ROM, not be
          moved into RAM.
 
-config PILOT
-       bool
-       default y
-       depends on (PILOT3 || PILOT5)
-
-config ARNEWSH
-       bool
-       default y
-       depends on (ARN5206 || ARN5307)
-
-config FREESCALE
-       bool
-       default y
-       depends on (M5206eC3 || M5208EVB || M5235EVB || M5249C3 || M5271EVB || M5272C3 || M5275EVB || M5282EVB || M5307C3 || M5329EVB || M5407C3)
-
-config HW_FEITH
-       bool
-       default y
-       depends on (CLEOPATRA || CANCam || SCALES)
-
-config senTec
-       bool
-       default y
-       depends on (COBRA5272 || COBRA5282)
-       
-config EMAC_INC
-       bool
-       default y
-       depends on (SOM5282EM)
-
-config SNEHA
-       bool
-       default y
-       depends on CPU16B
-
-config SAVANT
-       bool
-       default y
-       depends on SAVANTrosie1
-
-config AVNET
-       bool
-       default y
-       depends on (AVNET5282)
-
 config UBOOT
        bool "Support for U-Boot command line parameters"
        help
@@ -772,16 +623,4 @@ config ROMKERNEL
 
 endchoice
 
-if COLDFIRE
-source "kernel/Kconfig.preempt"
 endif
-
-source "kernel/time/Kconfig"
-
-config ISA_DMA_API
-       bool
-       depends on !M5272
-       default y
-
-source "drivers/pcmcia/Kconfig"
-