2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Blackfin Kernel Configuration"
16 config RWSEM_GENERIC_SPINLOCK
20 config RWSEM_XCHGADD_ALGORITHM
34 config GENERIC_FIND_NEXT_BIT
38 config GENERIC_HWEIGHT
42 config GENERIC_HARDIRQS
46 config GENERIC_IRQ_PROBE
54 config FORCE_MAX_ZONEORDER
58 config GENERIC_CALIBRATE_DELAY
68 source "kernel/Kconfig.preempt"
70 source "kernel/Kconfig.freezer"
72 menu "Blackfin Processor Options"
74 comment "Processor and Board Settings"
83 BF512 Processor Support.
88 BF514 Processor Support.
93 BF516 Processor Support.
98 BF518 Processor Support.
103 BF522 Processor Support.
108 BF523 Processor Support.
113 BF524 Processor Support.
118 BF525 Processor Support.
123 BF526 Processor Support.
128 BF527 Processor Support.
133 BF531 Processor Support.
138 BF532 Processor Support.
143 BF533 Processor Support.
148 BF534 Processor Support.
153 BF536 Processor Support.
158 BF537 Processor Support.
163 BF538 Processor Support.
168 BF539 Processor Support.
173 BF542 Processor Support.
178 BF544 Processor Support.
183 BF547 Processor Support.
188 BF548 Processor Support.
193 BF549 Processor Support.
198 BF561 Processor Support.
204 default 0 if (BF51x || BF52x || BF54x)
205 default 2 if (BF537 || BF536 || BF534)
206 default 3 if (BF561 ||BF533 || BF532 || BF531)
207 default 4 if (BF538 || BF539)
211 default 2 if (BF51x || BF52x || BF54x)
212 default 3 if (BF537 || BF536 || BF534)
213 default 5 if (BF561 || BF538 || BF539)
214 default 6 if (BF533 || BF532 || BF531)
218 default BF_REV_0_1 if (BF51x || BF52x || BF54x)
219 default BF_REV_0_2 if (BF534 || BF536 || BF537)
220 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF561)
224 depends on (BF51x || BF52x || BF54x)
228 depends on (BF52x || BF54x)
232 depends on (BF52x || BF537 || BF536 || BF534 || BF54x)
236 depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
240 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
244 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
248 depends on (BF533 || BF532 || BF531)
260 depends on (BF512 || BF514 || BF516 || BF518)
265 depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
270 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
275 depends on (BF542 || BF544 || BF547 || BF548 || BF549)
278 config MEM_GENERIC_BOARD
280 depends on GENERIC_BOARD
283 config MEM_MT48LC64M4A2FB_7E
285 depends on (BFIN533_STAMP)
288 config MEM_MT48LC16M16A2TG_75
290 depends on (BFIN533_EZKIT || BFIN561_EZKIT \
291 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
292 || H8606_HVSISTEMAS || BFIN527_BLUETECHNIX_CM)
295 config MEM_MT48LC32M8A2_75
297 depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
300 config MEM_MT48LC8M32B2B5_7
302 depends on (BFIN561_BLUETECHNIX_CM)
305 config MEM_MT48LC32M16A2TG_75
307 depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD)
310 source "arch/blackfin/mach-bf518/Kconfig"
311 source "arch/blackfin/mach-bf527/Kconfig"
312 source "arch/blackfin/mach-bf533/Kconfig"
313 source "arch/blackfin/mach-bf561/Kconfig"
314 source "arch/blackfin/mach-bf537/Kconfig"
315 source "arch/blackfin/mach-bf538/Kconfig"
316 source "arch/blackfin/mach-bf548/Kconfig"
318 menu "Board customizations"
321 bool "Default bootloader kernel arguments"
324 string "Initial kernel command string"
325 depends on CMDLINE_BOOL
326 default "console=ttyBF0,57600"
328 If you don't have a boot loader capable of passing a command line string
329 to the kernel, you may specify one here. As a minimum, you should specify
330 the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
333 hex "Kernel load address for booting"
335 range 0x1000 0x20000000
337 This option allows you to set the load address of the kernel.
338 This can be useful if you are on a board which has a small amount
339 of memory or you wish to reserve some memory at the beginning of
342 Note that you need to keep this value above 4k (0x1000) as this
343 memory region is used to capture NULL pointer references as well
344 as some core kernel functions.
347 hex "Kernel ROM Base"
349 range 0x20000000 0x20400000 if !(BF54x || BF561)
350 range 0x20000000 0x30000000 if (BF54x || BF561)
353 comment "Clock/PLL Setup"
356 int "Frequency of the crystal on the board in Hz"
357 default "11059200" if BFIN533_STAMP
358 default "27000000" if BFIN533_EZKIT
359 default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN538_EZKIT || BFIN518F-EZBRD)
360 default "30000000" if BFIN561_EZKIT
361 default "24576000" if PNAV10
362 default "10000000" if BFIN532_IP0X
364 The frequency of CLKIN crystal oscillator on the board in Hz.
365 Warning: This value should match the crystal on the board. Otherwise,
366 peripherals won't work properly.
368 config BFIN_KERNEL_CLOCK
369 bool "Re-program Clocks while Kernel boots?"
372 This option decides if kernel clocks are re-programed from the
373 bootloader settings. If the clocks are not set, the SDRAM settings
374 are also not changed, and the Bootloader does 100% of the hardware
379 depends on BFIN_KERNEL_CLOCK
384 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
387 If this is set the clock will be divided by 2, before it goes to the PLL.
391 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
393 default "22" if BFIN533_EZKIT
394 default "45" if BFIN533_STAMP
395 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
396 default "22" if BFIN533_BLUETECHNIX_CM
397 default "20" if (BFIN537_BLUETECHNIX_CM || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
398 default "20" if BFIN561_EZKIT
399 default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
401 This controls the frequency of the on-chip PLL. This can be between 1 and 64.
402 PLL Frequency = (Crystal Frequency) * (this setting)
405 prompt "Core Clock Divider"
406 depends on BFIN_KERNEL_CLOCK
409 This sets the frequency of the core. It can be 1, 2, 4 or 8
410 Core Frequency = (PLL frequency) / (this setting)
426 int "System Clock Divider"
427 depends on BFIN_KERNEL_CLOCK
431 This sets the frequency of the system clock (including SDRAM or DDR).
432 This can be between 1 and 15
433 System Clock = (PLL frequency) / (this setting)
436 prompt "DDR SDRAM Chip Type"
437 depends on BFIN_KERNEL_CLOCK
439 default MEM_MT46V32M16_5B
441 config MEM_MT46V32M16_6T
444 config MEM_MT46V32M16_5B
449 int "Max SDRAM Memory Size in MBytes"
453 This is the max memory size that the kernel will create CPLB
454 tables for. Your system will not be able to handle any more.
457 # Max & Min Speeds for various Chips
461 default 400000000 if BF512
462 default 400000000 if BF514
463 default 400000000 if BF516
464 default 400000000 if BF518
465 default 600000000 if BF522
466 default 400000000 if BF523
467 default 400000000 if BF524
468 default 600000000 if BF525
469 default 400000000 if BF526
470 default 600000000 if BF527
471 default 400000000 if BF531
472 default 400000000 if BF532
473 default 750000000 if BF533
474 default 500000000 if BF534
475 default 400000000 if BF536
476 default 600000000 if BF537
477 default 533333333 if BF538
478 default 533333333 if BF539
479 default 600000000 if BF542
480 default 533333333 if BF544
481 default 600000000 if BF547
482 default 600000000 if BF548
483 default 533333333 if BF549
484 default 600000000 if BF561
498 comment "Kernel Timer/Scheduler"
500 source kernel/Kconfig.hz
506 config GENERIC_CLOCKEVENTS
507 bool "Generic clock events"
508 depends on GENERIC_TIME
511 config CYCLES_CLOCKSOURCE
512 bool "Use 'CYCLES' as a clocksource (EXPERIMENTAL)"
513 depends on EXPERIMENTAL
514 depends on GENERIC_CLOCKEVENTS
515 depends on !BFIN_SCRATCH_REG_CYCLES
518 If you say Y here, you will enable support for using the 'cycles'
519 registers as a clock source. Doing so means you will be unable to
520 safely write to the 'cycles' register during runtime. You will
521 still be able to read it (such as for performance monitoring), but
522 writing the registers will most likely crash the kernel.
524 source kernel/time/Kconfig
529 prompt "Blackfin Exception Scratch Register"
530 default BFIN_SCRATCH_REG_RETN
532 Select the resource to reserve for the Exception handler:
533 - RETN: Non-Maskable Interrupt (NMI)
534 - RETE: Exception Return (JTAG/ICE)
535 - CYCLES: Performance counter
537 If you are unsure, please select "RETN".
539 config BFIN_SCRATCH_REG_RETN
542 Use the RETN register in the Blackfin exception handler
543 as a stack scratch register. This means you cannot
544 safely use NMI on the Blackfin while running Linux, but
545 you can debug the system with a JTAG ICE and use the
546 CYCLES performance registers.
548 If you are unsure, please select "RETN".
550 config BFIN_SCRATCH_REG_RETE
553 Use the RETE register in the Blackfin exception handler
554 as a stack scratch register. This means you cannot
555 safely use a JTAG ICE while debugging a Blackfin board,
556 but you can safely use the CYCLES performance registers
559 If you are unsure, please select "RETN".
561 config BFIN_SCRATCH_REG_CYCLES
564 Use the CYCLES register in the Blackfin exception handler
565 as a stack scratch register. This means you cannot
566 safely use the CYCLES performance registers on a Blackfin
567 board at anytime, but you can debug the system with a JTAG
570 If you are unsure, please select "RETN".
577 menu "Blackfin Kernel Optimizations"
579 comment "Memory Optimizations"
582 bool "Locate interrupt entry code in L1 Memory"
585 If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
586 into L1 instruction memory. (less latency)
588 config EXCPT_IRQ_SYSC_L1
589 bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
592 If enabled, the entire ASM lowlevel exception and interrupt entry code
593 (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
597 bool "Locate frequently called do_irq dispatcher function in L1 Memory"
600 If enabled, the frequently called do_irq dispatcher function is linked
601 into L1 instruction memory. (less latency)
603 config CORE_TIMER_IRQ_L1
604 bool "Locate frequently called timer_interrupt() function in L1 Memory"
607 If enabled, the frequently called timer_interrupt() function is linked
608 into L1 instruction memory. (less latency)
611 bool "Locate frequently idle function in L1 Memory"
614 If enabled, the frequently called idle function is linked
615 into L1 instruction memory. (less latency)
618 bool "Locate kernel schedule function in L1 Memory"
621 If enabled, the frequently called kernel schedule is linked
622 into L1 instruction memory. (less latency)
624 config ARITHMETIC_OPS_L1
625 bool "Locate kernel owned arithmetic functions in L1 Memory"
628 If enabled, arithmetic functions are linked
629 into L1 instruction memory. (less latency)
632 bool "Locate access_ok function in L1 Memory"
635 If enabled, the access_ok function is linked
636 into L1 instruction memory. (less latency)
639 bool "Locate memset function in L1 Memory"
642 If enabled, the memset function is linked
643 into L1 instruction memory. (less latency)
646 bool "Locate memcpy function in L1 Memory"
649 If enabled, the memcpy function is linked
650 into L1 instruction memory. (less latency)
652 config SYS_BFIN_SPINLOCK_L1
653 bool "Locate sys_bfin_spinlock function in L1 Memory"
656 If enabled, sys_bfin_spinlock function is linked
657 into L1 instruction memory. (less latency)
659 config IP_CHECKSUM_L1
660 bool "Locate IP Checksum function in L1 Memory"
663 If enabled, the IP Checksum function is linked
664 into L1 instruction memory. (less latency)
666 config CACHELINE_ALIGNED_L1
667 bool "Locate cacheline_aligned data to L1 Data Memory"
672 If enabled, cacheline_anligned data is linked
673 into L1 data memory. (less latency)
675 config SYSCALL_TAB_L1
676 bool "Locate Syscall Table L1 Data Memory"
680 If enabled, the Syscall LUT is linked
681 into L1 data memory. (less latency)
683 config CPLB_SWITCH_TAB_L1
684 bool "Locate CPLB Switch Tables L1 Data Memory"
688 If enabled, the CPLB Switch Tables are linked
689 into L1 data memory. (less latency)
692 bool "Support locating application stack in L1 Scratch Memory"
695 If enabled the application stack can be located in L1
696 scratch memory (less latency).
698 Currently only works with FLAT binaries.
700 config EXCEPTION_L1_SCRATCH
701 bool "Locate exception stack in L1 Scratch Memory"
703 depends on !APP_STACK_L1 && !SYSCALL_TAB_L1
705 Whenever an exception occurs, use the L1 Scratch memory for
706 stack storage. You cannot place the stacks of FLAT binaries
707 in L1 when using this option.
709 If you don't use L1 Scratch, then you should say Y here.
711 comment "Speed Optimizations"
712 config BFIN_INS_LOWOVERHEAD
713 bool "ins[bwl] low overhead, higher interrupt latency"
716 Reads on the Blackfin are speculative. In Blackfin terms, this means
717 they can be interrupted at any time (even after they have been issued
718 on to the external bus), and re-issued after the interrupt occurs.
719 For memory - this is not a big deal, since memory does not change if
722 If a FIFO is sitting on the end of the read, it will see two reads,
723 when the core only sees one since the FIFO receives both the read
724 which is cancelled (and not delivered to the core) and the one which
725 is re-issued (which is delivered to the core).
727 To solve this, interrupts are turned off before reads occur to
728 I/O space. This option controls which the overhead/latency of
729 controlling interrupts during this time
730 "n" turns interrupts off every read
731 (higher overhead, but lower interrupt latency)
732 "y" turns interrupts off every loop
733 (low overhead, but longer interrupt latency)
735 default behavior is to leave this set to on (type "Y"). If you are experiencing
736 interrupt latency issues, it is safe and OK to turn this off.
742 prompt "Kernel executes from"
744 Choose the memory type that the kernel will be running in.
749 The kernel will be resident in RAM when running.
754 The kernel will be resident in FLASH/ROM when running.
761 tristate "Enable Blackfin General Purpose Timers API"
764 Enable support for the General Purpose Timers API. If you
767 To compile this driver as a module, choose M here: the module
768 will be called gptimers.ko.
771 bool "Enable DMA Support"
774 DMA driver for Blackfin parts.
777 prompt "Uncached DMA region"
778 default DMA_UNCACHED_1M
779 depends on BFIN_DMA_5XX
780 config DMA_UNCACHED_4M
781 bool "Enable 4M DMA region"
782 config DMA_UNCACHED_2M
783 bool "Enable 2M DMA region"
784 config DMA_UNCACHED_1M
785 bool "Enable 1M DMA region"
786 config DMA_UNCACHED_NONE
787 bool "Disable DMA region"
791 comment "Cache Support"
796 config BFIN_DCACHE_BANKA
797 bool "Enable only 16k BankA DCACHE - BankB is SRAM"
798 depends on BFIN_DCACHE && !BF531
800 config BFIN_ICACHE_LOCK
801 bool "Enable Instruction Cache Locking"
805 depends on BFIN_DCACHE
811 Cached data will be written back to SDRAM only when needed.
812 This can give a nice increase in performance, but beware of
813 broken drivers that do not properly invalidate/flush their
816 Write Through Policy:
817 Cached data will always be written back to SDRAM when the
818 cache is updated. This is a completely safe setting, but
819 performance is worse than Write Back.
821 If you are unsure of the options and you want to be safe,
822 then go with Write Through.
828 Cached data will be written back to SDRAM only when needed.
829 This can give a nice increase in performance, but beware of
830 broken drivers that do not properly invalidate/flush their
833 Write Through Policy:
834 Cached data will always be written back to SDRAM when the
835 cache is updated. This is a completely safe setting, but
836 performance is worse than Write Back.
838 If you are unsure of the options and you want to be safe,
839 then go with Write Through.
843 config BFIN_L2_CACHEABLE
845 depends on (BFIN_DCACHE || BFIN_ICACHE) && (BF54x || BF561)
848 Select to make L2 SRAM cacheable in L1 data and instruction cache.
851 bool "Enable the memory protection unit (EXPERIMENTAL)"
854 Use the processor's MPU to protect applications from accessing
855 memory they do not own. This comes at a performance penalty
856 and is recommended only for debugging.
858 comment "Asynchonous Memory Configuration"
860 menu "EBIU_AMGCTL Global Control"
866 bool "DMA has priority over core for ext. accesses"
871 bool "Bank 0 16 bit packing enable"
876 bool "Bank 1 16 bit packing enable"
881 bool "Bank 2 16 bit packing enable"
886 bool "Bank 3 16 bit packing enable"
890 prompt"Enable Asynchonous Memory Banks"
894 bool "Disable All Banks"
900 bool "Enable Bank 0 & 1"
902 config C_AMBEN_B0_B1_B2
903 bool "Enable Bank 0 & 1 & 2"
906 bool "Enable All Banks"
910 menu "EBIU_AMBCTL Control"
918 default 0x5558 if BF54x
929 config EBIU_MBSCTLVAL
930 hex "EBIU Bank Select Control Register"
935 hex "Flash Memory Mode Control Register"
940 hex "Flash Memory Bank Control Register"
945 #############################################################################
946 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
954 source "drivers/pci/Kconfig"
957 bool "Support for hot-pluggable device"
959 Say Y here if you want to plug devices into your computer while
960 the system is running, and be able to use them quickly. In many
961 cases, the devices can likewise be unplugged at any time too.
963 One well known example of this is PCMCIA- or PC-cards, credit-card
964 size devices such as network cards, modems or hard drives which are
965 plugged into slots found on all modern laptop computers. Another
966 example, used on modern desktops as well as laptops, is USB.
968 Enable HOTPLUG and build a modular kernel. Get agent software
969 (from <http://linux-hotplug.sourceforge.net/>) and install it.
970 Then your kernel will automatically call out to a user mode "policy
971 agent" (/sbin/hotplug) to load modules and set up software needed
972 to use devices as you hotplug them.
974 source "drivers/pcmcia/Kconfig"
976 source "drivers/pci/hotplug/Kconfig"
980 menu "Executable file formats"
982 source "fs/Kconfig.binfmt"
986 menu "Power management options"
987 source "kernel/power/Kconfig"
989 config ARCH_SUSPEND_POSSIBLE
994 prompt "Standby Power Saving Mode"
996 default PM_BFIN_SLEEP_DEEPER
997 config PM_BFIN_SLEEP_DEEPER
1000 Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1001 power dissipation by disabling the clock to the processor core (CCLK).
1002 Furthermore, Standby sets the internal power supply voltage (VDDINT)
1003 to 0.85 V to provide the greatest power savings, while preserving the
1005 The PLL and system clock (SCLK) continue to operate at a very low
1006 frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1007 the SDRAM is put into Self Refresh Mode. Typically an external event
1008 such as GPIO interrupt or RTC activity wakes up the processor.
1009 Various Peripherals such as UART, SPORT, PPI may not function as
1010 normal during Sleep Deeper, due to the reduced SCLK frequency.
1011 When in the sleep mode, system DMA access to L1 memory is not supported.
1013 If unsure, select "Sleep Deeper".
1015 config PM_BFIN_SLEEP
1018 Sleep Mode (High Power Savings) - The sleep mode reduces power
1019 dissipation by disabling the clock to the processor core (CCLK).
1020 The PLL and system clock (SCLK), however, continue to operate in
1021 this mode. Typically an external event or RTC activity will wake
1022 up the processor. When in the sleep mode, system DMA access to L1
1023 memory is not supported.
1025 If unsure, select "Sleep Deeper".
1028 config PM_WAKEUP_BY_GPIO
1029 bool "Allow Wakeup from Standby by GPIO"
1031 config PM_WAKEUP_GPIO_NUMBER
1034 depends on PM_WAKEUP_BY_GPIO
1035 default 2 if BFIN537_STAMP
1038 prompt "GPIO Polarity"
1039 depends on PM_WAKEUP_BY_GPIO
1040 default PM_WAKEUP_GPIO_POLAR_H
1041 config PM_WAKEUP_GPIO_POLAR_H
1043 config PM_WAKEUP_GPIO_POLAR_L
1045 config PM_WAKEUP_GPIO_POLAR_EDGE_F
1047 config PM_WAKEUP_GPIO_POLAR_EDGE_R
1049 config PM_WAKEUP_GPIO_POLAR_EDGE_B
1053 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1056 config PM_BFIN_WAKE_PH6
1057 bool "Allow Wake-Up from on-chip PHY or PH6 GP"
1058 depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
1061 Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1063 config PM_BFIN_WAKE_GP
1064 bool "Allow Wake-Up from GPIOs"
1065 depends on PM && BF54x
1068 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1071 menu "CPU Frequency scaling"
1073 source "drivers/cpufreq/Kconfig"
1076 bool "CPU Voltage scaling"
1077 depends on EXPERIMENTAL
1081 Say Y here if you want CPU voltage scaling according to the CPU frequency.
1082 This option violates the PLL BYPASS recommendation in the Blackfin Processor
1083 manuals. There is a theoretical risk that during VDDINT transitions
1088 source "net/Kconfig"
1090 source "drivers/Kconfig"
1094 source "arch/blackfin/Kconfig.debug"
1096 source "security/Kconfig"
1098 source "crypto/Kconfig"
1100 source "lib/Kconfig"