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 Not Supported Yet - Work in progress - BF561 Processor Support.
171 default BF_REV_0_1 if BF527
172 default BF_REV_0_2 if BF537
173 default BF_REV_0_3 if BF533
174 default BF_REV_0_0 if BF549
178 depends on (BF52x || BF54x)
182 depends on (BF52x || BF54x)
186 depends on (BF537 || BF536 || BF534)
190 depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
194 depends on (BF561 || BF533 || BF532 || BF531)
198 depends on (BF561 || BF533 || BF532 || BF531)
210 depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
215 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
220 depends on (BF542 || BF544 || BF547 || BF548 || BF549)
223 config BFIN_DUAL_CORE
228 config BFIN_SINGLE_CORE
230 depends on !BFIN_DUAL_CORE
233 config MEM_GENERIC_BOARD
235 depends on GENERIC_BOARD
238 config MEM_MT48LC64M4A2FB_7E
240 depends on (BFIN533_STAMP)
243 config MEM_MT48LC16M16A2TG_75
245 depends on (BFIN533_EZKIT || BFIN561_EZKIT \
246 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
250 config MEM_MT48LC32M8A2_75
252 depends on (BFIN537_STAMP || PNAV10)
255 config MEM_MT48LC8M32B2B5_7
257 depends on (BFIN561_BLUETECHNIX_CM)
260 config MEM_MT48LC32M16A2TG_75
262 depends on (BFIN527_EZKIT)
265 source "arch/blackfin/mach-bf527/Kconfig"
266 source "arch/blackfin/mach-bf533/Kconfig"
267 source "arch/blackfin/mach-bf561/Kconfig"
268 source "arch/blackfin/mach-bf537/Kconfig"
269 source "arch/blackfin/mach-bf548/Kconfig"
271 menu "Board customizations"
274 bool "Default bootloader kernel arguments"
277 string "Initial kernel command string"
278 depends on CMDLINE_BOOL
279 default "console=ttyBF0,57600"
281 If you don't have a boot loader capable of passing a command line string
282 to the kernel, you may specify one here. As a minimum, you should specify
283 the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
285 comment "Clock/PLL Setup"
288 int "Crystal Frequency in Hz"
289 default "11059200" if BFIN533_STAMP
290 default "27000000" if BFIN533_EZKIT
291 default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS)
292 default "30000000" if BFIN561_EZKIT
293 default "24576000" if PNAV10
295 The frequency of CLKIN crystal oscillator on the board in Hz.
297 config BFIN_KERNEL_CLOCK
298 bool "Re-program Clocks while Kernel boots?"
301 This option decides if kernel clocks are re-programed from the
302 bootloader settings. If the clocks are not set, the SDRAM settings
303 are also not changed, and the Bootloader does 100% of the hardware
307 int "Memory Address Width"
308 depends on BFIN_KERNEL_CLOCK
310 default 9 if BFIN533_EZKIT
311 default 9 if BFIN561_EZKIT
312 default 9 if H8606_HVSISTEMAS
313 default 10 if BFIN527_EZKIT
314 default 10 if BFIN537_STAMP
315 default 11 if BFIN533_STAMP
320 depends on BFIN_KERNEL_CLOCK
325 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
328 If this is set the clock will be divided by 2, before it goes to the PLL.
332 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
334 default "22" if BFIN533_EZKIT
335 default "45" if BFIN533_STAMP
336 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT)
337 default "22" if BFIN533_BLUETECHNIX_CM
338 default "20" if BFIN537_BLUETECHNIX_CM
339 default "20" if BFIN561_BLUETECHNIX_CM
340 default "20" if BFIN561_EZKIT
341 default "16" if H8606_HVSISTEMAS
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
371 default 5 if BFIN533_EZKIT
372 default 5 if BFIN533_STAMP
373 default 4 if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT)
374 default 5 if BFIN533_BLUETECHNIX_CM
375 default 4 if BFIN537_BLUETECHNIX_CM
376 default 4 if BFIN561_BLUETECHNIX_CM
377 default 5 if BFIN561_EZKIT
378 default 3 if H8606_HVSISTEMAS
380 This sets the frequency of the system clock (including SDRAM or DDR).
381 This can be between 1 and 15
382 System Clock = (PLL frequency) / (this setting)
385 # Max & Min Speeds for various Chips
389 default 600000000 if BF522
390 default 400000000 if BF523
391 default 400000000 if BF524
392 default 600000000 if BF525
393 default 400000000 if BF526
394 default 600000000 if BF527
395 default 400000000 if BF531
396 default 400000000 if BF532
397 default 750000000 if BF533
398 default 500000000 if BF534
399 default 400000000 if BF536
400 default 600000000 if BF537
401 default 533333333 if BF538
402 default 533333333 if BF539
403 default 600000000 if BF542
404 default 533333333 if BF544
405 default 600000000 if BF547
406 default 600000000 if BF548
407 default 533333333 if BF549
408 default 600000000 if BF561
422 comment "Kernel Timer/Scheduler"
424 source kernel/Kconfig.hz
430 config GENERIC_CLOCKEVENTS
431 bool "Generic clock events"
432 depends on GENERIC_TIME
435 config CYCLES_CLOCKSOURCE
436 bool "Use 'CYCLES' as a clocksource (EXPERIMENTAL)"
437 depends on EXPERIMENTAL
438 depends on GENERIC_CLOCKEVENTS
439 depends on !BFIN_SCRATCH_REG_CYCLES
442 If you say Y here, you will enable support for using the 'cycles'
443 registers as a clock source. Doing so means you will be unable to
444 safely write to the 'cycles' register during runtime. You will
445 still be able to read it (such as for performance monitoring), but
446 writing the registers will most likely crash the kernel.
448 source kernel/time/Kconfig
450 comment "Memory Setup"
453 int "SDRAM Memory Size in MBytes"
454 default 32 if BFIN533_EZKIT
455 default 64 if BFIN527_EZKIT
456 default 64 if BFIN537_STAMP
457 default 64 if BFIN548_EZKIT
458 default 64 if BFIN561_EZKIT
459 default 128 if BFIN533_STAMP
461 default 32 if H8606_HVSISTEMAS
464 prompt "DDR SDRAM Chip Type"
465 depends on BFIN548_EZKIT
466 default MEM_MT46V32M16_5B
468 config MEM_MT46V32M16_6T
471 config MEM_MT46V32M16_5B
475 config ENET_FLASH_PIN
476 int "PF port/pin used for flash and ethernet sharing"
477 depends on (BFIN533_STAMP)
480 PF port/pin used for flash and ethernet sharing to allow other PF
481 pins to be used on other platforms without having to touch common
483 For example: PF0 --> 0,PF1 --> 1,PF2 --> 2, etc.
486 hex "Kernel load address for booting"
488 range 0x1000 0x20000000
490 This option allows you to set the load address of the kernel.
491 This can be useful if you are on a board which has a small amount
492 of memory or you wish to reserve some memory at the beginning of
495 Note that you need to keep this value above 4k (0x1000) as this
496 memory region is used to capture NULL pointer references as well
497 as some core kernel functions.
500 prompt "Blackfin Exception Scratch Register"
501 default BFIN_SCRATCH_REG_RETN
503 Select the resource to reserve for the Exception handler:
504 - RETN: Non-Maskable Interrupt (NMI)
505 - RETE: Exception Return (JTAG/ICE)
506 - CYCLES: Performance counter
508 If you are unsure, please select "RETN".
510 config BFIN_SCRATCH_REG_RETN
513 Use the RETN register in the Blackfin exception handler
514 as a stack scratch register. This means you cannot
515 safely use NMI on the Blackfin while running Linux, but
516 you can debug the system with a JTAG ICE and use the
517 CYCLES performance registers.
519 If you are unsure, please select "RETN".
521 config BFIN_SCRATCH_REG_RETE
524 Use the RETE register in the Blackfin exception handler
525 as a stack scratch register. This means you cannot
526 safely use a JTAG ICE while debugging a Blackfin board,
527 but you can safely use the CYCLES performance registers
530 If you are unsure, please select "RETN".
532 config BFIN_SCRATCH_REG_CYCLES
535 Use the CYCLES register in the Blackfin exception handler
536 as a stack scratch register. This means you cannot
537 safely use the CYCLES performance registers on a Blackfin
538 board at anytime, but you can debug the system with a JTAG
541 If you are unsure, please select "RETN".
548 menu "Blackfin Kernel Optimizations"
550 comment "Memory Optimizations"
553 bool "Locate interrupt entry code in L1 Memory"
556 If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
557 into L1 instruction memory. (less latency)
559 config EXCPT_IRQ_SYSC_L1
560 bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
563 If enabled, the entire ASM lowlevel exception and interrupt entry code
564 (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
568 bool "Locate frequently called do_irq dispatcher function in L1 Memory"
571 If enabled, the frequently called do_irq dispatcher function is linked
572 into L1 instruction memory. (less latency)
574 config CORE_TIMER_IRQ_L1
575 bool "Locate frequently called timer_interrupt() function in L1 Memory"
578 If enabled, the frequently called timer_interrupt() function is linked
579 into L1 instruction memory. (less latency)
582 bool "Locate frequently idle function in L1 Memory"
585 If enabled, the frequently called idle function is linked
586 into L1 instruction memory. (less latency)
589 bool "Locate kernel schedule function in L1 Memory"
592 If enabled, the frequently called kernel schedule is linked
593 into L1 instruction memory. (less latency)
595 config ARITHMETIC_OPS_L1
596 bool "Locate kernel owned arithmetic functions in L1 Memory"
599 If enabled, arithmetic functions are linked
600 into L1 instruction memory. (less latency)
603 bool "Locate access_ok function in L1 Memory"
606 If enabled, the access_ok function is linked
607 into L1 instruction memory. (less latency)
610 bool "Locate memset function in L1 Memory"
613 If enabled, the memset function is linked
614 into L1 instruction memory. (less latency)
617 bool "Locate memcpy function in L1 Memory"
620 If enabled, the memcpy function is linked
621 into L1 instruction memory. (less latency)
623 config SYS_BFIN_SPINLOCK_L1
624 bool "Locate sys_bfin_spinlock function in L1 Memory"
627 If enabled, sys_bfin_spinlock function is linked
628 into L1 instruction memory. (less latency)
630 config IP_CHECKSUM_L1
631 bool "Locate IP Checksum function in L1 Memory"
634 If enabled, the IP Checksum function is linked
635 into L1 instruction memory. (less latency)
637 config CACHELINE_ALIGNED_L1
638 bool "Locate cacheline_aligned data to L1 Data Memory"
643 If enabled, cacheline_anligned data is linked
644 into L1 data memory. (less latency)
646 config SYSCALL_TAB_L1
647 bool "Locate Syscall Table L1 Data Memory"
651 If enabled, the Syscall LUT is linked
652 into L1 data memory. (less latency)
654 config CPLB_SWITCH_TAB_L1
655 bool "Locate CPLB Switch Tables L1 Data Memory"
659 If enabled, the CPLB Switch Tables are linked
660 into L1 data memory. (less latency)
666 prompt "Kernel executes from"
668 Choose the memory type that the kernel will be running in.
673 The kernel will be resident in RAM when running.
678 The kernel will be resident in FLASH/ROM when running.
685 bool "Allow allocating large blocks (> 1MB) of memory"
687 Allow the slab memory allocator to keep chains for very large
688 memory sizes - upto 32MB. You may need this if your system has
689 a lot of RAM, and you need to able to allocate very large
690 contiguous chunks. If unsure, say N.
693 tristate "Enable Blackfin General Purpose Timers API"
696 Enable support for the General Purpose Timers API. If you
699 To compile this driver as a module, choose M here: the module
700 will be called gptimers.ko.
703 bool "Enable DMA Support"
704 depends on (BF52x || BF53x || BF561 || BF54x)
707 DMA driver for BF5xx.
710 prompt "Uncached SDRAM region"
711 default DMA_UNCACHED_1M
712 depends on BFIN_DMA_5XX
713 config DMA_UNCACHED_2M
714 bool "Enable 2M DMA region"
715 config DMA_UNCACHED_1M
716 bool "Enable 1M DMA region"
717 config DMA_UNCACHED_NONE
718 bool "Disable DMA region"
722 comment "Cache Support"
727 config BFIN_DCACHE_BANKA
728 bool "Enable only 16k BankA DCACHE - BankB is SRAM"
729 depends on BFIN_DCACHE && !BF531
731 config BFIN_ICACHE_LOCK
732 bool "Enable Instruction Cache Locking"
736 depends on BFIN_DCACHE
742 Cached data will be written back to SDRAM only when needed.
743 This can give a nice increase in performance, but beware of
744 broken drivers that do not properly invalidate/flush their
747 Write Through Policy:
748 Cached data will always be written back to SDRAM when the
749 cache is updated. This is a completely safe setting, but
750 performance is worse than Write Back.
752 If you are unsure of the options and you want to be safe,
753 then go with Write Through.
759 Cached data will be written back to SDRAM only when needed.
760 This can give a nice increase in performance, but beware of
761 broken drivers that do not properly invalidate/flush their
764 Write Through Policy:
765 Cached data will always be written back to SDRAM when the
766 cache is updated. This is a completely safe setting, but
767 performance is worse than Write Back.
769 If you are unsure of the options and you want to be safe,
770 then go with Write Through.
775 int "Set the max L1 SRAM pieces"
778 Set the max memory pieces for the L1 SRAM allocation algorithm.
779 Min value is 16. Max value is 1024.
783 bool "Enable the memory protection unit (EXPERIMENTAL)"
786 Use the processor's MPU to protect applications from accessing
787 memory they do not own. This comes at a performance penalty
788 and is recommended only for debugging.
790 comment "Asynchonous Memory Configuration"
792 menu "EBIU_AMGCTL Global Control"
798 bool "DMA has priority over core for ext. accesses"
803 bool "Bank 0 16 bit packing enable"
808 bool "Bank 1 16 bit packing enable"
813 bool "Bank 2 16 bit packing enable"
818 bool "Bank 3 16 bit packing enable"
822 prompt"Enable Asynchonous Memory Banks"
826 bool "Disable All Banks"
832 bool "Enable Bank 0 & 1"
834 config C_AMBEN_B0_B1_B2
835 bool "Enable Bank 0 & 1 & 2"
838 bool "Enable All Banks"
842 menu "EBIU_AMBCTL Control"
860 config EBIU_MBSCTLVAL
861 hex "EBIU Bank Select Control Register"
866 hex "Flash Memory Mode Control Register"
871 hex "Flash Memory Bank Control Register"
876 #############################################################################
877 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
884 source "drivers/pci/Kconfig"
887 bool "Support for hot-pluggable device"
889 Say Y here if you want to plug devices into your computer while
890 the system is running, and be able to use them quickly. In many
891 cases, the devices can likewise be unplugged at any time too.
893 One well known example of this is PCMCIA- or PC-cards, credit-card
894 size devices such as network cards, modems or hard drives which are
895 plugged into slots found on all modern laptop computers. Another
896 example, used on modern desktops as well as laptops, is USB.
898 Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
899 software (at <http://linux-hotplug.sourceforge.net/>) and install it.
900 Then your kernel will automatically call out to a user mode "policy
901 agent" (/sbin/hotplug) to load modules and set up software needed
902 to use devices as you hotplug them.
904 source "drivers/pcmcia/Kconfig"
906 source "drivers/pci/hotplug/Kconfig"
910 menu "Executable file formats"
912 source "fs/Kconfig.binfmt"
916 menu "Power management options"
917 source "kernel/power/Kconfig"
919 config ARCH_SUSPEND_POSSIBLE
924 prompt "Default Power Saving Mode"
926 default PM_BFIN_SLEEP_DEEPER
927 config PM_BFIN_SLEEP_DEEPER
930 Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
931 power dissipation by disabling the clock to the processor core (CCLK).
932 Furthermore, Standby sets the internal power supply voltage (VDDINT)
933 to 0.85 V to provide the greatest power savings, while preserving the
935 The PLL and system clock (SCLK) continue to operate at a very low
936 frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
937 the SDRAM is put into Self Refresh Mode. Typically an external event
938 such as GPIO interrupt or RTC activity wakes up the processor.
939 Various Peripherals such as UART, SPORT, PPI may not function as
940 normal during Sleep Deeper, due to the reduced SCLK frequency.
941 When in the sleep mode, system DMA access to L1 memory is not supported.
946 Sleep Mode (High Power Savings) - The sleep mode reduces power
947 dissipation by disabling the clock to the processor core (CCLK).
948 The PLL and system clock (SCLK), however, continue to operate in
949 this mode. Typically an external event or RTC activity will wake
950 up the processor. When in the sleep mode,
951 system DMA access to L1 memory is not supported.
954 config PM_WAKEUP_BY_GPIO
955 bool "Cause Wakeup Event by GPIO"
957 config PM_WAKEUP_GPIO_NUMBER
958 int "Wakeup GPIO number"
960 depends on PM_WAKEUP_BY_GPIO
961 default 2 if BFIN537_STAMP
964 prompt "GPIO Polarity"
965 depends on PM_WAKEUP_BY_GPIO
966 default PM_WAKEUP_GPIO_POLAR_H
967 config PM_WAKEUP_GPIO_POLAR_H
969 config PM_WAKEUP_GPIO_POLAR_L
971 config PM_WAKEUP_GPIO_POLAR_EDGE_F
973 config PM_WAKEUP_GPIO_POLAR_EDGE_R
975 config PM_WAKEUP_GPIO_POLAR_EDGE_B
981 if (BF537 || BF533 || BF54x)
983 menu "CPU Frequency scaling"
985 source "drivers/cpufreq/Kconfig"
991 If you want to enable this option, you should select the
992 DPMC driver from Character Devices.
999 source "drivers/Kconfig"
1003 source "arch/blackfin/Kconfig.debug"
1005 source "security/Kconfig"
1007 source "crypto/Kconfig"
1009 source "lib/Kconfig"