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
67 source "kernel/Kconfig.preempt"
69 menu "Blackfin Processor Options"
71 comment "Processor and Board Settings"
80 BF522 Processor Support.
85 BF523 Processor Support.
90 BF524 Processor Support.
95 BF525 Processor Support.
100 BF526 Processor Support.
105 BF527 Processor Support.
110 BF531 Processor Support.
115 BF532 Processor Support.
120 BF533 Processor Support.
125 BF534 Processor Support.
130 BF536 Processor Support.
135 BF537 Processor Support.
140 BF542 Processor Support.
145 BF544 Processor Support.
150 BF547 Processor Support.
155 BF548 Processor Support.
160 BF549 Processor Support.
165 BF561 Processor Support.
171 default BF_REV_0_1 if (BF52x || BF54x)
172 default BF_REV_0_2 if (BF534 || BF536 || BF537)
173 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF561)
177 depends on (BF52x || BF54x)
181 depends on (BF52x || BF54x)
185 depends on (BF537 || BF536 || BF534)
189 depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
193 depends on (BF561 || BF533 || BF532 || BF531)
197 depends on (BF561 || BF533 || BF532 || BF531)
209 depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
214 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
219 depends on (BF542 || BF544 || BF547 || BF548 || BF549)
222 config MEM_GENERIC_BOARD
224 depends on GENERIC_BOARD
227 config MEM_MT48LC64M4A2FB_7E
229 depends on (BFIN533_STAMP)
232 config MEM_MT48LC16M16A2TG_75
234 depends on (BFIN533_EZKIT || BFIN561_EZKIT \
235 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
236 || H8606_HVSISTEMAS || BFIN527_BLUETECHNIX_CM)
239 config MEM_MT48LC32M8A2_75
241 depends on (BFIN537_STAMP || PNAV10)
244 config MEM_MT48LC8M32B2B5_7
246 depends on (BFIN561_BLUETECHNIX_CM)
249 config MEM_MT48LC32M16A2TG_75
251 depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD)
254 source "arch/blackfin/mach-bf527/Kconfig"
255 source "arch/blackfin/mach-bf533/Kconfig"
256 source "arch/blackfin/mach-bf561/Kconfig"
257 source "arch/blackfin/mach-bf537/Kconfig"
258 source "arch/blackfin/mach-bf548/Kconfig"
260 menu "Board customizations"
263 bool "Default bootloader kernel arguments"
266 string "Initial kernel command string"
267 depends on CMDLINE_BOOL
268 default "console=ttyBF0,57600"
270 If you don't have a boot loader capable of passing a command line string
271 to the kernel, you may specify one here. As a minimum, you should specify
272 the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
275 hex "Kernel load address for booting"
277 range 0x1000 0x20000000
279 This option allows you to set the load address of the kernel.
280 This can be useful if you are on a board which has a small amount
281 of memory or you wish to reserve some memory at the beginning of
284 Note that you need to keep this value above 4k (0x1000) as this
285 memory region is used to capture NULL pointer references as well
286 as some core kernel functions.
289 hex "Kernel ROM Base"
291 range 0x20000000 0x20400000 if !(BF54x || BF561)
292 range 0x20000000 0x30000000 if (BF54x || BF561)
295 comment "Clock/PLL Setup"
298 int "Frequency of the crystal on the board in Hz"
299 default "11059200" if BFIN533_STAMP
300 default "27000000" if BFIN533_EZKIT
301 default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD)
302 default "30000000" if BFIN561_EZKIT
303 default "24576000" if PNAV10
304 default "10000000" if BFIN532_IP0X
306 The frequency of CLKIN crystal oscillator on the board in Hz.
307 Warning: This value should match the crystal on the board. Otherwise,
308 peripherals won't work properly.
310 config BFIN_KERNEL_CLOCK
311 bool "Re-program Clocks while Kernel boots?"
314 This option decides if kernel clocks are re-programed from the
315 bootloader settings. If the clocks are not set, the SDRAM settings
316 are also not changed, and the Bootloader does 100% of the hardware
321 depends on BFIN_KERNEL_CLOCK
326 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
329 If this is set the clock will be divided by 2, before it goes to the PLL.
333 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
335 default "22" if BFIN533_EZKIT
336 default "45" if BFIN533_STAMP
337 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM)
338 default "22" if BFIN533_BLUETECHNIX_CM
339 default "20" if (BFIN537_BLUETECHNIX_CM || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
340 default "20" if BFIN561_EZKIT
341 default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD)
343 This controls the frequency of the on-chip PLL. This can be between 1 and 64.
344 PLL Frequency = (Crystal Frequency) * (this setting)
347 prompt "Core Clock Divider"
348 depends on BFIN_KERNEL_CLOCK
351 This sets the frequency of the core. It can be 1, 2, 4 or 8
352 Core Frequency = (PLL frequency) / (this setting)
368 int "System Clock Divider"
369 depends on BFIN_KERNEL_CLOCK
373 This sets the frequency of the system clock (including SDRAM or DDR).
374 This can be between 1 and 15
375 System Clock = (PLL frequency) / (this setting)
378 prompt "DDR SDRAM Chip Type"
379 depends on BFIN_KERNEL_CLOCK
381 default MEM_MT46V32M16_5B
383 config MEM_MT46V32M16_6T
386 config MEM_MT46V32M16_5B
391 int "Max SDRAM Memory Size in MBytes"
395 This is the max memory size that the kernel will create CPLB
396 tables for. Your system will not be able to handle any more.
399 # Max & Min Speeds for various Chips
403 default 600000000 if BF522
404 default 400000000 if BF523
405 default 400000000 if BF524
406 default 600000000 if BF525
407 default 400000000 if BF526
408 default 600000000 if BF527
409 default 400000000 if BF531
410 default 400000000 if BF532
411 default 750000000 if BF533
412 default 500000000 if BF534
413 default 400000000 if BF536
414 default 600000000 if BF537
415 default 533333333 if BF538
416 default 533333333 if BF539
417 default 600000000 if BF542
418 default 533333333 if BF544
419 default 600000000 if BF547
420 default 600000000 if BF548
421 default 533333333 if BF549
422 default 600000000 if BF561
436 comment "Kernel Timer/Scheduler"
438 source kernel/Kconfig.hz
444 config GENERIC_CLOCKEVENTS
445 bool "Generic clock events"
446 depends on GENERIC_TIME
449 config CYCLES_CLOCKSOURCE
450 bool "Use 'CYCLES' as a clocksource (EXPERIMENTAL)"
451 depends on EXPERIMENTAL
452 depends on GENERIC_CLOCKEVENTS
453 depends on !BFIN_SCRATCH_REG_CYCLES
456 If you say Y here, you will enable support for using the 'cycles'
457 registers as a clock source. Doing so means you will be unable to
458 safely write to the 'cycles' register during runtime. You will
459 still be able to read it (such as for performance monitoring), but
460 writing the registers will most likely crash the kernel.
462 source kernel/time/Kconfig
467 prompt "Blackfin Exception Scratch Register"
468 default BFIN_SCRATCH_REG_RETN
470 Select the resource to reserve for the Exception handler:
471 - RETN: Non-Maskable Interrupt (NMI)
472 - RETE: Exception Return (JTAG/ICE)
473 - CYCLES: Performance counter
475 If you are unsure, please select "RETN".
477 config BFIN_SCRATCH_REG_RETN
480 Use the RETN register in the Blackfin exception handler
481 as a stack scratch register. This means you cannot
482 safely use NMI on the Blackfin while running Linux, but
483 you can debug the system with a JTAG ICE and use the
484 CYCLES performance registers.
486 If you are unsure, please select "RETN".
488 config BFIN_SCRATCH_REG_RETE
491 Use the RETE register in the Blackfin exception handler
492 as a stack scratch register. This means you cannot
493 safely use a JTAG ICE while debugging a Blackfin board,
494 but you can safely use the CYCLES performance registers
497 If you are unsure, please select "RETN".
499 config BFIN_SCRATCH_REG_CYCLES
502 Use the CYCLES register in the Blackfin exception handler
503 as a stack scratch register. This means you cannot
504 safely use the CYCLES performance registers on a Blackfin
505 board at anytime, but you can debug the system with a JTAG
508 If you are unsure, please select "RETN".
515 menu "Blackfin Kernel Optimizations"
517 comment "Memory Optimizations"
520 bool "Locate interrupt entry code in L1 Memory"
523 If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
524 into L1 instruction memory. (less latency)
526 config EXCPT_IRQ_SYSC_L1
527 bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
530 If enabled, the entire ASM lowlevel exception and interrupt entry code
531 (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
535 bool "Locate frequently called do_irq dispatcher function in L1 Memory"
538 If enabled, the frequently called do_irq dispatcher function is linked
539 into L1 instruction memory. (less latency)
541 config CORE_TIMER_IRQ_L1
542 bool "Locate frequently called timer_interrupt() function in L1 Memory"
545 If enabled, the frequently called timer_interrupt() function is linked
546 into L1 instruction memory. (less latency)
549 bool "Locate frequently idle function in L1 Memory"
552 If enabled, the frequently called idle function is linked
553 into L1 instruction memory. (less latency)
556 bool "Locate kernel schedule function in L1 Memory"
559 If enabled, the frequently called kernel schedule is linked
560 into L1 instruction memory. (less latency)
562 config ARITHMETIC_OPS_L1
563 bool "Locate kernel owned arithmetic functions in L1 Memory"
566 If enabled, arithmetic functions are linked
567 into L1 instruction memory. (less latency)
570 bool "Locate access_ok function in L1 Memory"
573 If enabled, the access_ok function is linked
574 into L1 instruction memory. (less latency)
577 bool "Locate memset function in L1 Memory"
580 If enabled, the memset function is linked
581 into L1 instruction memory. (less latency)
584 bool "Locate memcpy function in L1 Memory"
587 If enabled, the memcpy function is linked
588 into L1 instruction memory. (less latency)
590 config SYS_BFIN_SPINLOCK_L1
591 bool "Locate sys_bfin_spinlock function in L1 Memory"
594 If enabled, sys_bfin_spinlock function is linked
595 into L1 instruction memory. (less latency)
597 config IP_CHECKSUM_L1
598 bool "Locate IP Checksum function in L1 Memory"
601 If enabled, the IP Checksum function is linked
602 into L1 instruction memory. (less latency)
604 config CACHELINE_ALIGNED_L1
605 bool "Locate cacheline_aligned data to L1 Data Memory"
610 If enabled, cacheline_anligned data is linked
611 into L1 data memory. (less latency)
613 config SYSCALL_TAB_L1
614 bool "Locate Syscall Table L1 Data Memory"
618 If enabled, the Syscall LUT is linked
619 into L1 data memory. (less latency)
621 config CPLB_SWITCH_TAB_L1
622 bool "Locate CPLB Switch Tables L1 Data Memory"
626 If enabled, the CPLB Switch Tables are linked
627 into L1 data memory. (less latency)
630 bool "Support locating application stack in L1 Scratch Memory"
633 If enabled the application stack can be located in L1
634 scratch memory (less latency).
636 Currently only works with FLAT binaries.
638 comment "Speed Optimizations"
639 config BFIN_INS_LOWOVERHEAD
640 bool "ins[bwl] low overhead, higher interrupt latency"
643 Reads on the Blackfin are speculative. In Blackfin terms, this means
644 they can be interrupted at any time (even after they have been issued
645 on to the external bus), and re-issued after the interrupt occurs.
646 For memory - this is not a big deal, since memory does not change if
649 If a FIFO is sitting on the end of the read, it will see two reads,
650 when the core only sees one since the FIFO receives both the read
651 which is cancelled (and not delivered to the core) and the one which
652 is re-issued (which is delivered to the core).
654 To solve this, interrupts are turned off before reads occur to
655 I/O space. This option controls which the overhead/latency of
656 controlling interrupts during this time
657 "n" turns interrupts off every read
658 (higher overhead, but lower interrupt latency)
659 "y" turns interrupts off every loop
660 (low overhead, but longer interrupt latency)
662 default behavior is to leave this set to on (type "Y"). If you are experiencing
663 interrupt latency issues, it is safe and OK to turn this off.
669 prompt "Kernel executes from"
671 Choose the memory type that the kernel will be running in.
676 The kernel will be resident in RAM when running.
681 The kernel will be resident in FLASH/ROM when running.
688 tristate "Enable Blackfin General Purpose Timers API"
691 Enable support for the General Purpose Timers API. If you
694 To compile this driver as a module, choose M here: the module
695 will be called gptimers.ko.
698 bool "Enable DMA Support"
699 depends on (BF52x || BF53x || BF561 || BF54x)
702 DMA driver for BF5xx.
705 prompt "Uncached SDRAM region"
706 default DMA_UNCACHED_1M
707 depends on BFIN_DMA_5XX
708 config DMA_UNCACHED_4M
709 bool "Enable 4M DMA region"
710 config DMA_UNCACHED_2M
711 bool "Enable 2M DMA region"
712 config DMA_UNCACHED_1M
713 bool "Enable 1M DMA region"
714 config DMA_UNCACHED_NONE
715 bool "Disable DMA region"
719 comment "Cache Support"
724 config BFIN_DCACHE_BANKA
725 bool "Enable only 16k BankA DCACHE - BankB is SRAM"
726 depends on BFIN_DCACHE && !BF531
728 config BFIN_ICACHE_LOCK
729 bool "Enable Instruction Cache Locking"
733 depends on BFIN_DCACHE
739 Cached data will be written back to SDRAM only when needed.
740 This can give a nice increase in performance, but beware of
741 broken drivers that do not properly invalidate/flush their
744 Write Through Policy:
745 Cached data will always be written back to SDRAM when the
746 cache is updated. This is a completely safe setting, but
747 performance is worse than Write Back.
749 If you are unsure of the options and you want to be safe,
750 then go with Write Through.
756 Cached data will be written back to SDRAM only when needed.
757 This can give a nice increase in performance, but beware of
758 broken drivers that do not properly invalidate/flush their
761 Write Through Policy:
762 Cached data will always be written back to SDRAM when the
763 cache is updated. This is a completely safe setting, but
764 performance is worse than Write Back.
766 If you are unsure of the options and you want to be safe,
767 then go with Write Through.
772 bool "Enable the memory protection unit (EXPERIMENTAL)"
775 Use the processor's MPU to protect applications from accessing
776 memory they do not own. This comes at a performance penalty
777 and is recommended only for debugging.
779 comment "Asynchonous Memory Configuration"
781 menu "EBIU_AMGCTL Global Control"
787 bool "DMA has priority over core for ext. accesses"
792 bool "Bank 0 16 bit packing enable"
797 bool "Bank 1 16 bit packing enable"
802 bool "Bank 2 16 bit packing enable"
807 bool "Bank 3 16 bit packing enable"
811 prompt"Enable Asynchonous Memory Banks"
815 bool "Disable All Banks"
821 bool "Enable Bank 0 & 1"
823 config C_AMBEN_B0_B1_B2
824 bool "Enable Bank 0 & 1 & 2"
827 bool "Enable All Banks"
831 menu "EBIU_AMBCTL Control"
839 default 0x5558 if BF54x
850 config EBIU_MBSCTLVAL
851 hex "EBIU Bank Select Control Register"
856 hex "Flash Memory Mode Control Register"
861 hex "Flash Memory Bank Control Register"
866 #############################################################################
867 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
875 source "drivers/pci/Kconfig"
878 bool "Support for hot-pluggable device"
880 Say Y here if you want to plug devices into your computer while
881 the system is running, and be able to use them quickly. In many
882 cases, the devices can likewise be unplugged at any time too.
884 One well known example of this is PCMCIA- or PC-cards, credit-card
885 size devices such as network cards, modems or hard drives which are
886 plugged into slots found on all modern laptop computers. Another
887 example, used on modern desktops as well as laptops, is USB.
889 Enable HOTPLUG and build a modular kernel. Get agent software
890 (from <http://linux-hotplug.sourceforge.net/>) and install it.
891 Then your kernel will automatically call out to a user mode "policy
892 agent" (/sbin/hotplug) to load modules and set up software needed
893 to use devices as you hotplug them.
895 source "drivers/pcmcia/Kconfig"
897 source "drivers/pci/hotplug/Kconfig"
901 menu "Executable file formats"
903 source "fs/Kconfig.binfmt"
907 menu "Power management options"
908 source "kernel/power/Kconfig"
910 config ARCH_SUSPEND_POSSIBLE
915 prompt "Standby Power Saving Mode"
917 default PM_BFIN_SLEEP_DEEPER
918 config PM_BFIN_SLEEP_DEEPER
921 Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
922 power dissipation by disabling the clock to the processor core (CCLK).
923 Furthermore, Standby sets the internal power supply voltage (VDDINT)
924 to 0.85 V to provide the greatest power savings, while preserving the
926 The PLL and system clock (SCLK) continue to operate at a very low
927 frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
928 the SDRAM is put into Self Refresh Mode. Typically an external event
929 such as GPIO interrupt or RTC activity wakes up the processor.
930 Various Peripherals such as UART, SPORT, PPI may not function as
931 normal during Sleep Deeper, due to the reduced SCLK frequency.
932 When in the sleep mode, system DMA access to L1 memory is not supported.
934 If unsure, select "Sleep Deeper".
939 Sleep Mode (High Power Savings) - The sleep mode reduces power
940 dissipation by disabling the clock to the processor core (CCLK).
941 The PLL and system clock (SCLK), however, continue to operate in
942 this mode. Typically an external event or RTC activity will wake
943 up the processor. When in the sleep mode, system DMA access to L1
944 memory is not supported.
946 If unsure, select "Sleep Deeper".
949 config PM_WAKEUP_BY_GPIO
950 bool "Allow Wakeup from Standby by GPIO"
952 config PM_WAKEUP_GPIO_NUMBER
955 depends on PM_WAKEUP_BY_GPIO
956 default 2 if BFIN537_STAMP
959 prompt "GPIO Polarity"
960 depends on PM_WAKEUP_BY_GPIO
961 default PM_WAKEUP_GPIO_POLAR_H
962 config PM_WAKEUP_GPIO_POLAR_H
964 config PM_WAKEUP_GPIO_POLAR_L
966 config PM_WAKEUP_GPIO_POLAR_EDGE_F
968 config PM_WAKEUP_GPIO_POLAR_EDGE_R
970 config PM_WAKEUP_GPIO_POLAR_EDGE_B
974 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
977 config PM_BFIN_WAKE_PH6
978 bool "Allow Wake-Up from on-chip PHY or PH6 GP"
979 depends on PM && (BF52x || BF534 || BF536 || BF537)
982 Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
984 config PM_BFIN_WAKE_GP
985 bool "Allow Wake-Up from GPIOs"
986 depends on PM && BF54x
989 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
992 menu "CPU Frequency scaling"
994 source "drivers/cpufreq/Kconfig"
997 bool "CPU Voltage scaling"
998 depends on EXPERIMENTAL
1002 Say Y here if you want CPU voltage scaling according to the CPU frequency.
1003 This option violates the PLL BYPASS recommendation in the Blackfin Processor
1004 manuals. There is a theoretical risk that during VDDINT transitions
1009 source "net/Kconfig"
1011 source "drivers/Kconfig"
1015 source "arch/blackfin/Kconfig.debug"
1017 source "security/Kconfig"
1019 source "crypto/Kconfig"
1021 source "lib/Kconfig"