970df5b5c525337979198dcbbc5b9e2eae8fc4c7
[pandora-kernel.git] / arch / blackfin / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Blackfin Kernel Configuration"
7
8 config SYMBOL_PREFIX
9         string
10         default "_"
11
12 config MMU
13         def_bool n
14
15 config FPU
16         def_bool n
17
18 config RWSEM_GENERIC_SPINLOCK
19         def_bool y
20
21 config RWSEM_XCHGADD_ALGORITHM
22         def_bool n
23
24 config BLACKFIN
25         def_bool y
26         select HAVE_ARCH_KGDB
27         select HAVE_FUNCTION_GRAPH_TRACER
28         select HAVE_FUNCTION_TRACER
29         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
30         select HAVE_IDE
31         select HAVE_KERNEL_GZIP if RAMKERNEL
32         select HAVE_KERNEL_BZIP2 if RAMKERNEL
33         select HAVE_KERNEL_LZMA if RAMKERNEL
34         select HAVE_OPROFILE
35         select ARCH_WANT_OPTIONAL_GPIOLIB
36
37 config GENERIC_CSUM
38         def_bool y
39
40 config GENERIC_BUG
41         def_bool y
42         depends on BUG
43
44 config ZONE_DMA
45         def_bool y
46
47 config GENERIC_FIND_NEXT_BIT
48         def_bool y
49
50 config GENERIC_HARDIRQS
51         def_bool y
52
53 config GENERIC_IRQ_PROBE
54         def_bool y
55
56 config GENERIC_HARDIRQS_NO__DO_IRQ
57         def_bool y
58
59 config GENERIC_GPIO
60         def_bool y
61
62 config FORCE_MAX_ZONEORDER
63         int
64         default "14"
65
66 config GENERIC_CALIBRATE_DELAY
67         def_bool y
68
69 config LOCKDEP_SUPPORT
70         def_bool y
71
72 config STACKTRACE_SUPPORT
73         def_bool y
74
75 config TRACE_IRQFLAGS_SUPPORT
76         def_bool y
77
78 source "init/Kconfig"
79
80 source "kernel/Kconfig.preempt"
81
82 source "kernel/Kconfig.freezer"
83
84 menu "Blackfin Processor Options"
85
86 comment "Processor and Board Settings"
87
88 choice
89         prompt "CPU"
90         default BF533
91
92 config BF512
93         bool "BF512"
94         help
95           BF512 Processor Support.
96
97 config BF514
98         bool "BF514"
99         help
100           BF514 Processor Support.
101
102 config BF516
103         bool "BF516"
104         help
105           BF516 Processor Support.
106
107 config BF518
108         bool "BF518"
109         help
110           BF518 Processor Support.
111
112 config BF522
113         bool "BF522"
114         help
115           BF522 Processor Support.
116
117 config BF523
118         bool "BF523"
119         help
120           BF523 Processor Support.
121
122 config BF524
123         bool "BF524"
124         help
125           BF524 Processor Support.
126
127 config BF525
128         bool "BF525"
129         help
130           BF525 Processor Support.
131
132 config BF526
133         bool "BF526"
134         help
135           BF526 Processor Support.
136
137 config BF527
138         bool "BF527"
139         help
140           BF527 Processor Support.
141
142 config BF531
143         bool "BF531"
144         help
145           BF531 Processor Support.
146
147 config BF532
148         bool "BF532"
149         help
150           BF532 Processor Support.
151
152 config BF533
153         bool "BF533"
154         help
155           BF533 Processor Support.
156
157 config BF534
158         bool "BF534"
159         help
160           BF534 Processor Support.
161
162 config BF536
163         bool "BF536"
164         help
165           BF536 Processor Support.
166
167 config BF537
168         bool "BF537"
169         help
170           BF537 Processor Support.
171
172 config BF538
173         bool "BF538"
174         help
175           BF538 Processor Support.
176
177 config BF539
178         bool "BF539"
179         help
180           BF539 Processor Support.
181
182 config BF542_std
183         bool "BF542"
184         help
185           BF542 Processor Support.
186
187 config BF542M
188         bool "BF542m"
189         help
190           BF542 Processor Support.
191
192 config BF544_std
193         bool "BF544"
194         help
195           BF544 Processor Support.
196
197 config BF544M
198         bool "BF544m"
199         help
200           BF544 Processor Support.
201
202 config BF547_std
203         bool "BF547"
204         help
205           BF547 Processor Support.
206
207 config BF547M
208         bool "BF547m"
209         help
210           BF547 Processor Support.
211
212 config BF548_std
213         bool "BF548"
214         help
215           BF548 Processor Support.
216
217 config BF548M
218         bool "BF548m"
219         help
220           BF548 Processor Support.
221
222 config BF549_std
223         bool "BF549"
224         help
225           BF549 Processor Support.
226
227 config BF549M
228         bool "BF549m"
229         help
230           BF549 Processor Support.
231
232 config BF561
233         bool "BF561"
234         help
235           BF561 Processor Support.
236
237 endchoice
238
239 config SMP
240         depends on BF561
241         select TICKSOURCE_CORETMR
242         bool "Symmetric multi-processing support"
243         ---help---
244           This enables support for systems with more than one CPU,
245           like the dual core BF561. If you have a system with only one
246           CPU, say N. If you have a system with more than one CPU, say Y.
247
248           If you don't know what to do here, say N.
249
250 config NR_CPUS
251         int
252         depends on SMP
253         default 2 if BF561
254
255 config HOTPLUG_CPU
256         bool "Support for hot-pluggable CPUs"
257         depends on SMP && HOTPLUG
258         default y
259
260 config IRQ_PER_CPU
261         bool
262         depends on SMP
263         default y
264
265 config HAVE_LEGACY_PER_CPU_AREA
266         def_bool y
267         depends on SMP
268
269 config BF_REV_MIN
270         int
271         default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
272         default 2 if (BF537 || BF536 || BF534)
273         default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM)
274         default 4 if (BF538 || BF539)
275
276 config BF_REV_MAX
277         int
278         default 2 if (BF51x || BF52x || (BF54x && !BF54xM))
279         default 3 if (BF537 || BF536 || BF534 || BF54xM)
280         default 5 if (BF561 || BF538 || BF539)
281         default 6 if (BF533 || BF532 || BF531)
282
283 choice
284         prompt "Silicon Rev"
285         default BF_REV_0_0 if (BF51x || BF52x)
286         default BF_REV_0_2 if (BF534 || BF536 || BF537 || (BF54x && !BF54xM))
287         default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561)
288
289 config BF_REV_0_0
290         bool "0.0"
291         depends on (BF51x || BF52x || (BF54x && !BF54xM))
292
293 config BF_REV_0_1
294         bool "0.1"
295         depends on (BF51x || BF52x || (BF54x && !BF54xM))
296
297 config BF_REV_0_2
298         bool "0.2"
299         depends on (BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
300
301 config BF_REV_0_3
302         bool "0.3"
303         depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
304
305 config BF_REV_0_4
306         bool "0.4"
307         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
308
309 config BF_REV_0_5
310         bool "0.5"
311         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
312
313 config BF_REV_0_6
314         bool "0.6"
315         depends on (BF533 || BF532 || BF531)
316
317 config BF_REV_ANY
318         bool "any"
319
320 config BF_REV_NONE
321         bool "none"
322
323 endchoice
324
325 config BF53x
326         bool
327         depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
328         default y
329
330 config MEM_GENERIC_BOARD
331         bool
332         depends on GENERIC_BOARD
333         default y
334
335 config MEM_MT48LC64M4A2FB_7E
336         bool
337         depends on (BFIN533_STAMP)
338         default y
339
340 config MEM_MT48LC16M16A2TG_75
341         bool
342         depends on (BFIN533_EZKIT || BFIN561_EZKIT \
343                 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM_E \
344                 || BFIN537_BLUETECHNIX_CM_U || H8606_HVSISTEMAS \
345                 || BFIN527_BLUETECHNIX_CM)
346         default y
347
348 config MEM_MT48LC32M8A2_75
349         bool
350         depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
351         default y
352
353 config MEM_MT48LC8M32B2B5_7
354         bool
355         depends on (BFIN561_BLUETECHNIX_CM)
356         default y
357
358 config MEM_MT48LC32M16A2TG_75
359         bool
360         depends on (BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN532_IP0X || BLACKSTAMP)
361         default y
362
363 config MEM_MT48LC32M8A2_75
364         bool
365         depends on (BFIN518F_EZBRD)
366         default y
367
368 config MEM_MT48H32M16LFCJ_75
369         bool
370         depends on (BFIN526_EZBRD)
371         default y
372
373 source "arch/blackfin/mach-bf518/Kconfig"
374 source "arch/blackfin/mach-bf527/Kconfig"
375 source "arch/blackfin/mach-bf533/Kconfig"
376 source "arch/blackfin/mach-bf561/Kconfig"
377 source "arch/blackfin/mach-bf537/Kconfig"
378 source "arch/blackfin/mach-bf538/Kconfig"
379 source "arch/blackfin/mach-bf548/Kconfig"
380
381 menu "Board customizations"
382
383 config CMDLINE_BOOL
384         bool "Default bootloader kernel arguments"
385
386 config CMDLINE
387         string "Initial kernel command string"
388         depends on CMDLINE_BOOL
389         default "console=ttyBF0,57600"
390         help
391           If you don't have a boot loader capable of passing a command line string
392           to the kernel, you may specify one here. As a minimum, you should specify
393           the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
394
395 config BOOT_LOAD
396         hex "Kernel load address for booting"
397         default "0x1000"
398         range 0x1000 0x20000000
399         help
400           This option allows you to set the load address of the kernel.
401           This can be useful if you are on a board which has a small amount
402           of memory or you wish to reserve some memory at the beginning of
403           the address space.
404
405           Note that you need to keep this value above 4k (0x1000) as this
406           memory region is used to capture NULL pointer references as well
407           as some core kernel functions.
408
409 config ROM_BASE
410         hex "Kernel ROM Base"
411         depends on ROMKERNEL
412         default "0x20040040"
413         range 0x20000000 0x20400000 if !(BF54x || BF561)
414         range 0x20000000 0x30000000 if (BF54x || BF561)
415         help
416           Make sure your ROM base does not include any file-header
417           information that is prepended to the kernel.
418
419           For example, the bootable U-Boot format (created with
420           mkimage) has a 64 byte header (0x40).  So while the image
421           you write to flash might start at say 0x20080000, you have
422           to add 0x40 to get the kernel's ROM base as it will come
423           after the header.
424
425 comment "Clock/PLL Setup"
426
427 config CLKIN_HZ
428         int "Frequency of the crystal on the board in Hz"
429         default "10000000" if BFIN532_IP0X
430         default "11059200" if BFIN533_STAMP
431         default "24576000" if PNAV10
432         default "25000000" # most people use this
433         default "27000000" if BFIN533_EZKIT
434         default "30000000" if BFIN561_EZKIT
435         help
436           The frequency of CLKIN crystal oscillator on the board in Hz.
437           Warning: This value should match the crystal on the board. Otherwise,
438           peripherals won't work properly.
439
440 config BFIN_KERNEL_CLOCK
441         bool "Re-program Clocks while Kernel boots?"
442         default n
443         help
444           This option decides if kernel clocks are re-programed from the
445           bootloader settings. If the clocks are not set, the SDRAM settings
446           are also not changed, and the Bootloader does 100% of the hardware
447           configuration.
448
449 config PLL_BYPASS
450         bool "Bypass PLL"
451         depends on BFIN_KERNEL_CLOCK
452         default n
453
454 config CLKIN_HALF
455         bool "Half Clock In"
456         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
457         default n
458         help
459           If this is set the clock will be divided by 2, before it goes to the PLL.
460
461 config VCO_MULT
462         int "VCO Multiplier"
463         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
464         range 1 64
465         default "22" if BFIN533_EZKIT
466         default "45" if BFIN533_STAMP
467         default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
468         default "22" if BFIN533_BLUETECHNIX_CM
469         default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
470         default "20" if BFIN561_EZKIT
471         default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
472         help
473           This controls the frequency of the on-chip PLL. This can be between 1 and 64.
474           PLL Frequency = (Crystal Frequency) * (this setting)
475
476 choice
477         prompt "Core Clock Divider"
478         depends on BFIN_KERNEL_CLOCK
479         default CCLK_DIV_1
480         help
481           This sets the frequency of the core. It can be 1, 2, 4 or 8
482           Core Frequency = (PLL frequency) / (this setting)
483
484 config CCLK_DIV_1
485         bool "1"
486
487 config CCLK_DIV_2
488         bool "2"
489
490 config CCLK_DIV_4
491         bool "4"
492
493 config CCLK_DIV_8
494         bool "8"
495 endchoice
496
497 config SCLK_DIV
498         int "System Clock Divider"
499         depends on BFIN_KERNEL_CLOCK
500         range 1 15
501         default 5
502         help
503           This sets the frequency of the system clock (including SDRAM or DDR).
504           This can be between 1 and 15
505           System Clock = (PLL frequency) / (this setting)
506
507 choice
508         prompt "DDR SDRAM Chip Type"
509         depends on BFIN_KERNEL_CLOCK
510         depends on BF54x
511         default MEM_MT46V32M16_5B
512
513 config MEM_MT46V32M16_6T
514         bool "MT46V32M16_6T"
515
516 config MEM_MT46V32M16_5B
517         bool "MT46V32M16_5B"
518 endchoice
519
520 choice
521         prompt "DDR/SDRAM Timing"
522         depends on BFIN_KERNEL_CLOCK
523         default BFIN_KERNEL_CLOCK_MEMINIT_CALC
524         help
525           This option allows you to specify Blackfin SDRAM/DDR Timing parameters
526           The calculated SDRAM timing parameters may not be 100%
527           accurate - This option is therefore marked experimental.
528
529 config BFIN_KERNEL_CLOCK_MEMINIT_CALC
530         bool "Calculate Timings (EXPERIMENTAL)"
531         depends on EXPERIMENTAL
532
533 config BFIN_KERNEL_CLOCK_MEMINIT_SPEC
534         bool "Provide accurate Timings based on target SCLK"
535         help
536           Please consult the Blackfin Hardware Reference Manuals as well
537           as the memory device datasheet.
538           http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram
539 endchoice
540
541 menu "Memory Init Control"
542         depends on BFIN_KERNEL_CLOCK_MEMINIT_SPEC
543
544 config MEM_DDRCTL0
545         depends on BF54x
546         hex "DDRCTL0"
547         default 0x0
548
549 config MEM_DDRCTL1
550         depends on BF54x
551         hex "DDRCTL1"
552         default 0x0
553
554 config MEM_DDRCTL2
555         depends on BF54x
556         hex "DDRCTL2"
557         default 0x0
558
559 config MEM_EBIU_DDRQUE
560         depends on BF54x
561         hex "DDRQUE"
562         default 0x0
563
564 config MEM_SDRRC
565         depends on !BF54x
566         hex "SDRRC"
567         default 0x0
568
569 config MEM_SDGCTL
570         depends on !BF54x
571         hex "SDGCTL"
572         default 0x0
573 endmenu
574
575 #
576 # Max & Min Speeds for various Chips
577 #
578 config MAX_VCO_HZ
579         int
580         default 400000000 if BF512
581         default 400000000 if BF514
582         default 400000000 if BF516
583         default 400000000 if BF518
584         default 400000000 if BF522
585         default 600000000 if BF523
586         default 400000000 if BF524
587         default 600000000 if BF525
588         default 400000000 if BF526
589         default 600000000 if BF527
590         default 400000000 if BF531
591         default 400000000 if BF532
592         default 750000000 if BF533
593         default 500000000 if BF534
594         default 400000000 if BF536
595         default 600000000 if BF537
596         default 533333333 if BF538
597         default 533333333 if BF539
598         default 600000000 if BF542
599         default 533333333 if BF544
600         default 600000000 if BF547
601         default 600000000 if BF548
602         default 533333333 if BF549
603         default 600000000 if BF561
604
605 config MIN_VCO_HZ
606         int
607         default 50000000
608
609 config MAX_SCLK_HZ
610         int
611         default 133333333
612
613 config MIN_SCLK_HZ
614         int
615         default 27000000
616
617 comment "Kernel Timer/Scheduler"
618
619 source kernel/Kconfig.hz
620
621 config GENERIC_TIME
622         def_bool y
623
624 config GENERIC_CLOCKEVENTS
625         bool "Generic clock events"
626         default y
627
628 menu "Clock event device"
629         depends on GENERIC_CLOCKEVENTS
630 config TICKSOURCE_GPTMR0
631         bool "GPTimer0"
632         depends on !SMP
633         select BFIN_GPTIMERS
634
635 config TICKSOURCE_CORETMR
636         bool "Core timer"
637         default y
638 endmenu
639
640 menu "Clock souce"
641         depends on GENERIC_CLOCKEVENTS
642 config CYCLES_CLOCKSOURCE
643         bool "CYCLES"
644         default y
645         depends on !BFIN_SCRATCH_REG_CYCLES
646         depends on !SMP
647         help
648           If you say Y here, you will enable support for using the 'cycles'
649           registers as a clock source.  Doing so means you will be unable to
650           safely write to the 'cycles' register during runtime.  You will
651           still be able to read it (such as for performance monitoring), but
652           writing the registers will most likely crash the kernel.
653
654 config GPTMR0_CLOCKSOURCE
655         bool "GPTimer0"
656         select BFIN_GPTIMERS
657         depends on !TICKSOURCE_GPTMR0
658 endmenu
659
660 config ARCH_USES_GETTIMEOFFSET
661         depends on !GENERIC_CLOCKEVENTS
662         def_bool y
663
664 source kernel/time/Kconfig
665
666 comment "Misc"
667
668 choice
669         prompt "Blackfin Exception Scratch Register"
670         default BFIN_SCRATCH_REG_RETN
671         help
672           Select the resource to reserve for the Exception handler:
673             - RETN: Non-Maskable Interrupt (NMI)
674             - RETE: Exception Return (JTAG/ICE)
675             - CYCLES: Performance counter
676
677           If you are unsure, please select "RETN".
678
679 config BFIN_SCRATCH_REG_RETN
680         bool "RETN"
681         help
682           Use the RETN register in the Blackfin exception handler
683           as a stack scratch register.  This means you cannot
684           safely use NMI on the Blackfin while running Linux, but
685           you can debug the system with a JTAG ICE and use the
686           CYCLES performance registers.
687
688           If you are unsure, please select "RETN".
689
690 config BFIN_SCRATCH_REG_RETE
691         bool "RETE"
692         help
693           Use the RETE register in the Blackfin exception handler
694           as a stack scratch register.  This means you cannot
695           safely use a JTAG ICE while debugging a Blackfin board,
696           but you can safely use the CYCLES performance registers
697           and the NMI.
698
699           If you are unsure, please select "RETN".
700
701 config BFIN_SCRATCH_REG_CYCLES
702         bool "CYCLES"
703         help
704           Use the CYCLES register in the Blackfin exception handler
705           as a stack scratch register.  This means you cannot
706           safely use the CYCLES performance registers on a Blackfin
707           board at anytime, but you can debug the system with a JTAG
708           ICE and use the NMI.
709
710           If you are unsure, please select "RETN".
711
712 endchoice
713
714 endmenu
715
716
717 menu "Blackfin Kernel Optimizations"
718         depends on !SMP
719
720 comment "Memory Optimizations"
721
722 config I_ENTRY_L1
723         bool "Locate interrupt entry code in L1 Memory"
724         default y
725         help
726           If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
727           into L1 instruction memory. (less latency)
728
729 config EXCPT_IRQ_SYSC_L1
730         bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
731         default y
732         help
733           If enabled, the entire ASM lowlevel exception and interrupt entry code
734           (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
735           (less latency)
736
737 config DO_IRQ_L1
738         bool "Locate frequently called do_irq dispatcher function in L1 Memory"
739         default y
740         help
741           If enabled, the frequently called do_irq dispatcher function is linked
742           into L1 instruction memory. (less latency)
743
744 config CORE_TIMER_IRQ_L1
745         bool "Locate frequently called timer_interrupt() function in L1 Memory"
746         default y
747         help
748           If enabled, the frequently called timer_interrupt() function is linked
749           into L1 instruction memory. (less latency)
750
751 config IDLE_L1
752         bool "Locate frequently idle function in L1 Memory"
753         default y
754         help
755           If enabled, the frequently called idle function is linked
756           into L1 instruction memory. (less latency)
757
758 config SCHEDULE_L1
759         bool "Locate kernel schedule function in L1 Memory"
760         default y
761         help
762           If enabled, the frequently called kernel schedule is linked
763           into L1 instruction memory. (less latency)
764
765 config ARITHMETIC_OPS_L1
766         bool "Locate kernel owned arithmetic functions in L1 Memory"
767         default y
768         help
769           If enabled, arithmetic functions are linked
770           into L1 instruction memory. (less latency)
771
772 config ACCESS_OK_L1
773         bool "Locate access_ok function in L1 Memory"
774         default y
775         help
776           If enabled, the access_ok function is linked
777           into L1 instruction memory. (less latency)
778
779 config MEMSET_L1
780         bool "Locate memset function in L1 Memory"
781         default y
782         help
783           If enabled, the memset function is linked
784           into L1 instruction memory. (less latency)
785
786 config MEMCPY_L1
787         bool "Locate memcpy function in L1 Memory"
788         default y
789         help
790           If enabled, the memcpy function is linked
791           into L1 instruction memory. (less latency)
792
793 config SYS_BFIN_SPINLOCK_L1
794         bool "Locate sys_bfin_spinlock function in L1 Memory"
795         default y
796         help
797           If enabled, sys_bfin_spinlock function is linked
798           into L1 instruction memory. (less latency)
799
800 config IP_CHECKSUM_L1
801         bool "Locate IP Checksum function in L1 Memory"
802         default n
803         help
804           If enabled, the IP Checksum function is linked
805           into L1 instruction memory. (less latency)
806
807 config CACHELINE_ALIGNED_L1
808         bool "Locate cacheline_aligned data to L1 Data Memory"
809         default y if !BF54x
810         default n if BF54x
811         depends on !BF531
812         help
813           If enabled, cacheline_aligned data is linked
814           into L1 data memory. (less latency)
815
816 config SYSCALL_TAB_L1
817         bool "Locate Syscall Table L1 Data Memory"
818         default n
819         depends on !BF531
820         help
821           If enabled, the Syscall LUT is linked
822           into L1 data memory. (less latency)
823
824 config CPLB_SWITCH_TAB_L1
825         bool "Locate CPLB Switch Tables L1 Data Memory"
826         default n
827         depends on !BF531
828         help
829           If enabled, the CPLB Switch Tables are linked
830           into L1 data memory. (less latency)
831
832 config APP_STACK_L1
833         bool "Support locating application stack in L1 Scratch Memory"
834         default y
835         help
836           If enabled the application stack can be located in L1
837           scratch memory (less latency).
838
839           Currently only works with FLAT binaries.
840
841 config EXCEPTION_L1_SCRATCH
842         bool "Locate exception stack in L1 Scratch Memory"
843         default n
844         depends on !APP_STACK_L1
845         help
846           Whenever an exception occurs, use the L1 Scratch memory for
847           stack storage.  You cannot place the stacks of FLAT binaries
848           in L1 when using this option.
849
850           If you don't use L1 Scratch, then you should say Y here.
851
852 comment "Speed Optimizations"
853 config BFIN_INS_LOWOVERHEAD
854         bool "ins[bwl] low overhead, higher interrupt latency"
855         default y
856         help
857           Reads on the Blackfin are speculative. In Blackfin terms, this means
858           they can be interrupted at any time (even after they have been issued
859           on to the external bus), and re-issued after the interrupt occurs.
860           For memory - this is not a big deal, since memory does not change if
861           it sees a read.
862
863           If a FIFO is sitting on the end of the read, it will see two reads,
864           when the core only sees one since the FIFO receives both the read
865           which is cancelled (and not delivered to the core) and the one which
866           is re-issued (which is delivered to the core).
867
868           To solve this, interrupts are turned off before reads occur to
869           I/O space. This option controls which the overhead/latency of
870           controlling interrupts during this time
871            "n" turns interrupts off every read
872                 (higher overhead, but lower interrupt latency)
873            "y" turns interrupts off every loop
874                 (low overhead, but longer interrupt latency)
875
876           default behavior is to leave this set to on (type "Y"). If you are experiencing
877           interrupt latency issues, it is safe and OK to turn this off.
878
879 endmenu
880
881 choice
882         prompt "Kernel executes from"
883         help
884           Choose the memory type that the kernel will be running in.
885
886 config RAMKERNEL
887         bool "RAM"
888         help
889           The kernel will be resident in RAM when running.
890
891 config ROMKERNEL
892         bool "ROM"
893         help
894           The kernel will be resident in FLASH/ROM when running.
895
896 endchoice
897
898 source "mm/Kconfig"
899
900 config BFIN_GPTIMERS
901         tristate "Enable Blackfin General Purpose Timers API"
902         default n
903         help
904           Enable support for the General Purpose Timers API.  If you
905           are unsure, say N.
906
907           To compile this driver as a module, choose M here: the module
908           will be called gptimers.
909
910 choice
911         prompt "Uncached DMA region"
912         default DMA_UNCACHED_1M
913 config DMA_UNCACHED_4M
914         bool "Enable 4M DMA region"
915 config DMA_UNCACHED_2M
916         bool "Enable 2M DMA region"
917 config DMA_UNCACHED_1M
918         bool "Enable 1M DMA region"
919 config DMA_UNCACHED_512K
920         bool "Enable 512K DMA region"
921 config DMA_UNCACHED_256K
922         bool "Enable 256K DMA region"
923 config DMA_UNCACHED_128K
924         bool "Enable 128K DMA region"
925 config DMA_UNCACHED_NONE
926         bool "Disable DMA region"
927 endchoice
928
929
930 comment "Cache Support"
931
932 config BFIN_ICACHE
933         bool "Enable ICACHE"
934         default y
935 config BFIN_EXTMEM_ICACHEABLE
936         bool "Enable ICACHE for external memory"
937         depends on BFIN_ICACHE
938         default y
939 config BFIN_L2_ICACHEABLE
940         bool "Enable ICACHE for L2 SRAM"
941         depends on BFIN_ICACHE
942         depends on BF54x || BF561
943         default n
944
945 config BFIN_DCACHE
946         bool "Enable DCACHE"
947         default y
948 config BFIN_DCACHE_BANKA
949         bool "Enable only 16k BankA DCACHE - BankB is SRAM"
950         depends on BFIN_DCACHE && !BF531
951         default n
952 config BFIN_EXTMEM_DCACHEABLE
953         bool "Enable DCACHE for external memory"
954         depends on BFIN_DCACHE
955         default y
956 choice
957         prompt "External memory DCACHE policy"
958         depends on BFIN_EXTMEM_DCACHEABLE
959         default BFIN_EXTMEM_WRITEBACK if !SMP
960         default BFIN_EXTMEM_WRITETHROUGH if SMP
961 config BFIN_EXTMEM_WRITEBACK
962         bool "Write back"
963         depends on !SMP
964         help
965           Write Back Policy:
966             Cached data will be written back to SDRAM only when needed.
967             This can give a nice increase in performance, but beware of
968             broken drivers that do not properly invalidate/flush their
969             cache.
970
971           Write Through Policy:
972             Cached data will always be written back to SDRAM when the
973             cache is updated.  This is a completely safe setting, but
974             performance is worse than Write Back.
975
976           If you are unsure of the options and you want to be safe,
977           then go with Write Through.
978
979 config BFIN_EXTMEM_WRITETHROUGH
980         bool "Write through"
981         help
982           Write Back Policy:
983             Cached data will be written back to SDRAM only when needed.
984             This can give a nice increase in performance, but beware of
985             broken drivers that do not properly invalidate/flush their
986             cache.
987
988           Write Through Policy:
989             Cached data will always be written back to SDRAM when the
990             cache is updated.  This is a completely safe setting, but
991             performance is worse than Write Back.
992
993           If you are unsure of the options and you want to be safe,
994           then go with Write Through.
995
996 endchoice
997
998 config BFIN_L2_DCACHEABLE
999         bool "Enable DCACHE for L2 SRAM"
1000         depends on BFIN_DCACHE
1001         depends on (BF54x || BF561) && !SMP
1002         default n
1003 choice
1004         prompt "L2 SRAM DCACHE policy"
1005         depends on BFIN_L2_DCACHEABLE
1006         default BFIN_L2_WRITEBACK
1007 config BFIN_L2_WRITEBACK
1008         bool "Write back"
1009
1010 config BFIN_L2_WRITETHROUGH
1011         bool "Write through"
1012 endchoice
1013
1014
1015 comment "Memory Protection Unit"
1016 config MPU
1017         bool "Enable the memory protection unit (EXPERIMENTAL)"
1018         default n
1019         help
1020           Use the processor's MPU to protect applications from accessing
1021           memory they do not own.  This comes at a performance penalty
1022           and is recommended only for debugging.
1023
1024 comment "Asynchronous Memory Configuration"
1025
1026 menu "EBIU_AMGCTL Global Control"
1027 config C_AMCKEN
1028         bool "Enable CLKOUT"
1029         default y
1030
1031 config C_CDPRIO
1032         bool "DMA has priority over core for ext. accesses"
1033         default n
1034
1035 config C_B0PEN
1036         depends on BF561
1037         bool "Bank 0 16 bit packing enable"
1038         default y
1039
1040 config C_B1PEN
1041         depends on BF561
1042         bool "Bank 1 16 bit packing enable"
1043         default y
1044
1045 config C_B2PEN
1046         depends on BF561
1047         bool "Bank 2 16 bit packing enable"
1048         default y
1049
1050 config C_B3PEN
1051         depends on BF561
1052         bool "Bank 3 16 bit packing enable"
1053         default n
1054
1055 choice
1056         prompt "Enable Asynchronous Memory Banks"
1057         default C_AMBEN_ALL
1058
1059 config C_AMBEN
1060         bool "Disable All Banks"
1061
1062 config C_AMBEN_B0
1063         bool "Enable Bank 0"
1064
1065 config C_AMBEN_B0_B1
1066         bool "Enable Bank 0 & 1"
1067
1068 config C_AMBEN_B0_B1_B2
1069         bool "Enable Bank 0 & 1 & 2"
1070
1071 config C_AMBEN_ALL
1072         bool "Enable All Banks"
1073 endchoice
1074 endmenu
1075
1076 menu "EBIU_AMBCTL Control"
1077 config BANK_0
1078         hex "Bank 0 (AMBCTL0.L)"
1079         default 0x7BB0
1080         help
1081           These are the low 16 bits of the EBIU_AMBCTL0 MMR which are
1082           used to control the Asynchronous Memory Bank 0 settings.
1083
1084 config BANK_1
1085         hex "Bank 1 (AMBCTL0.H)"
1086         default 0x7BB0
1087         default 0x5558 if BF54x
1088         help
1089           These are the high 16 bits of the EBIU_AMBCTL0 MMR which are
1090           used to control the Asynchronous Memory Bank 1 settings.
1091
1092 config BANK_2
1093         hex "Bank 2 (AMBCTL1.L)"
1094         default 0x7BB0
1095         help
1096           These are the low 16 bits of the EBIU_AMBCTL1 MMR which are
1097           used to control the Asynchronous Memory Bank 2 settings.
1098
1099 config BANK_3
1100         hex "Bank 3 (AMBCTL1.H)"
1101         default 0x99B3
1102         help
1103           These are the high 16 bits of the EBIU_AMBCTL1 MMR which are
1104           used to control the Asynchronous Memory Bank 3 settings.
1105
1106 endmenu
1107
1108 config EBIU_MBSCTLVAL
1109         hex "EBIU Bank Select Control Register"
1110         depends on BF54x
1111         default 0
1112
1113 config EBIU_MODEVAL
1114         hex "Flash Memory Mode Control Register"
1115         depends on BF54x
1116         default 1
1117
1118 config EBIU_FCTLVAL
1119         hex "Flash Memory Bank Control Register"
1120         depends on BF54x
1121         default 6
1122 endmenu
1123
1124 #############################################################################
1125 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1126
1127 config PCI
1128         bool "PCI support"
1129         depends on BROKEN
1130         help
1131           Support for PCI bus.
1132
1133 source "drivers/pci/Kconfig"
1134
1135 source "drivers/pcmcia/Kconfig"
1136
1137 source "drivers/pci/hotplug/Kconfig"
1138
1139 endmenu
1140
1141 menu "Executable file formats"
1142
1143 source "fs/Kconfig.binfmt"
1144
1145 endmenu
1146
1147 menu "Power management options"
1148
1149 source "kernel/power/Kconfig"
1150
1151 config ARCH_SUSPEND_POSSIBLE
1152         def_bool y
1153
1154 choice
1155         prompt "Standby Power Saving Mode"
1156         depends on PM
1157         default PM_BFIN_SLEEP_DEEPER
1158 config  PM_BFIN_SLEEP_DEEPER
1159         bool "Sleep Deeper"
1160         help
1161           Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1162           power dissipation by disabling the clock to the processor core (CCLK).
1163           Furthermore, Standby sets the internal power supply voltage (VDDINT)
1164           to 0.85 V to provide the greatest power savings, while preserving the
1165           processor state.
1166           The PLL and system clock (SCLK) continue to operate at a very low
1167           frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1168           the SDRAM is put into Self Refresh Mode. Typically an external event
1169           such as GPIO interrupt or RTC activity wakes up the processor.
1170           Various Peripherals such as UART, SPORT, PPI may not function as
1171           normal during Sleep Deeper, due to the reduced SCLK frequency.
1172           When in the sleep mode, system DMA access to L1 memory is not supported.
1173
1174           If unsure, select "Sleep Deeper".
1175
1176 config  PM_BFIN_SLEEP
1177         bool "Sleep"
1178         help
1179           Sleep Mode (High Power Savings) - The sleep mode reduces power
1180           dissipation by disabling the clock to the processor core (CCLK).
1181           The PLL and system clock (SCLK), however, continue to operate in
1182           this mode. Typically an external event or RTC activity will wake
1183           up the processor. When in the sleep mode, system DMA access to L1
1184           memory is not supported.
1185
1186           If unsure, select "Sleep Deeper".
1187 endchoice
1188
1189 config PM_WAKEUP_BY_GPIO
1190         bool "Allow Wakeup from Standby by GPIO"
1191         depends on PM && !BF54x
1192
1193 config PM_WAKEUP_GPIO_NUMBER
1194         int "GPIO number"
1195         range 0 47
1196         depends on PM_WAKEUP_BY_GPIO
1197         default 2
1198
1199 choice
1200         prompt "GPIO Polarity"
1201         depends on PM_WAKEUP_BY_GPIO
1202         default PM_WAKEUP_GPIO_POLAR_H
1203 config  PM_WAKEUP_GPIO_POLAR_H
1204         bool "Active High"
1205 config  PM_WAKEUP_GPIO_POLAR_L
1206         bool "Active Low"
1207 config  PM_WAKEUP_GPIO_POLAR_EDGE_F
1208         bool "Falling EDGE"
1209 config  PM_WAKEUP_GPIO_POLAR_EDGE_R
1210         bool "Rising EDGE"
1211 config  PM_WAKEUP_GPIO_POLAR_EDGE_B
1212         bool "Both EDGE"
1213 endchoice
1214
1215 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1216         depends on PM
1217
1218 config PM_BFIN_WAKE_PH6
1219         bool "Allow Wake-Up from on-chip PHY or PH6 GP"
1220         depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
1221         default n
1222         help
1223           Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1224
1225 config PM_BFIN_WAKE_GP
1226         bool "Allow Wake-Up from GPIOs"
1227         depends on PM && BF54x
1228         default n
1229         help
1230           Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1231           (all processors, except ADSP-BF549). This option sets
1232           the general-purpose wake-up enable (GPWE) control bit to enable
1233           wake-up upon detection of an active low signal on the /GPW (PH7) pin.
1234           On ADSP-BF549 this option enables the the same functionality on the
1235           /MRXON pin also PH7.
1236
1237 endmenu
1238
1239 menu "CPU Frequency scaling"
1240
1241 source "drivers/cpufreq/Kconfig"
1242
1243 config BFIN_CPU_FREQ
1244         bool
1245         depends on CPU_FREQ
1246         select CPU_FREQ_TABLE
1247         default y
1248
1249 config CPU_VOLTAGE
1250         bool "CPU Voltage scaling"
1251         depends on EXPERIMENTAL
1252         depends on CPU_FREQ
1253         default n
1254         help
1255           Say Y here if you want CPU voltage scaling according to the CPU frequency.
1256           This option violates the PLL BYPASS recommendation in the Blackfin Processor
1257           manuals. There is a theoretical risk that during VDDINT transitions
1258           the PLL may unlock.
1259
1260 endmenu
1261
1262 source "net/Kconfig"
1263
1264 source "drivers/Kconfig"
1265
1266 source "drivers/firmware/Kconfig"
1267
1268 source "fs/Kconfig"
1269
1270 source "arch/blackfin/Kconfig.debug"
1271
1272 source "security/Kconfig"
1273
1274 source "crypto/Kconfig"
1275
1276 source "lib/Kconfig"