arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,BIT_LE,LAST_BIT}
[linux-2.6.git] / arch / blackfin / Kconfig
index d703247..d619b17 100644 (file)
@@ -1,9 +1,6 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Blackfin Kernel Configuration"
+config SYMBOL_PREFIX
+       string
+       default "_"
 
 config MMU
        def_bool n
@@ -19,14 +16,26 @@ config RWSEM_XCHGADD_ALGORITHM
 
 config BLACKFIN
        def_bool y
+       select HAVE_ARCH_KGDB
+       select HAVE_ARCH_TRACEHOOK
+       select HAVE_DYNAMIC_FTRACE
+       select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_FUNCTION_TRACER
+       select HAVE_FUNCTION_TRACE_MCOUNT_TEST
        select HAVE_IDE
-       select HAVE_KERNEL_GZIP
-       select HAVE_KERNEL_BZIP2
-       select HAVE_KERNEL_LZMA
+       select HAVE_IRQ_WORK
+       select HAVE_KERNEL_GZIP if RAMKERNEL
+       select HAVE_KERNEL_BZIP2 if RAMKERNEL
+       select HAVE_KERNEL_LZMA if RAMKERNEL
+       select HAVE_KERNEL_LZO if RAMKERNEL
        select HAVE_OPROFILE
+       select HAVE_PERF_EVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
+       select HAVE_GENERIC_HARDIRQS
+       select GENERIC_ATOMIC64
+       select GENERIC_IRQ_PROBE
+       select IRQ_PER_CPU if SMP
 
 config GENERIC_CSUM
        def_bool y
@@ -38,21 +47,6 @@ config GENERIC_BUG
 config ZONE_DMA
        def_bool y
 
-config GENERIC_FIND_NEXT_BIT
-       def_bool y
-
-config GENERIC_HWEIGHT
-       def_bool y
-
-config GENERIC_HARDIRQS
-       def_bool y
-
-config GENERIC_IRQ_PROBE
-       def_bool y
-
-config GENERIC_HARDIRQS_NO__DO_IRQ
-       def_bool y
-
 config GENERIC_GPIO
        def_bool y
 
@@ -235,7 +229,7 @@ endchoice
 
 config SMP
        depends on BF561
-       select GENERIC_CLOCKEVENTS
+       select TICKSOURCE_CORETMR
        bool "Symmetric multi-processing support"
        ---help---
          This enables support for systems with more than one CPU,
@@ -249,11 +243,15 @@ config NR_CPUS
        depends on SMP
        default 2 if BF561
 
-config IRQ_PER_CPU
-       bool
-       depends on SMP
+config HOTPLUG_CPU
+       bool "Support for hot-pluggable CPUs"
+       depends on SMP && HOTPLUG
        default y
 
+config HAVE_LEGACY_PER_CPU_AREA
+       def_bool y
+       depends on SMP
+
 config BF_REV_MIN
        int
        default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
@@ -284,7 +282,7 @@ config BF_REV_0_1
 
 config BF_REV_0_2
        bool "0.2"
-       depends on (BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
+       depends on (BF51x || BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
 
 config BF_REV_0_3
        bool "0.3"
@@ -315,11 +313,6 @@ config BF53x
        depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
        default y
 
-config MEM_GENERIC_BOARD
-       bool
-       depends on GENERIC_BOARD
-       default y
-
 config MEM_MT48LC64M4A2FB_7E
        bool
        depends on (BFIN533_STAMP)
@@ -335,7 +328,7 @@ config MEM_MT48LC16M16A2TG_75
 
 config MEM_MT48LC32M8A2_75
        bool
-       depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
+       depends on (BFIN518F_EZBRD || BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
        default y
 
 config MEM_MT48LC8M32B2B5_7
@@ -345,12 +338,7 @@ config MEM_MT48LC8M32B2B5_7
 
 config MEM_MT48LC32M16A2TG_75
        bool
-       depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP)
-       default y
-
-config MEM_MT48LC32M8A2_75
-       bool
-       depends on (BFIN518F_EZBRD)
+       depends on (BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN532_IP0X || BLACKSTAMP || BFIN527_AD7160EVAL)
        default y
 
 config MEM_MT48H32M16LFCJ_75
@@ -397,10 +385,18 @@ config BOOT_LOAD
 config ROM_BASE
        hex "Kernel ROM Base"
        depends on ROMKERNEL
-       default "0x20040000"
+       default "0x20040040"
        range 0x20000000 0x20400000 if !(BF54x || BF561)
        range 0x20000000 0x30000000 if (BF54x || BF561)
        help
+         Make sure your ROM base does not include any file-header
+         information that is prepended to the kernel.
+
+         For example, the bootable U-Boot format (created with
+         mkimage) has a 64 byte header (0x40).  So while the image
+         you write to flash might start at say 0x20080000, you have
+         to add 0x40 to get the kernel's ROM base as it will come
+         after the header.
 
 comment "Clock/PLL Setup"
 
@@ -412,6 +408,7 @@ config CLKIN_HZ
        default "25000000" # most people use this
        default "27000000" if BFIN533_EZKIT
        default "30000000" if BFIN561_EZKIT
+       default "24000000" if BFIN527_AD7160EVAL
        help
          The frequency of CLKIN crystal oscillator on the board in Hz.
          Warning: This value should match the crystal on the board. Otherwise,
@@ -444,11 +441,12 @@ config VCO_MULT
        range 1 64
        default "22" if BFIN533_EZKIT
        default "45" if BFIN533_STAMP
-       default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
+       default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
        default "22" if BFIN533_BLUETECHNIX_CM
        default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
        default "20" if BFIN561_EZKIT
        default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
+       default "25" if BFIN527_AD7160EVAL
        help
          This controls the frequency of the on-chip PLL. This can be between 1 and 64.
          PLL Frequency = (Crystal Frequency) * (this setting)
@@ -598,30 +596,27 @@ comment "Kernel Timer/Scheduler"
 
 source kernel/Kconfig.hz
 
-config GENERIC_TIME
-       def_bool y
-
 config GENERIC_CLOCKEVENTS
        bool "Generic clock events"
        default y
 
-choice
-       prompt "Kernel Tick Source"
+menu "Clock event device"
        depends on GENERIC_CLOCKEVENTS
-       default TICKSOURCE_CORETMR
-
 config TICKSOURCE_GPTMR0
-       bool "Gptimer0 (SCLK domain)"
+       bool "GPTimer0"
+       depends on !SMP
        select BFIN_GPTIMERS
 
 config TICKSOURCE_CORETMR
-       bool "Core timer (CCLK domain)"
-
-endchoice
+       bool "Core timer"
+       default y
+endmenu
 
-config CYCLES_CLOCKSOURCE
-       bool "Use 'CYCLES' as a clocksource"
+menu "Clock souce"
        depends on GENERIC_CLOCKEVENTS
+config CYCLES_CLOCKSOURCE
+       bool "CYCLES"
+       default y
        depends on !BFIN_SCRATCH_REG_CYCLES
        depends on !SMP
        help
@@ -632,10 +627,10 @@ config CYCLES_CLOCKSOURCE
          writing the registers will most likely crash the kernel.
 
 config GPTMR0_CLOCKSOURCE
-       bool "Use GPTimer0 as a clocksource"
+       bool "GPTimer0"
        select BFIN_GPTIMERS
-       depends on GENERIC_CLOCKEVENTS
        depends on !TICKSOURCE_GPTMR0
+endmenu
 
 config ARCH_USES_GETTIMEOFFSET
        depends on !GENERIC_CLOCKEVENTS
@@ -695,13 +690,13 @@ endmenu
 
 
 menu "Blackfin Kernel Optimizations"
-       depends on !SMP
 
 comment "Memory Optimizations"
 
 config I_ENTRY_L1
        bool "Locate interrupt entry code in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
          into L1 instruction memory. (less latency)
@@ -709,6 +704,7 @@ config I_ENTRY_L1
 config EXCPT_IRQ_SYSC_L1
        bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the entire ASM lowlevel exception and interrupt entry code
          (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
@@ -717,6 +713,7 @@ config EXCPT_IRQ_SYSC_L1
 config DO_IRQ_L1
        bool "Locate frequently called do_irq dispatcher function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the frequently called do_irq dispatcher function is linked
          into L1 instruction memory. (less latency)
@@ -724,6 +721,7 @@ config DO_IRQ_L1
 config CORE_TIMER_IRQ_L1
        bool "Locate frequently called timer_interrupt() function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the frequently called timer_interrupt() function is linked
          into L1 instruction memory. (less latency)
@@ -731,6 +729,7 @@ config CORE_TIMER_IRQ_L1
 config IDLE_L1
        bool "Locate frequently idle function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the frequently called idle function is linked
          into L1 instruction memory. (less latency)
@@ -738,6 +737,7 @@ config IDLE_L1
 config SCHEDULE_L1
        bool "Locate kernel schedule function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the frequently called kernel schedule is linked
          into L1 instruction memory. (less latency)
@@ -745,6 +745,7 @@ config SCHEDULE_L1
 config ARITHMETIC_OPS_L1
        bool "Locate kernel owned arithmetic functions in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, arithmetic functions are linked
          into L1 instruction memory. (less latency)
@@ -752,6 +753,7 @@ config ARITHMETIC_OPS_L1
 config ACCESS_OK_L1
        bool "Locate access_ok function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the access_ok function is linked
          into L1 instruction memory. (less latency)
@@ -759,6 +761,7 @@ config ACCESS_OK_L1
 config MEMSET_L1
        bool "Locate memset function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the memset function is linked
          into L1 instruction memory. (less latency)
@@ -766,13 +769,47 @@ config MEMSET_L1
 config MEMCPY_L1
        bool "Locate memcpy function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, the memcpy function is linked
          into L1 instruction memory. (less latency)
 
+config STRCMP_L1
+       bool "locate strcmp function in L1 Memory"
+       default y
+       depends on !SMP
+       help
+         If enabled, the strcmp function is linked
+         into L1 instruction memory (less latency).
+
+config STRNCMP_L1
+       bool "locate strncmp function in L1 Memory"
+       default y
+       depends on !SMP
+       help
+         If enabled, the strncmp function is linked
+         into L1 instruction memory (less latency).
+
+config STRCPY_L1
+       bool "locate strcpy function in L1 Memory"
+       default y
+       depends on !SMP
+       help
+         If enabled, the strcpy function is linked
+         into L1 instruction memory (less latency).
+
+config STRNCPY_L1
+       bool "locate strncpy function in L1 Memory"
+       default y
+       depends on !SMP
+       help
+         If enabled, the strncpy function is linked
+         into L1 instruction memory (less latency).
+
 config SYS_BFIN_SPINLOCK_L1
        bool "Locate sys_bfin_spinlock function in L1 Memory"
        default y
+       depends on !SMP
        help
          If enabled, sys_bfin_spinlock function is linked
          into L1 instruction memory. (less latency)
@@ -780,6 +817,7 @@ config SYS_BFIN_SPINLOCK_L1
 config IP_CHECKSUM_L1
        bool "Locate IP Checksum function in L1 Memory"
        default n
+       depends on !SMP
        help
          If enabled, the IP Checksum function is linked
          into L1 instruction memory. (less latency)
@@ -788,7 +826,7 @@ config CACHELINE_ALIGNED_L1
        bool "Locate cacheline_aligned data to L1 Data Memory"
        default y if !BF54x
        default n if BF54x
-       depends on !BF531
+       depends on !SMP && !BF531
        help
          If enabled, cacheline_aligned data is linked
          into L1 data memory. (less latency)
@@ -796,7 +834,7 @@ config CACHELINE_ALIGNED_L1
 config SYSCALL_TAB_L1
        bool "Locate Syscall Table L1 Data Memory"
        default n
-       depends on !BF531
+       depends on !SMP && !BF531
        help
          If enabled, the Syscall LUT is linked
          into L1 data memory. (less latency)
@@ -804,14 +842,35 @@ config SYSCALL_TAB_L1
 config CPLB_SWITCH_TAB_L1
        bool "Locate CPLB Switch Tables L1 Data Memory"
        default n
-       depends on !BF531
+       depends on !SMP && !BF531
        help
          If enabled, the CPLB Switch Tables are linked
          into L1 data memory. (less latency)
 
+config ICACHE_FLUSH_L1
+       bool "Locate icache flush funcs in L1 Inst Memory"
+       default y
+       help
+         If enabled, the Blackfin icache flushing functions are linked
+         into L1 instruction memory.
+
+         Note that this might be required to address anomalies, but
+         these functions are pretty small, so it shouldn't be too bad.
+         If you are using a processor affected by an anomaly, the build
+         system will double check for you and prevent it.
+
+config DCACHE_FLUSH_L1
+       bool "Locate dcache flush funcs in L1 Inst Memory"
+       default y
+       depends on !SMP
+       help
+         If enabled, the Blackfin dcache flushing functions are linked
+         into L1 instruction memory.
+
 config APP_STACK_L1
        bool "Support locating application stack in L1 Scratch Memory"
        default y
+       depends on !SMP
        help
          If enabled the application stack can be located in L1
          scratch memory (less latency).
@@ -821,7 +880,7 @@ config APP_STACK_L1
 config EXCEPTION_L1_SCRATCH
        bool "Locate exception stack in L1 Scratch Memory"
        default n
-       depends on !APP_STACK_L1
+       depends on !SMP && !APP_STACK_L1
        help
          Whenever an exception occurs, use the L1 Scratch memory for
          stack storage.  You cannot place the stacks of FLAT binaries
@@ -833,6 +892,7 @@ comment "Speed Optimizations"
 config BFIN_INS_LOWOVERHEAD
        bool "ins[bwl] low overhead, higher interrupt latency"
        default y
+       depends on !SMP
        help
          Reads on the Blackfin are speculative. In Blackfin terms, this means
          they can be interrupted at any time (even after they have been issued
@@ -875,6 +935,12 @@ config ROMKERNEL
 
 endchoice
 
+# Common code uses "ROMKERNEL" or "XIP_KERNEL", so define both
+config XIP_KERNEL
+       bool
+       default y
+       depends on ROMKERNEL
+
 source "mm/Kconfig"
 
 config BFIN_GPTIMERS
@@ -896,6 +962,12 @@ config DMA_UNCACHED_2M
        bool "Enable 2M DMA region"
 config DMA_UNCACHED_1M
        bool "Enable 1M DMA region"
+config DMA_UNCACHED_512K
+       bool "Enable 512K DMA region"
+config DMA_UNCACHED_256K
+       bool "Enable 256K DMA region"
+config DMA_UNCACHED_128K
+       bool "Enable 128K DMA region"
 config DMA_UNCACHED_NONE
        bool "Disable DMA region"
 endchoice
@@ -1106,24 +1178,6 @@ config PCI
 
 source "drivers/pci/Kconfig"
 
-config HOTPLUG
-       bool "Support for hot-pluggable device"
-         help
-         Say Y here if you want to plug devices into your computer while
-         the system is running, and be able to use them quickly.  In many
-         cases, the devices can likewise be unplugged at any time too.
-
-         One well known example of this is PCMCIA- or PC-cards, credit-card
-         size devices such as network cards, modems or hard drives which are
-         plugged into slots found on all modern laptop computers.  Another
-         example, used on modern desktops as well as laptops, is USB.
-
-         Enable HOTPLUG and build a modular kernel.  Get agent software
-         (from <http://linux-hotplug.sourceforge.net/>) and install it.
-         Then your kernel will automatically call out to a user mode "policy
-         agent" (/sbin/hotplug) to load modules and set up software needed
-         to use devices as you hotplug them.
-
 source "drivers/pcmcia/Kconfig"
 
 source "drivers/pci/hotplug/Kconfig"
@@ -1137,7 +1191,6 @@ source "fs/Kconfig.binfmt"
 endmenu
 
 menu "Power management options"
-       depends on !SMP
 
 source "kernel/power/Kconfig"
 
@@ -1179,32 +1232,6 @@ config  PM_BFIN_SLEEP
          If unsure, select "Sleep Deeper".
 endchoice
 
-config PM_WAKEUP_BY_GPIO
-       bool "Allow Wakeup from Standby by GPIO"
-       depends on PM && !BF54x
-
-config PM_WAKEUP_GPIO_NUMBER
-       int "GPIO number"
-       range 0 47
-       depends on PM_WAKEUP_BY_GPIO
-       default 2
-
-choice
-       prompt "GPIO Polarity"
-       depends on PM_WAKEUP_BY_GPIO
-       default PM_WAKEUP_GPIO_POLAR_H
-config  PM_WAKEUP_GPIO_POLAR_H
-       bool "Active High"
-config  PM_WAKEUP_GPIO_POLAR_L
-       bool "Active Low"
-config  PM_WAKEUP_GPIO_POLAR_EDGE_F
-       bool "Falling EDGE"
-config  PM_WAKEUP_GPIO_POLAR_EDGE_R
-       bool "Rising EDGE"
-config  PM_WAKEUP_GPIO_POLAR_EDGE_B
-       bool "Both EDGE"
-endchoice
-
 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
        depends on PM
 
@@ -1230,7 +1257,6 @@ config PM_BFIN_WAKE_GP
 endmenu
 
 menu "CPU Frequency scaling"
-       depends on !SMP
 
 source "drivers/cpufreq/Kconfig"