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 0 if (BF52x || BF54x)
172 default 2 if (BF537 || BF536 || BF534)
173 default 3 if (BF561 ||BF533 || BF532 || BF531)
177 default 2 if (BF52x || BF54x)
178 default 3 if (BF537 || BF536 || BF534)
180 default 6 if (BF533 || BF532 || BF531)
184 default BF_REV_0_1 if (BF52x || BF54x)
185 default BF_REV_0_2 if (BF534 || BF536 || BF537)
186 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF561)
190 depends on (BF52x || BF54x)
194 depends on (BF52x || BF54x)
198 depends on (BF52x || BF537 || BF536 || BF534 || BF54x)
202 depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
206 depends on (BF561 || BF533 || BF532 || BF531)
210 depends on (BF561 || BF533 || BF532 || BF531)
214 depends on (BF533 || BF532 || BF531)
226 depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
231 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
236 depends on (BF542 || BF544 || BF547 || BF548 || BF549)
239 config MEM_GENERIC_BOARD
241 depends on GENERIC_BOARD
244 config MEM_MT48LC64M4A2FB_7E
246 depends on (BFIN533_STAMP)
249 config MEM_MT48LC16M16A2TG_75
251 depends on (BFIN533_EZKIT || BFIN561_EZKIT \
252 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
253 || H8606_HVSISTEMAS || BFIN527_BLUETECHNIX_CM)
256 config MEM_MT48LC32M8A2_75
258 depends on (BFIN537_STAMP || PNAV10)
261 config MEM_MT48LC8M32B2B5_7
263 depends on (BFIN561_BLUETECHNIX_CM)
266 config MEM_MT48LC32M16A2TG_75
268 depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD)
271 source "arch/blackfin/mach-bf527/Kconfig"
272 source "arch/blackfin/mach-bf533/Kconfig"
273 source "arch/blackfin/mach-bf561/Kconfig"
274 source "arch/blackfin/mach-bf537/Kconfig"
275 source "arch/blackfin/mach-bf548/Kconfig"
277 menu "Board customizations"
280 bool "Default bootloader kernel arguments"
283 string "Initial kernel command string"
284 depends on CMDLINE_BOOL
285 default "console=ttyBF0,57600"
287 If you don't have a boot loader capable of passing a command line string
288 to the kernel, you may specify one here. As a minimum, you should specify
289 the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
292 hex "Kernel load address for booting"
294 range 0x1000 0x20000000
296 This option allows you to set the load address of the kernel.
297 This can be useful if you are on a board which has a small amount
298 of memory or you wish to reserve some memory at the beginning of
301 Note that you need to keep this value above 4k (0x1000) as this
302 memory region is used to capture NULL pointer references as well
303 as some core kernel functions.
306 hex "Kernel ROM Base"
308 range 0x20000000 0x20400000 if !(BF54x || BF561)
309 range 0x20000000 0x30000000 if (BF54x || BF561)
312 comment "Clock/PLL Setup"
315 int "Frequency of the crystal on the board in Hz"
316 default "11059200" if BFIN533_STAMP
317 default "27000000" if BFIN533_EZKIT
318 default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD)
319 default "30000000" if BFIN561_EZKIT
320 default "24576000" if PNAV10
321 default "10000000" if BFIN532_IP0X
323 The frequency of CLKIN crystal oscillator on the board in Hz.
324 Warning: This value should match the crystal on the board. Otherwise,
325 peripherals won't work properly.
327 config BFIN_KERNEL_CLOCK
328 bool "Re-program Clocks while Kernel boots?"
331 This option decides if kernel clocks are re-programed from the
332 bootloader settings. If the clocks are not set, the SDRAM settings
333 are also not changed, and the Bootloader does 100% of the hardware
338 depends on BFIN_KERNEL_CLOCK
343 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
346 If this is set the clock will be divided by 2, before it goes to the PLL.
350 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
352 default "22" if BFIN533_EZKIT
353 default "45" if BFIN533_STAMP
354 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM)
355 default "22" if BFIN533_BLUETECHNIX_CM
356 default "20" if (BFIN537_BLUETECHNIX_CM || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
357 default "20" if BFIN561_EZKIT
358 default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD)
360 This controls the frequency of the on-chip PLL. This can be between 1 and 64.
361 PLL Frequency = (Crystal Frequency) * (this setting)
364 prompt "Core Clock Divider"
365 depends on BFIN_KERNEL_CLOCK
368 This sets the frequency of the core. It can be 1, 2, 4 or 8
369 Core Frequency = (PLL frequency) / (this setting)
385 int "System Clock Divider"
386 depends on BFIN_KERNEL_CLOCK
390 This sets the frequency of the system clock (including SDRAM or DDR).
391 This can be between 1 and 15
392 System Clock = (PLL frequency) / (this setting)
395 prompt "DDR SDRAM Chip Type"
396 depends on BFIN_KERNEL_CLOCK
398 default MEM_MT46V32M16_5B
400 config MEM_MT46V32M16_6T
403 config MEM_MT46V32M16_5B
408 int "Max SDRAM Memory Size in MBytes"
412 This is the max memory size that the kernel will create CPLB
413 tables for. Your system will not be able to handle any more.
416 # Max & Min Speeds for various Chips
420 default 600000000 if BF522
421 default 400000000 if BF523
422 default 400000000 if BF524
423 default 600000000 if BF525
424 default 400000000 if BF526
425 default 600000000 if BF527
426 default 400000000 if BF531
427 default 400000000 if BF532
428 default 750000000 if BF533
429 default 500000000 if BF534
430 default 400000000 if BF536
431 default 600000000 if BF537
432 default 533333333 if BF538
433 default 533333333 if BF539
434 default 600000000 if BF542
435 default 533333333 if BF544
436 default 600000000 if BF547
437 default 600000000 if BF548
438 default 533333333 if BF549
439 default 600000000 if BF561
453 comment "Kernel Timer/Scheduler"
455 source kernel/Kconfig.hz
461 config GENERIC_CLOCKEVENTS
462 bool "Generic clock events"
463 depends on GENERIC_TIME
466 config CYCLES_CLOCKSOURCE
467 bool "Use 'CYCLES' as a clocksource (EXPERIMENTAL)"
468 depends on EXPERIMENTAL
469 depends on GENERIC_CLOCKEVENTS
470 depends on !BFIN_SCRATCH_REG_CYCLES
473 If you say Y here, you will enable support for using the 'cycles'
474 registers as a clock source. Doing so means you will be unable to
475 safely write to the 'cycles' register during runtime. You will
476 still be able to read it (such as for performance monitoring), but
477 writing the registers will most likely crash the kernel.
479 source kernel/time/Kconfig
484 prompt "Blackfin Exception Scratch Register"
485 default BFIN_SCRATCH_REG_RETN
487 Select the resource to reserve for the Exception handler:
488 - RETN: Non-Maskable Interrupt (NMI)
489 - RETE: Exception Return (JTAG/ICE)
490 - CYCLES: Performance counter
492 If you are unsure, please select "RETN".
494 config BFIN_SCRATCH_REG_RETN
497 Use the RETN register in the Blackfin exception handler
498 as a stack scratch register. This means you cannot
499 safely use NMI on the Blackfin while running Linux, but
500 you can debug the system with a JTAG ICE and use the
501 CYCLES performance registers.
503 If you are unsure, please select "RETN".
505 config BFIN_SCRATCH_REG_RETE
508 Use the RETE register in the Blackfin exception handler
509 as a stack scratch register. This means you cannot
510 safely use a JTAG ICE while debugging a Blackfin board,
511 but you can safely use the CYCLES performance registers
514 If you are unsure, please select "RETN".
516 config BFIN_SCRATCH_REG_CYCLES
519 Use the CYCLES register in the Blackfin exception handler
520 as a stack scratch register. This means you cannot
521 safely use the CYCLES performance registers on a Blackfin
522 board at anytime, but you can debug the system with a JTAG
525 If you are unsure, please select "RETN".
532 menu "Blackfin Kernel Optimizations"
534 comment "Memory Optimizations"
537 bool "Locate interrupt entry code in L1 Memory"
540 If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
541 into L1 instruction memory. (less latency)
543 config EXCPT_IRQ_SYSC_L1
544 bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
547 If enabled, the entire ASM lowlevel exception and interrupt entry code
548 (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
552 bool "Locate frequently called do_irq dispatcher function in L1 Memory"
555 If enabled, the frequently called do_irq dispatcher function is linked
556 into L1 instruction memory. (less latency)
558 config CORE_TIMER_IRQ_L1
559 bool "Locate frequently called timer_interrupt() function in L1 Memory"
562 If enabled, the frequently called timer_interrupt() function is linked
563 into L1 instruction memory. (less latency)
566 bool "Locate frequently idle function in L1 Memory"
569 If enabled, the frequently called idle function is linked
570 into L1 instruction memory. (less latency)
573 bool "Locate kernel schedule function in L1 Memory"
576 If enabled, the frequently called kernel schedule is linked
577 into L1 instruction memory. (less latency)
579 config ARITHMETIC_OPS_L1
580 bool "Locate kernel owned arithmetic functions in L1 Memory"
583 If enabled, arithmetic functions are linked
584 into L1 instruction memory. (less latency)
587 bool "Locate access_ok function in L1 Memory"
590 If enabled, the access_ok function is linked
591 into L1 instruction memory. (less latency)
594 bool "Locate memset function in L1 Memory"
597 If enabled, the memset function is linked
598 into L1 instruction memory. (less latency)
601 bool "Locate memcpy function in L1 Memory"
604 If enabled, the memcpy function is linked
605 into L1 instruction memory. (less latency)
607 config SYS_BFIN_SPINLOCK_L1
608 bool "Locate sys_bfin_spinlock function in L1 Memory"
611 If enabled, sys_bfin_spinlock function is linked
612 into L1 instruction memory. (less latency)
614 config IP_CHECKSUM_L1
615 bool "Locate IP Checksum function in L1 Memory"
618 If enabled, the IP Checksum function is linked
619 into L1 instruction memory. (less latency)
621 config CACHELINE_ALIGNED_L1
622 bool "Locate cacheline_aligned data to L1 Data Memory"
627 If enabled, cacheline_anligned data is linked
628 into L1 data memory. (less latency)
630 config SYSCALL_TAB_L1
631 bool "Locate Syscall Table L1 Data Memory"
635 If enabled, the Syscall LUT is linked
636 into L1 data memory. (less latency)
638 config CPLB_SWITCH_TAB_L1
639 bool "Locate CPLB Switch Tables L1 Data Memory"
643 If enabled, the CPLB Switch Tables are linked
644 into L1 data memory. (less latency)
647 bool "Support locating application stack in L1 Scratch Memory"
650 If enabled the application stack can be located in L1
651 scratch memory (less latency).
653 Currently only works with FLAT binaries.
655 comment "Speed Optimizations"
656 config BFIN_INS_LOWOVERHEAD
657 bool "ins[bwl] low overhead, higher interrupt latency"
660 Reads on the Blackfin are speculative. In Blackfin terms, this means
661 they can be interrupted at any time (even after they have been issued
662 on to the external bus), and re-issued after the interrupt occurs.
663 For memory - this is not a big deal, since memory does not change if
666 If a FIFO is sitting on the end of the read, it will see two reads,
667 when the core only sees one since the FIFO receives both the read
668 which is cancelled (and not delivered to the core) and the one which
669 is re-issued (which is delivered to the core).
671 To solve this, interrupts are turned off before reads occur to
672 I/O space. This option controls which the overhead/latency of
673 controlling interrupts during this time
674 "n" turns interrupts off every read
675 (higher overhead, but lower interrupt latency)
676 "y" turns interrupts off every loop
677 (low overhead, but longer interrupt latency)
679 default behavior is to leave this set to on (type "Y"). If you are experiencing
680 interrupt latency issues, it is safe and OK to turn this off.
686 prompt "Kernel executes from"
688 Choose the memory type that the kernel will be running in.
693 The kernel will be resident in RAM when running.
698 The kernel will be resident in FLASH/ROM when running.
705 tristate "Enable Blackfin General Purpose Timers API"
708 Enable support for the General Purpose Timers API. If you
711 To compile this driver as a module, choose M here: the module
712 will be called gptimers.ko.
715 bool "Enable DMA Support"
716 depends on (BF52x || BF53x || BF561 || BF54x)
719 DMA driver for BF5xx.
722 prompt "Uncached SDRAM region"
723 default DMA_UNCACHED_1M
724 depends on BFIN_DMA_5XX
725 config DMA_UNCACHED_4M
726 bool "Enable 4M DMA region"
727 config DMA_UNCACHED_2M
728 bool "Enable 2M DMA region"
729 config DMA_UNCACHED_1M
730 bool "Enable 1M DMA region"
731 config DMA_UNCACHED_NONE
732 bool "Disable DMA region"
736 comment "Cache Support"
741 config BFIN_DCACHE_BANKA
742 bool "Enable only 16k BankA DCACHE - BankB is SRAM"
743 depends on BFIN_DCACHE && !BF531
745 config BFIN_ICACHE_LOCK
746 bool "Enable Instruction Cache Locking"
750 depends on BFIN_DCACHE
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.
773 Cached data will be written back to SDRAM only when needed.
774 This can give a nice increase in performance, but beware of
775 broken drivers that do not properly invalidate/flush their
778 Write Through Policy:
779 Cached data will always be written back to SDRAM when the
780 cache is updated. This is a completely safe setting, but
781 performance is worse than Write Back.
783 If you are unsure of the options and you want to be safe,
784 then go with Write Through.
788 config BFIN_L2_CACHEABLE
790 depends on (BFIN_DCACHE || BFIN_ICACHE) && (BF54x || BF561)
793 Select to make L2 SRAM cacheable in L1 data and instruction cache.
796 bool "Enable the memory protection unit (EXPERIMENTAL)"
799 Use the processor's MPU to protect applications from accessing
800 memory they do not own. This comes at a performance penalty
801 and is recommended only for debugging.
803 comment "Asynchonous Memory Configuration"
805 menu "EBIU_AMGCTL Global Control"
811 bool "DMA has priority over core for ext. accesses"
816 bool "Bank 0 16 bit packing enable"
821 bool "Bank 1 16 bit packing enable"
826 bool "Bank 2 16 bit packing enable"
831 bool "Bank 3 16 bit packing enable"
835 prompt"Enable Asynchonous Memory Banks"
839 bool "Disable All Banks"
845 bool "Enable Bank 0 & 1"
847 config C_AMBEN_B0_B1_B2
848 bool "Enable Bank 0 & 1 & 2"
851 bool "Enable All Banks"
855 menu "EBIU_AMBCTL Control"
863 default 0x5558 if BF54x
874 config EBIU_MBSCTLVAL
875 hex "EBIU Bank Select Control Register"
880 hex "Flash Memory Mode Control Register"
885 hex "Flash Memory Bank Control Register"
890 #############################################################################
891 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
899 source "drivers/pci/Kconfig"
902 bool "Support for hot-pluggable device"
904 Say Y here if you want to plug devices into your computer while
905 the system is running, and be able to use them quickly. In many
906 cases, the devices can likewise be unplugged at any time too.
908 One well known example of this is PCMCIA- or PC-cards, credit-card
909 size devices such as network cards, modems or hard drives which are
910 plugged into slots found on all modern laptop computers. Another
911 example, used on modern desktops as well as laptops, is USB.
913 Enable HOTPLUG and build a modular kernel. Get agent software
914 (from <http://linux-hotplug.sourceforge.net/>) and install it.
915 Then your kernel will automatically call out to a user mode "policy
916 agent" (/sbin/hotplug) to load modules and set up software needed
917 to use devices as you hotplug them.
919 source "drivers/pcmcia/Kconfig"
921 source "drivers/pci/hotplug/Kconfig"
925 menu "Executable file formats"
927 source "fs/Kconfig.binfmt"
931 menu "Power management options"
932 source "kernel/power/Kconfig"
934 config ARCH_SUSPEND_POSSIBLE
939 prompt "Standby Power Saving Mode"
941 default PM_BFIN_SLEEP_DEEPER
942 config PM_BFIN_SLEEP_DEEPER
945 Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
946 power dissipation by disabling the clock to the processor core (CCLK).
947 Furthermore, Standby sets the internal power supply voltage (VDDINT)
948 to 0.85 V to provide the greatest power savings, while preserving the
950 The PLL and system clock (SCLK) continue to operate at a very low
951 frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
952 the SDRAM is put into Self Refresh Mode. Typically an external event
953 such as GPIO interrupt or RTC activity wakes up the processor.
954 Various Peripherals such as UART, SPORT, PPI may not function as
955 normal during Sleep Deeper, due to the reduced SCLK frequency.
956 When in the sleep mode, system DMA access to L1 memory is not supported.
958 If unsure, select "Sleep Deeper".
963 Sleep Mode (High Power Savings) - The sleep mode reduces power
964 dissipation by disabling the clock to the processor core (CCLK).
965 The PLL and system clock (SCLK), however, continue to operate in
966 this mode. Typically an external event or RTC activity will wake
967 up the processor. When in the sleep mode, system DMA access to L1
968 memory is not supported.
970 If unsure, select "Sleep Deeper".
973 config PM_WAKEUP_BY_GPIO
974 bool "Allow Wakeup from Standby by GPIO"
976 config PM_WAKEUP_GPIO_NUMBER
979 depends on PM_WAKEUP_BY_GPIO
980 default 2 if BFIN537_STAMP
983 prompt "GPIO Polarity"
984 depends on PM_WAKEUP_BY_GPIO
985 default PM_WAKEUP_GPIO_POLAR_H
986 config PM_WAKEUP_GPIO_POLAR_H
988 config PM_WAKEUP_GPIO_POLAR_L
990 config PM_WAKEUP_GPIO_POLAR_EDGE_F
992 config PM_WAKEUP_GPIO_POLAR_EDGE_R
994 config PM_WAKEUP_GPIO_POLAR_EDGE_B
998 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1001 config PM_BFIN_WAKE_PH6
1002 bool "Allow Wake-Up from on-chip PHY or PH6 GP"
1003 depends on PM && (BF52x || BF534 || BF536 || BF537)
1006 Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1008 config PM_BFIN_WAKE_GP
1009 bool "Allow Wake-Up from GPIOs"
1010 depends on PM && BF54x
1013 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1016 menu "CPU Frequency scaling"
1018 source "drivers/cpufreq/Kconfig"
1021 bool "CPU Voltage scaling"
1022 depends on EXPERIMENTAL
1026 Say Y here if you want CPU voltage scaling according to the CPU frequency.
1027 This option violates the PLL BYPASS recommendation in the Blackfin Processor
1028 manuals. There is a theoretical risk that during VDDINT transitions
1033 source "net/Kconfig"
1035 source "drivers/Kconfig"
1039 source "arch/blackfin/Kconfig.debug"
1041 source "security/Kconfig"
1043 source "crypto/Kconfig"
1045 source "lib/Kconfig"