af44a06e07c5d0a946e91bf410ce1185e88f9fef
[safe/jmp/linux-2.6] / 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 MMU
9         def_bool n
10
11 config FPU
12         def_bool n
13
14 config RWSEM_GENERIC_SPINLOCK
15         def_bool y
16
17 config RWSEM_XCHGADD_ALGORITHM
18         def_bool n
19
20 config BLACKFIN
21         def_bool y
22         select HAVE_FUNCTION_GRAPH_TRACER
23         select HAVE_FUNCTION_TRACER
24         select HAVE_IDE
25         select HAVE_KERNEL_GZIP
26         select HAVE_KERNEL_BZIP2
27         select HAVE_KERNEL_LZMA
28         select HAVE_OPROFILE
29         select ARCH_WANT_OPTIONAL_GPIOLIB
30
31 config GENERIC_CSUM
32         def_bool y
33
34 config GENERIC_BUG
35         def_bool y
36         depends on BUG
37
38 config ZONE_DMA
39         def_bool y
40
41 config GENERIC_FIND_NEXT_BIT
42         def_bool y
43
44 config GENERIC_HWEIGHT
45         def_bool y
46
47 config GENERIC_HARDIRQS
48         def_bool y
49
50 config GENERIC_IRQ_PROBE
51         def_bool y
52
53 config GENERIC_HARDIRQS_NO__DO_IRQ
54         def_bool y
55
56 config GENERIC_GPIO
57         def_bool y
58
59 config FORCE_MAX_ZONEORDER
60         int
61         default "14"
62
63 config GENERIC_CALIBRATE_DELAY
64         def_bool y
65
66 config LOCKDEP_SUPPORT
67         def_bool y
68
69 config STACKTRACE_SUPPORT
70         def_bool y
71
72 config TRACE_IRQFLAGS_SUPPORT
73         def_bool y
74
75 source "init/Kconfig"
76
77 source "kernel/Kconfig.preempt"
78
79 source "kernel/Kconfig.freezer"
80
81 menu "Blackfin Processor Options"
82
83 comment "Processor and Board Settings"
84
85 choice
86         prompt "CPU"
87         default BF533
88
89 config BF512
90         bool "BF512"
91         help
92           BF512 Processor Support.
93
94 config BF514
95         bool "BF514"
96         help
97           BF514 Processor Support.
98
99 config BF516
100         bool "BF516"
101         help
102           BF516 Processor Support.
103
104 config BF518
105         bool "BF518"
106         help
107           BF518 Processor Support.
108
109 config BF522
110         bool "BF522"
111         help
112           BF522 Processor Support.
113
114 config BF523
115         bool "BF523"
116         help
117           BF523 Processor Support.
118
119 config BF524
120         bool "BF524"
121         help
122           BF524 Processor Support.
123
124 config BF525
125         bool "BF525"
126         help
127           BF525 Processor Support.
128
129 config BF526
130         bool "BF526"
131         help
132           BF526 Processor Support.
133
134 config BF527
135         bool "BF527"
136         help
137           BF527 Processor Support.
138
139 config BF531
140         bool "BF531"
141         help
142           BF531 Processor Support.
143
144 config BF532
145         bool "BF532"
146         help
147           BF532 Processor Support.
148
149 config BF533
150         bool "BF533"
151         help
152           BF533 Processor Support.
153
154 config BF534
155         bool "BF534"
156         help
157           BF534 Processor Support.
158
159 config BF536
160         bool "BF536"
161         help
162           BF536 Processor Support.
163
164 config BF537
165         bool "BF537"
166         help
167           BF537 Processor Support.
168
169 config BF538
170         bool "BF538"
171         help
172           BF538 Processor Support.
173
174 config BF539
175         bool "BF539"
176         help
177           BF539 Processor Support.
178
179 config BF542
180         bool "BF542"
181         help
182           BF542 Processor Support.
183
184 config BF542M
185         bool "BF542m"
186         help
187           BF542 Processor Support.
188
189 config BF544
190         bool "BF544"
191         help
192           BF544 Processor Support.
193
194 config BF544M
195         bool "BF544m"
196         help
197           BF544 Processor Support.
198
199 config BF547
200         bool "BF547"
201         help
202           BF547 Processor Support.
203
204 config BF547M
205         bool "BF547m"
206         help
207           BF547 Processor Support.
208
209 config BF548
210         bool "BF548"
211         help
212           BF548 Processor Support.
213
214 config BF548M
215         bool "BF548m"
216         help
217           BF548 Processor Support.
218
219 config BF549
220         bool "BF549"
221         help
222           BF549 Processor Support.
223
224 config BF549M
225         bool "BF549m"
226         help
227           BF549 Processor Support.
228
229 config BF561
230         bool "BF561"
231         help
232           BF561 Processor Support.
233
234 endchoice
235
236 config SMP
237         depends on BF561
238         select GENERIC_CLOCKEVENTS
239         bool "Symmetric multi-processing support"
240         ---help---
241           This enables support for systems with more than one CPU,
242           like the dual core BF561. If you have a system with only one
243           CPU, say N. If you have a system with more than one CPU, say Y.
244
245           If you don't know what to do here, say N.
246
247 config NR_CPUS
248         int
249         depends on SMP
250         default 2 if BF561
251
252 config IRQ_PER_CPU
253         bool
254         depends on SMP
255         default y
256
257 config BF_REV_MIN
258         int
259         default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
260         default 2 if (BF537 || BF536 || BF534)
261         default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM)
262         default 4 if (BF538 || BF539)
263
264 config BF_REV_MAX
265         int
266         default 2 if (BF51x || BF52x || (BF54x && !BF54xM))
267         default 3 if (BF537 || BF536 || BF534 || BF54xM)
268         default 5 if (BF561 || BF538 || BF539)
269         default 6 if (BF533 || BF532 || BF531)
270
271 choice
272         prompt "Silicon Rev"
273         default BF_REV_0_0 if (BF51x || BF52x)
274         default BF_REV_0_2 if (BF534 || BF536 || BF537 || (BF54x && !BF54xM))
275         default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561)
276
277 config BF_REV_0_0
278         bool "0.0"
279         depends on (BF51x || BF52x || (BF54x && !BF54xM))
280
281 config BF_REV_0_1
282         bool "0.1"
283         depends on (BF51x || BF52x || (BF54x && !BF54xM))
284
285 config BF_REV_0_2
286         bool "0.2"
287         depends on (BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
288
289 config BF_REV_0_3
290         bool "0.3"
291         depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
292
293 config BF_REV_0_4
294         bool "0.4"
295         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
296
297 config BF_REV_0_5
298         bool "0.5"
299         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
300
301 config BF_REV_0_6
302         bool "0.6"
303         depends on (BF533 || BF532 || BF531)
304
305 config BF_REV_ANY
306         bool "any"
307
308 config BF_REV_NONE
309         bool "none"
310
311 endchoice
312
313 config BF51x
314         bool
315         depends on (BF512 || BF514 || BF516 || BF518)
316         default y
317
318 config BF52x
319         bool
320         depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
321         default y
322
323 config BF53x
324         bool
325         depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
326         default y
327
328 config BF54xM
329         bool
330         depends on (BF542M || BF544M || BF547M || BF548M || BF549M)
331         default y
332
333 config BF54x
334         bool
335         depends on (BF542 || BF544 || BF547 || BF548 || BF549 || BF54xM)
336         default y
337
338 config MEM_GENERIC_BOARD
339         bool
340         depends on GENERIC_BOARD
341         default y
342
343 config MEM_MT48LC64M4A2FB_7E
344         bool
345         depends on (BFIN533_STAMP)
346         default y
347
348 config MEM_MT48LC16M16A2TG_75
349         bool
350         depends on (BFIN533_EZKIT || BFIN561_EZKIT \
351                 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM_E \
352                 || BFIN537_BLUETECHNIX_CM_U || H8606_HVSISTEMAS \
353                 || BFIN527_BLUETECHNIX_CM)
354         default y
355
356 config MEM_MT48LC32M8A2_75
357         bool
358         depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
359         default y
360
361 config MEM_MT48LC8M32B2B5_7
362         bool
363         depends on (BFIN561_BLUETECHNIX_CM)
364         default y
365
366 config MEM_MT48LC32M16A2TG_75
367         bool
368         depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP)
369         default y
370
371 config MEM_MT48LC32M8A2_75
372         bool
373         depends on (BFIN518F_EZBRD)
374         default y
375
376 config MEM_MT48H32M16LFCJ_75
377         bool
378         depends on (BFIN526_EZBRD)
379         default y
380
381 source "arch/blackfin/mach-bf518/Kconfig"
382 source "arch/blackfin/mach-bf527/Kconfig"
383 source "arch/blackfin/mach-bf533/Kconfig"
384 source "arch/blackfin/mach-bf561/Kconfig"
385 source "arch/blackfin/mach-bf537/Kconfig"
386 source "arch/blackfin/mach-bf538/Kconfig"
387 source "arch/blackfin/mach-bf548/Kconfig"
388
389 menu "Board customizations"
390
391 config CMDLINE_BOOL
392         bool "Default bootloader kernel arguments"
393
394 config CMDLINE
395         string "Initial kernel command string"
396         depends on CMDLINE_BOOL
397         default "console=ttyBF0,57600"
398         help
399           If you don't have a boot loader capable of passing a command line string
400           to the kernel, you may specify one here. As a minimum, you should specify
401           the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
402
403 config BOOT_LOAD
404         hex "Kernel load address for booting"
405         default "0x1000"
406         range 0x1000 0x20000000
407         help
408           This option allows you to set the load address of the kernel.
409           This can be useful if you are on a board which has a small amount
410           of memory or you wish to reserve some memory at the beginning of
411           the address space.
412
413           Note that you need to keep this value above 4k (0x1000) as this
414           memory region is used to capture NULL pointer references as well
415           as some core kernel functions.
416
417 config ROM_BASE
418         hex "Kernel ROM Base"
419         depends on ROMKERNEL
420         default "0x20040000"
421         range 0x20000000 0x20400000 if !(BF54x || BF561)
422         range 0x20000000 0x30000000 if (BF54x || BF561)
423         help
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 || 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 choice
629         prompt "Kernel Tick Source"
630         depends on GENERIC_CLOCKEVENTS
631         default TICKSOURCE_CORETMR
632
633 config TICKSOURCE_GPTMR0
634         bool "Gptimer0 (SCLK domain)"
635         select BFIN_GPTIMERS
636
637 config TICKSOURCE_CORETMR
638         bool "Core timer (CCLK domain)"
639
640 endchoice
641
642 config CYCLES_CLOCKSOURCE
643         bool "Use 'CYCLES' as a clocksource"
644         depends on GENERIC_CLOCKEVENTS
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 "Use GPTimer0 as a clocksource"
656         select BFIN_GPTIMERS
657         depends on GENERIC_CLOCKEVENTS
658         depends on !TICKSOURCE_GPTMR0
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_NONE
920         bool "Disable DMA region"
921 endchoice
922
923
924 comment "Cache Support"
925
926 config BFIN_ICACHE
927         bool "Enable ICACHE"
928         default y
929 config BFIN_EXTMEM_ICACHEABLE
930         bool "Enable ICACHE for external memory"
931         depends on BFIN_ICACHE
932         default y
933 config BFIN_L2_ICACHEABLE
934         bool "Enable ICACHE for L2 SRAM"
935         depends on BFIN_ICACHE
936         depends on BF54x || BF561
937         default n
938
939 config BFIN_DCACHE
940         bool "Enable DCACHE"
941         default y
942 config BFIN_DCACHE_BANKA
943         bool "Enable only 16k BankA DCACHE - BankB is SRAM"
944         depends on BFIN_DCACHE && !BF531
945         default n
946 config BFIN_EXTMEM_DCACHEABLE
947         bool "Enable DCACHE for external memory"
948         depends on BFIN_DCACHE
949         default y
950 choice
951         prompt "External memory DCACHE policy"
952         depends on BFIN_EXTMEM_DCACHEABLE
953         default BFIN_EXTMEM_WRITEBACK if !SMP
954         default BFIN_EXTMEM_WRITETHROUGH if SMP
955 config BFIN_EXTMEM_WRITEBACK
956         bool "Write back"
957         depends on !SMP
958         help
959           Write Back Policy:
960             Cached data will be written back to SDRAM only when needed.
961             This can give a nice increase in performance, but beware of
962             broken drivers that do not properly invalidate/flush their
963             cache.
964
965           Write Through Policy:
966             Cached data will always be written back to SDRAM when the
967             cache is updated.  This is a completely safe setting, but
968             performance is worse than Write Back.
969
970           If you are unsure of the options and you want to be safe,
971           then go with Write Through.
972
973 config BFIN_EXTMEM_WRITETHROUGH
974         bool "Write through"
975         help
976           Write Back Policy:
977             Cached data will be written back to SDRAM only when needed.
978             This can give a nice increase in performance, but beware of
979             broken drivers that do not properly invalidate/flush their
980             cache.
981
982           Write Through Policy:
983             Cached data will always be written back to SDRAM when the
984             cache is updated.  This is a completely safe setting, but
985             performance is worse than Write Back.
986
987           If you are unsure of the options and you want to be safe,
988           then go with Write Through.
989
990 endchoice
991
992 config BFIN_L2_DCACHEABLE
993         bool "Enable DCACHE for L2 SRAM"
994         depends on BFIN_DCACHE
995         depends on (BF54x || BF561) && !SMP
996         default n
997 choice
998         prompt "L2 SRAM DCACHE policy"
999         depends on BFIN_L2_DCACHEABLE
1000         default BFIN_L2_WRITEBACK
1001 config BFIN_L2_WRITEBACK
1002         bool "Write back"
1003
1004 config BFIN_L2_WRITETHROUGH
1005         bool "Write through"
1006 endchoice
1007
1008
1009 comment "Memory Protection Unit"
1010 config MPU
1011         bool "Enable the memory protection unit (EXPERIMENTAL)"
1012         default n
1013         help
1014           Use the processor's MPU to protect applications from accessing
1015           memory they do not own.  This comes at a performance penalty
1016           and is recommended only for debugging.
1017
1018 comment "Asynchronous Memory Configuration"
1019
1020 menu "EBIU_AMGCTL Global Control"
1021 config C_AMCKEN
1022         bool "Enable CLKOUT"
1023         default y
1024
1025 config C_CDPRIO
1026         bool "DMA has priority over core for ext. accesses"
1027         default n
1028
1029 config C_B0PEN
1030         depends on BF561
1031         bool "Bank 0 16 bit packing enable"
1032         default y
1033
1034 config C_B1PEN
1035         depends on BF561
1036         bool "Bank 1 16 bit packing enable"
1037         default y
1038
1039 config C_B2PEN
1040         depends on BF561
1041         bool "Bank 2 16 bit packing enable"
1042         default y
1043
1044 config C_B3PEN
1045         depends on BF561
1046         bool "Bank 3 16 bit packing enable"
1047         default n
1048
1049 choice
1050         prompt "Enable Asynchronous Memory Banks"
1051         default C_AMBEN_ALL
1052
1053 config C_AMBEN
1054         bool "Disable All Banks"
1055
1056 config C_AMBEN_B0
1057         bool "Enable Bank 0"
1058
1059 config C_AMBEN_B0_B1
1060         bool "Enable Bank 0 & 1"
1061
1062 config C_AMBEN_B0_B1_B2
1063         bool "Enable Bank 0 & 1 & 2"
1064
1065 config C_AMBEN_ALL
1066         bool "Enable All Banks"
1067 endchoice
1068 endmenu
1069
1070 menu "EBIU_AMBCTL Control"
1071 config BANK_0
1072         hex "Bank 0 (AMBCTL0.L)"
1073         default 0x7BB0
1074         help
1075           These are the low 16 bits of the EBIU_AMBCTL0 MMR which are
1076           used to control the Asynchronous Memory Bank 0 settings.
1077
1078 config BANK_1
1079         hex "Bank 1 (AMBCTL0.H)"
1080         default 0x7BB0
1081         default 0x5558 if BF54x
1082         help
1083           These are the high 16 bits of the EBIU_AMBCTL0 MMR which are
1084           used to control the Asynchronous Memory Bank 1 settings.
1085
1086 config BANK_2
1087         hex "Bank 2 (AMBCTL1.L)"
1088         default 0x7BB0
1089         help
1090           These are the low 16 bits of the EBIU_AMBCTL1 MMR which are
1091           used to control the Asynchronous Memory Bank 2 settings.
1092
1093 config BANK_3
1094         hex "Bank 3 (AMBCTL1.H)"
1095         default 0x99B3
1096         help
1097           These are the high 16 bits of the EBIU_AMBCTL1 MMR which are
1098           used to control the Asynchronous Memory Bank 3 settings.
1099
1100 endmenu
1101
1102 config EBIU_MBSCTLVAL
1103         hex "EBIU Bank Select Control Register"
1104         depends on BF54x
1105         default 0
1106
1107 config EBIU_MODEVAL
1108         hex "Flash Memory Mode Control Register"
1109         depends on BF54x
1110         default 1
1111
1112 config EBIU_FCTLVAL
1113         hex "Flash Memory Bank Control Register"
1114         depends on BF54x
1115         default 6
1116 endmenu
1117
1118 #############################################################################
1119 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1120
1121 config PCI
1122         bool "PCI support"
1123         depends on BROKEN
1124         help
1125           Support for PCI bus.
1126
1127 source "drivers/pci/Kconfig"
1128
1129 config HOTPLUG
1130         bool "Support for hot-pluggable device"
1131           help
1132           Say Y here if you want to plug devices into your computer while
1133           the system is running, and be able to use them quickly.  In many
1134           cases, the devices can likewise be unplugged at any time too.
1135
1136           One well known example of this is PCMCIA- or PC-cards, credit-card
1137           size devices such as network cards, modems or hard drives which are
1138           plugged into slots found on all modern laptop computers.  Another
1139           example, used on modern desktops as well as laptops, is USB.
1140
1141           Enable HOTPLUG and build a modular kernel.  Get agent software
1142           (from <http://linux-hotplug.sourceforge.net/>) and install it.
1143           Then your kernel will automatically call out to a user mode "policy
1144           agent" (/sbin/hotplug) to load modules and set up software needed
1145           to use devices as you hotplug them.
1146
1147 source "drivers/pcmcia/Kconfig"
1148
1149 source "drivers/pci/hotplug/Kconfig"
1150
1151 endmenu
1152
1153 menu "Executable file formats"
1154
1155 source "fs/Kconfig.binfmt"
1156
1157 endmenu
1158
1159 menu "Power management options"
1160         depends on !SMP
1161
1162 source "kernel/power/Kconfig"
1163
1164 config ARCH_SUSPEND_POSSIBLE
1165         def_bool y
1166
1167 choice
1168         prompt "Standby Power Saving Mode"
1169         depends on PM
1170         default PM_BFIN_SLEEP_DEEPER
1171 config  PM_BFIN_SLEEP_DEEPER
1172         bool "Sleep Deeper"
1173         help
1174           Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1175           power dissipation by disabling the clock to the processor core (CCLK).
1176           Furthermore, Standby sets the internal power supply voltage (VDDINT)
1177           to 0.85 V to provide the greatest power savings, while preserving the
1178           processor state.
1179           The PLL and system clock (SCLK) continue to operate at a very low
1180           frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1181           the SDRAM is put into Self Refresh Mode. Typically an external event
1182           such as GPIO interrupt or RTC activity wakes up the processor.
1183           Various Peripherals such as UART, SPORT, PPI may not function as
1184           normal during Sleep Deeper, due to the reduced SCLK frequency.
1185           When in the sleep mode, system DMA access to L1 memory is not supported.
1186
1187           If unsure, select "Sleep Deeper".
1188
1189 config  PM_BFIN_SLEEP
1190         bool "Sleep"
1191         help
1192           Sleep Mode (High Power Savings) - The sleep mode reduces power
1193           dissipation by disabling the clock to the processor core (CCLK).
1194           The PLL and system clock (SCLK), however, continue to operate in
1195           this mode. Typically an external event or RTC activity will wake
1196           up the processor. When in the sleep mode, system DMA access to L1
1197           memory is not supported.
1198
1199           If unsure, select "Sleep Deeper".
1200 endchoice
1201
1202 config PM_WAKEUP_BY_GPIO
1203         bool "Allow Wakeup from Standby by GPIO"
1204         depends on PM && !BF54x
1205
1206 config PM_WAKEUP_GPIO_NUMBER
1207         int "GPIO number"
1208         range 0 47
1209         depends on PM_WAKEUP_BY_GPIO
1210         default 2
1211
1212 choice
1213         prompt "GPIO Polarity"
1214         depends on PM_WAKEUP_BY_GPIO
1215         default PM_WAKEUP_GPIO_POLAR_H
1216 config  PM_WAKEUP_GPIO_POLAR_H
1217         bool "Active High"
1218 config  PM_WAKEUP_GPIO_POLAR_L
1219         bool "Active Low"
1220 config  PM_WAKEUP_GPIO_POLAR_EDGE_F
1221         bool "Falling EDGE"
1222 config  PM_WAKEUP_GPIO_POLAR_EDGE_R
1223         bool "Rising EDGE"
1224 config  PM_WAKEUP_GPIO_POLAR_EDGE_B
1225         bool "Both EDGE"
1226 endchoice
1227
1228 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1229         depends on PM
1230
1231 config PM_BFIN_WAKE_PH6
1232         bool "Allow Wake-Up from on-chip PHY or PH6 GP"
1233         depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
1234         default n
1235         help
1236           Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1237
1238 config PM_BFIN_WAKE_GP
1239         bool "Allow Wake-Up from GPIOs"
1240         depends on PM && BF54x
1241         default n
1242         help
1243           Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1244           (all processors, except ADSP-BF549). This option sets
1245           the general-purpose wake-up enable (GPWE) control bit to enable
1246           wake-up upon detection of an active low signal on the /GPW (PH7) pin.
1247           On ADSP-BF549 this option enables the the same functionality on the
1248           /MRXON pin also PH7.
1249
1250 endmenu
1251
1252 menu "CPU Frequency scaling"
1253         depends on !SMP
1254
1255 source "drivers/cpufreq/Kconfig"
1256
1257 config BFIN_CPU_FREQ
1258         bool
1259         depends on CPU_FREQ
1260         select CPU_FREQ_TABLE
1261         default y
1262
1263 config CPU_VOLTAGE
1264         bool "CPU Voltage scaling"
1265         depends on EXPERIMENTAL
1266         depends on CPU_FREQ
1267         default n
1268         help
1269           Say Y here if you want CPU voltage scaling according to the CPU frequency.
1270           This option violates the PLL BYPASS recommendation in the Blackfin Processor
1271           manuals. There is a theoretical risk that during VDDINT transitions
1272           the PLL may unlock.
1273
1274 endmenu
1275
1276 source "net/Kconfig"
1277
1278 source "drivers/Kconfig"
1279
1280 source "drivers/firmware/Kconfig"
1281
1282 source "fs/Kconfig"
1283
1284 source "arch/blackfin/Kconfig.debug"
1285
1286 source "security/Kconfig"
1287
1288 source "crypto/Kconfig"
1289
1290 source "lib/Kconfig"