]> bbs.cooldavid.org Git - net-next-2.6.git/blob - arch/blackfin/Kconfig
Blackfin: support smaller uncached DMA chunks for memory constrained systems
[net-next-2.6.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 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_std
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_std
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_std
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_std
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_std
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 BF53x
314         bool
315         depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
316         default y
317
318 config MEM_GENERIC_BOARD
319         bool
320         depends on GENERIC_BOARD
321         default y
322
323 config MEM_MT48LC64M4A2FB_7E
324         bool
325         depends on (BFIN533_STAMP)
326         default y
327
328 config MEM_MT48LC16M16A2TG_75
329         bool
330         depends on (BFIN533_EZKIT || BFIN561_EZKIT \
331                 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM_E \
332                 || BFIN537_BLUETECHNIX_CM_U || H8606_HVSISTEMAS \
333                 || BFIN527_BLUETECHNIX_CM)
334         default y
335
336 config MEM_MT48LC32M8A2_75
337         bool
338         depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
339         default y
340
341 config MEM_MT48LC8M32B2B5_7
342         bool
343         depends on (BFIN561_BLUETECHNIX_CM)
344         default y
345
346 config MEM_MT48LC32M16A2TG_75
347         bool
348         depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP)
349         default y
350
351 config MEM_MT48LC32M8A2_75
352         bool
353         depends on (BFIN518F_EZBRD)
354         default y
355
356 config MEM_MT48H32M16LFCJ_75
357         bool
358         depends on (BFIN526_EZBRD)
359         default y
360
361 source "arch/blackfin/mach-bf518/Kconfig"
362 source "arch/blackfin/mach-bf527/Kconfig"
363 source "arch/blackfin/mach-bf533/Kconfig"
364 source "arch/blackfin/mach-bf561/Kconfig"
365 source "arch/blackfin/mach-bf537/Kconfig"
366 source "arch/blackfin/mach-bf538/Kconfig"
367 source "arch/blackfin/mach-bf548/Kconfig"
368
369 menu "Board customizations"
370
371 config CMDLINE_BOOL
372         bool "Default bootloader kernel arguments"
373
374 config CMDLINE
375         string "Initial kernel command string"
376         depends on CMDLINE_BOOL
377         default "console=ttyBF0,57600"
378         help
379           If you don't have a boot loader capable of passing a command line string
380           to the kernel, you may specify one here. As a minimum, you should specify
381           the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
382
383 config BOOT_LOAD
384         hex "Kernel load address for booting"
385         default "0x1000"
386         range 0x1000 0x20000000
387         help
388           This option allows you to set the load address of the kernel.
389           This can be useful if you are on a board which has a small amount
390           of memory or you wish to reserve some memory at the beginning of
391           the address space.
392
393           Note that you need to keep this value above 4k (0x1000) as this
394           memory region is used to capture NULL pointer references as well
395           as some core kernel functions.
396
397 config ROM_BASE
398         hex "Kernel ROM Base"
399         depends on ROMKERNEL
400         default "0x20040000"
401         range 0x20000000 0x20400000 if !(BF54x || BF561)
402         range 0x20000000 0x30000000 if (BF54x || BF561)
403         help
404
405 comment "Clock/PLL Setup"
406
407 config CLKIN_HZ
408         int "Frequency of the crystal on the board in Hz"
409         default "10000000" if BFIN532_IP0X
410         default "11059200" if BFIN533_STAMP
411         default "24576000" if PNAV10
412         default "25000000" # most people use this
413         default "27000000" if BFIN533_EZKIT
414         default "30000000" if BFIN561_EZKIT
415         help
416           The frequency of CLKIN crystal oscillator on the board in Hz.
417           Warning: This value should match the crystal on the board. Otherwise,
418           peripherals won't work properly.
419
420 config BFIN_KERNEL_CLOCK
421         bool "Re-program Clocks while Kernel boots?"
422         default n
423         help
424           This option decides if kernel clocks are re-programed from the
425           bootloader settings. If the clocks are not set, the SDRAM settings
426           are also not changed, and the Bootloader does 100% of the hardware
427           configuration.
428
429 config PLL_BYPASS
430         bool "Bypass PLL"
431         depends on BFIN_KERNEL_CLOCK
432         default n
433
434 config CLKIN_HALF
435         bool "Half Clock In"
436         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
437         default n
438         help
439           If this is set the clock will be divided by 2, before it goes to the PLL.
440
441 config VCO_MULT
442         int "VCO Multiplier"
443         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
444         range 1 64
445         default "22" if BFIN533_EZKIT
446         default "45" if BFIN533_STAMP
447         default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
448         default "22" if BFIN533_BLUETECHNIX_CM
449         default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
450         default "20" if BFIN561_EZKIT
451         default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
452         help
453           This controls the frequency of the on-chip PLL. This can be between 1 and 64.
454           PLL Frequency = (Crystal Frequency) * (this setting)
455
456 choice
457         prompt "Core Clock Divider"
458         depends on BFIN_KERNEL_CLOCK
459         default CCLK_DIV_1
460         help
461           This sets the frequency of the core. It can be 1, 2, 4 or 8
462           Core Frequency = (PLL frequency) / (this setting)
463
464 config CCLK_DIV_1
465         bool "1"
466
467 config CCLK_DIV_2
468         bool "2"
469
470 config CCLK_DIV_4
471         bool "4"
472
473 config CCLK_DIV_8
474         bool "8"
475 endchoice
476
477 config SCLK_DIV
478         int "System Clock Divider"
479         depends on BFIN_KERNEL_CLOCK
480         range 1 15
481         default 5
482         help
483           This sets the frequency of the system clock (including SDRAM or DDR).
484           This can be between 1 and 15
485           System Clock = (PLL frequency) / (this setting)
486
487 choice
488         prompt "DDR SDRAM Chip Type"
489         depends on BFIN_KERNEL_CLOCK
490         depends on BF54x
491         default MEM_MT46V32M16_5B
492
493 config MEM_MT46V32M16_6T
494         bool "MT46V32M16_6T"
495
496 config MEM_MT46V32M16_5B
497         bool "MT46V32M16_5B"
498 endchoice
499
500 choice
501         prompt "DDR/SDRAM Timing"
502         depends on BFIN_KERNEL_CLOCK
503         default BFIN_KERNEL_CLOCK_MEMINIT_CALC
504         help
505           This option allows you to specify Blackfin SDRAM/DDR Timing parameters
506           The calculated SDRAM timing parameters may not be 100%
507           accurate - This option is therefore marked experimental.
508
509 config BFIN_KERNEL_CLOCK_MEMINIT_CALC
510         bool "Calculate Timings (EXPERIMENTAL)"
511         depends on EXPERIMENTAL
512
513 config BFIN_KERNEL_CLOCK_MEMINIT_SPEC
514         bool "Provide accurate Timings based on target SCLK"
515         help
516           Please consult the Blackfin Hardware Reference Manuals as well
517           as the memory device datasheet.
518           http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram
519 endchoice
520
521 menu "Memory Init Control"
522         depends on BFIN_KERNEL_CLOCK_MEMINIT_SPEC
523
524 config MEM_DDRCTL0
525         depends on BF54x
526         hex "DDRCTL0"
527         default 0x0
528
529 config MEM_DDRCTL1
530         depends on BF54x
531         hex "DDRCTL1"
532         default 0x0
533
534 config MEM_DDRCTL2
535         depends on BF54x
536         hex "DDRCTL2"
537         default 0x0
538
539 config MEM_EBIU_DDRQUE
540         depends on BF54x
541         hex "DDRQUE"
542         default 0x0
543
544 config MEM_SDRRC
545         depends on !BF54x
546         hex "SDRRC"
547         default 0x0
548
549 config MEM_SDGCTL
550         depends on !BF54x
551         hex "SDGCTL"
552         default 0x0
553 endmenu
554
555 #
556 # Max & Min Speeds for various Chips
557 #
558 config MAX_VCO_HZ
559         int
560         default 400000000 if BF512
561         default 400000000 if BF514
562         default 400000000 if BF516
563         default 400000000 if BF518
564         default 400000000 if BF522
565         default 600000000 if BF523
566         default 400000000 if BF524
567         default 600000000 if BF525
568         default 400000000 if BF526
569         default 600000000 if BF527
570         default 400000000 if BF531
571         default 400000000 if BF532
572         default 750000000 if BF533
573         default 500000000 if BF534
574         default 400000000 if BF536
575         default 600000000 if BF537
576         default 533333333 if BF538
577         default 533333333 if BF539
578         default 600000000 if BF542
579         default 533333333 if BF544
580         default 600000000 if BF547
581         default 600000000 if BF548
582         default 533333333 if BF549
583         default 600000000 if BF561
584
585 config MIN_VCO_HZ
586         int
587         default 50000000
588
589 config MAX_SCLK_HZ
590         int
591         default 133333333
592
593 config MIN_SCLK_HZ
594         int
595         default 27000000
596
597 comment "Kernel Timer/Scheduler"
598
599 source kernel/Kconfig.hz
600
601 config GENERIC_TIME
602         def_bool y
603
604 config GENERIC_CLOCKEVENTS
605         bool "Generic clock events"
606         default y
607
608 choice
609         prompt "Kernel Tick Source"
610         depends on GENERIC_CLOCKEVENTS
611         default TICKSOURCE_CORETMR
612
613 config TICKSOURCE_GPTMR0
614         bool "Gptimer0 (SCLK domain)"
615         select BFIN_GPTIMERS
616
617 config TICKSOURCE_CORETMR
618         bool "Core timer (CCLK domain)"
619
620 endchoice
621
622 config CYCLES_CLOCKSOURCE
623         bool "Use 'CYCLES' as a clocksource"
624         depends on GENERIC_CLOCKEVENTS
625         depends on !BFIN_SCRATCH_REG_CYCLES
626         depends on !SMP
627         help
628           If you say Y here, you will enable support for using the 'cycles'
629           registers as a clock source.  Doing so means you will be unable to
630           safely write to the 'cycles' register during runtime.  You will
631           still be able to read it (such as for performance monitoring), but
632           writing the registers will most likely crash the kernel.
633
634 config GPTMR0_CLOCKSOURCE
635         bool "Use GPTimer0 as a clocksource"
636         select BFIN_GPTIMERS
637         depends on GENERIC_CLOCKEVENTS
638         depends on !TICKSOURCE_GPTMR0
639
640 config ARCH_USES_GETTIMEOFFSET
641         depends on !GENERIC_CLOCKEVENTS
642         def_bool y
643
644 source kernel/time/Kconfig
645
646 comment "Misc"
647
648 choice
649         prompt "Blackfin Exception Scratch Register"
650         default BFIN_SCRATCH_REG_RETN
651         help
652           Select the resource to reserve for the Exception handler:
653             - RETN: Non-Maskable Interrupt (NMI)
654             - RETE: Exception Return (JTAG/ICE)
655             - CYCLES: Performance counter
656
657           If you are unsure, please select "RETN".
658
659 config BFIN_SCRATCH_REG_RETN
660         bool "RETN"
661         help
662           Use the RETN register in the Blackfin exception handler
663           as a stack scratch register.  This means you cannot
664           safely use NMI on the Blackfin while running Linux, but
665           you can debug the system with a JTAG ICE and use the
666           CYCLES performance registers.
667
668           If you are unsure, please select "RETN".
669
670 config BFIN_SCRATCH_REG_RETE
671         bool "RETE"
672         help
673           Use the RETE register in the Blackfin exception handler
674           as a stack scratch register.  This means you cannot
675           safely use a JTAG ICE while debugging a Blackfin board,
676           but you can safely use the CYCLES performance registers
677           and the NMI.
678
679           If you are unsure, please select "RETN".
680
681 config BFIN_SCRATCH_REG_CYCLES
682         bool "CYCLES"
683         help
684           Use the CYCLES register in the Blackfin exception handler
685           as a stack scratch register.  This means you cannot
686           safely use the CYCLES performance registers on a Blackfin
687           board at anytime, but you can debug the system with a JTAG
688           ICE and use the NMI.
689
690           If you are unsure, please select "RETN".
691
692 endchoice
693
694 endmenu
695
696
697 menu "Blackfin Kernel Optimizations"
698         depends on !SMP
699
700 comment "Memory Optimizations"
701
702 config I_ENTRY_L1
703         bool "Locate interrupt entry code in L1 Memory"
704         default y
705         help
706           If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
707           into L1 instruction memory. (less latency)
708
709 config EXCPT_IRQ_SYSC_L1
710         bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
711         default y
712         help
713           If enabled, the entire ASM lowlevel exception and interrupt entry code
714           (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
715           (less latency)
716
717 config DO_IRQ_L1
718         bool "Locate frequently called do_irq dispatcher function in L1 Memory"
719         default y
720         help
721           If enabled, the frequently called do_irq dispatcher function is linked
722           into L1 instruction memory. (less latency)
723
724 config CORE_TIMER_IRQ_L1
725         bool "Locate frequently called timer_interrupt() function in L1 Memory"
726         default y
727         help
728           If enabled, the frequently called timer_interrupt() function is linked
729           into L1 instruction memory. (less latency)
730
731 config IDLE_L1
732         bool "Locate frequently idle function in L1 Memory"
733         default y
734         help
735           If enabled, the frequently called idle function is linked
736           into L1 instruction memory. (less latency)
737
738 config SCHEDULE_L1
739         bool "Locate kernel schedule function in L1 Memory"
740         default y
741         help
742           If enabled, the frequently called kernel schedule is linked
743           into L1 instruction memory. (less latency)
744
745 config ARITHMETIC_OPS_L1
746         bool "Locate kernel owned arithmetic functions in L1 Memory"
747         default y
748         help
749           If enabled, arithmetic functions are linked
750           into L1 instruction memory. (less latency)
751
752 config ACCESS_OK_L1
753         bool "Locate access_ok function in L1 Memory"
754         default y
755         help
756           If enabled, the access_ok function is linked
757           into L1 instruction memory. (less latency)
758
759 config MEMSET_L1
760         bool "Locate memset function in L1 Memory"
761         default y
762         help
763           If enabled, the memset function is linked
764           into L1 instruction memory. (less latency)
765
766 config MEMCPY_L1
767         bool "Locate memcpy function in L1 Memory"
768         default y
769         help
770           If enabled, the memcpy function is linked
771           into L1 instruction memory. (less latency)
772
773 config SYS_BFIN_SPINLOCK_L1
774         bool "Locate sys_bfin_spinlock function in L1 Memory"
775         default y
776         help
777           If enabled, sys_bfin_spinlock function is linked
778           into L1 instruction memory. (less latency)
779
780 config IP_CHECKSUM_L1
781         bool "Locate IP Checksum function in L1 Memory"
782         default n
783         help
784           If enabled, the IP Checksum function is linked
785           into L1 instruction memory. (less latency)
786
787 config CACHELINE_ALIGNED_L1
788         bool "Locate cacheline_aligned data to L1 Data Memory"
789         default y if !BF54x
790         default n if BF54x
791         depends on !BF531
792         help
793           If enabled, cacheline_aligned data is linked
794           into L1 data memory. (less latency)
795
796 config SYSCALL_TAB_L1
797         bool "Locate Syscall Table L1 Data Memory"
798         default n
799         depends on !BF531
800         help
801           If enabled, the Syscall LUT is linked
802           into L1 data memory. (less latency)
803
804 config CPLB_SWITCH_TAB_L1
805         bool "Locate CPLB Switch Tables L1 Data Memory"
806         default n
807         depends on !BF531
808         help
809           If enabled, the CPLB Switch Tables are linked
810           into L1 data memory. (less latency)
811
812 config APP_STACK_L1
813         bool "Support locating application stack in L1 Scratch Memory"
814         default y
815         help
816           If enabled the application stack can be located in L1
817           scratch memory (less latency).
818
819           Currently only works with FLAT binaries.
820
821 config EXCEPTION_L1_SCRATCH
822         bool "Locate exception stack in L1 Scratch Memory"
823         default n
824         depends on !APP_STACK_L1
825         help
826           Whenever an exception occurs, use the L1 Scratch memory for
827           stack storage.  You cannot place the stacks of FLAT binaries
828           in L1 when using this option.
829
830           If you don't use L1 Scratch, then you should say Y here.
831
832 comment "Speed Optimizations"
833 config BFIN_INS_LOWOVERHEAD
834         bool "ins[bwl] low overhead, higher interrupt latency"
835         default y
836         help
837           Reads on the Blackfin are speculative. In Blackfin terms, this means
838           they can be interrupted at any time (even after they have been issued
839           on to the external bus), and re-issued after the interrupt occurs.
840           For memory - this is not a big deal, since memory does not change if
841           it sees a read.
842
843           If a FIFO is sitting on the end of the read, it will see two reads,
844           when the core only sees one since the FIFO receives both the read
845           which is cancelled (and not delivered to the core) and the one which
846           is re-issued (which is delivered to the core).
847
848           To solve this, interrupts are turned off before reads occur to
849           I/O space. This option controls which the overhead/latency of
850           controlling interrupts during this time
851            "n" turns interrupts off every read
852                 (higher overhead, but lower interrupt latency)
853            "y" turns interrupts off every loop
854                 (low overhead, but longer interrupt latency)
855
856           default behavior is to leave this set to on (type "Y"). If you are experiencing
857           interrupt latency issues, it is safe and OK to turn this off.
858
859 endmenu
860
861 choice
862         prompt "Kernel executes from"
863         help
864           Choose the memory type that the kernel will be running in.
865
866 config RAMKERNEL
867         bool "RAM"
868         help
869           The kernel will be resident in RAM when running.
870
871 config ROMKERNEL
872         bool "ROM"
873         help
874           The kernel will be resident in FLASH/ROM when running.
875
876 endchoice
877
878 source "mm/Kconfig"
879
880 config BFIN_GPTIMERS
881         tristate "Enable Blackfin General Purpose Timers API"
882         default n
883         help
884           Enable support for the General Purpose Timers API.  If you
885           are unsure, say N.
886
887           To compile this driver as a module, choose M here: the module
888           will be called gptimers.
889
890 choice
891         prompt "Uncached DMA region"
892         default DMA_UNCACHED_1M
893 config DMA_UNCACHED_4M
894         bool "Enable 4M DMA region"
895 config DMA_UNCACHED_2M
896         bool "Enable 2M DMA region"
897 config DMA_UNCACHED_1M
898         bool "Enable 1M DMA region"
899 config DMA_UNCACHED_512K
900         bool "Enable 512K DMA region"
901 config DMA_UNCACHED_256K
902         bool "Enable 256K DMA region"
903 config DMA_UNCACHED_128K
904         bool "Enable 128K DMA region"
905 config DMA_UNCACHED_NONE
906         bool "Disable DMA region"
907 endchoice
908
909
910 comment "Cache Support"
911
912 config BFIN_ICACHE
913         bool "Enable ICACHE"
914         default y
915 config BFIN_EXTMEM_ICACHEABLE
916         bool "Enable ICACHE for external memory"
917         depends on BFIN_ICACHE
918         default y
919 config BFIN_L2_ICACHEABLE
920         bool "Enable ICACHE for L2 SRAM"
921         depends on BFIN_ICACHE
922         depends on BF54x || BF561
923         default n
924
925 config BFIN_DCACHE
926         bool "Enable DCACHE"
927         default y
928 config BFIN_DCACHE_BANKA
929         bool "Enable only 16k BankA DCACHE - BankB is SRAM"
930         depends on BFIN_DCACHE && !BF531
931         default n
932 config BFIN_EXTMEM_DCACHEABLE
933         bool "Enable DCACHE for external memory"
934         depends on BFIN_DCACHE
935         default y
936 choice
937         prompt "External memory DCACHE policy"
938         depends on BFIN_EXTMEM_DCACHEABLE
939         default BFIN_EXTMEM_WRITEBACK if !SMP
940         default BFIN_EXTMEM_WRITETHROUGH if SMP
941 config BFIN_EXTMEM_WRITEBACK
942         bool "Write back"
943         depends on !SMP
944         help
945           Write Back Policy:
946             Cached data will be written back to SDRAM only when needed.
947             This can give a nice increase in performance, but beware of
948             broken drivers that do not properly invalidate/flush their
949             cache.
950
951           Write Through Policy:
952             Cached data will always be written back to SDRAM when the
953             cache is updated.  This is a completely safe setting, but
954             performance is worse than Write Back.
955
956           If you are unsure of the options and you want to be safe,
957           then go with Write Through.
958
959 config BFIN_EXTMEM_WRITETHROUGH
960         bool "Write through"
961         help
962           Write Back Policy:
963             Cached data will be written back to SDRAM only when needed.
964             This can give a nice increase in performance, but beware of
965             broken drivers that do not properly invalidate/flush their
966             cache.
967
968           Write Through Policy:
969             Cached data will always be written back to SDRAM when the
970             cache is updated.  This is a completely safe setting, but
971             performance is worse than Write Back.
972
973           If you are unsure of the options and you want to be safe,
974           then go with Write Through.
975
976 endchoice
977
978 config BFIN_L2_DCACHEABLE
979         bool "Enable DCACHE for L2 SRAM"
980         depends on BFIN_DCACHE
981         depends on (BF54x || BF561) && !SMP
982         default n
983 choice
984         prompt "L2 SRAM DCACHE policy"
985         depends on BFIN_L2_DCACHEABLE
986         default BFIN_L2_WRITEBACK
987 config BFIN_L2_WRITEBACK
988         bool "Write back"
989
990 config BFIN_L2_WRITETHROUGH
991         bool "Write through"
992 endchoice
993
994
995 comment "Memory Protection Unit"
996 config MPU
997         bool "Enable the memory protection unit (EXPERIMENTAL)"
998         default n
999         help
1000           Use the processor's MPU to protect applications from accessing
1001           memory they do not own.  This comes at a performance penalty
1002           and is recommended only for debugging.
1003
1004 comment "Asynchronous Memory Configuration"
1005
1006 menu "EBIU_AMGCTL Global Control"
1007 config C_AMCKEN
1008         bool "Enable CLKOUT"
1009         default y
1010
1011 config C_CDPRIO
1012         bool "DMA has priority over core for ext. accesses"
1013         default n
1014
1015 config C_B0PEN
1016         depends on BF561
1017         bool "Bank 0 16 bit packing enable"
1018         default y
1019
1020 config C_B1PEN
1021         depends on BF561
1022         bool "Bank 1 16 bit packing enable"
1023         default y
1024
1025 config C_B2PEN
1026         depends on BF561
1027         bool "Bank 2 16 bit packing enable"
1028         default y
1029
1030 config C_B3PEN
1031         depends on BF561
1032         bool "Bank 3 16 bit packing enable"
1033         default n
1034
1035 choice
1036         prompt "Enable Asynchronous Memory Banks"
1037         default C_AMBEN_ALL
1038
1039 config C_AMBEN
1040         bool "Disable All Banks"
1041
1042 config C_AMBEN_B0
1043         bool "Enable Bank 0"
1044
1045 config C_AMBEN_B0_B1
1046         bool "Enable Bank 0 & 1"
1047
1048 config C_AMBEN_B0_B1_B2
1049         bool "Enable Bank 0 & 1 & 2"
1050
1051 config C_AMBEN_ALL
1052         bool "Enable All Banks"
1053 endchoice
1054 endmenu
1055
1056 menu "EBIU_AMBCTL Control"
1057 config BANK_0
1058         hex "Bank 0 (AMBCTL0.L)"
1059         default 0x7BB0
1060         help
1061           These are the low 16 bits of the EBIU_AMBCTL0 MMR which are
1062           used to control the Asynchronous Memory Bank 0 settings.
1063
1064 config BANK_1
1065         hex "Bank 1 (AMBCTL0.H)"
1066         default 0x7BB0
1067         default 0x5558 if BF54x
1068         help
1069           These are the high 16 bits of the EBIU_AMBCTL0 MMR which are
1070           used to control the Asynchronous Memory Bank 1 settings.
1071
1072 config BANK_2
1073         hex "Bank 2 (AMBCTL1.L)"
1074         default 0x7BB0
1075         help
1076           These are the low 16 bits of the EBIU_AMBCTL1 MMR which are
1077           used to control the Asynchronous Memory Bank 2 settings.
1078
1079 config BANK_3
1080         hex "Bank 3 (AMBCTL1.H)"
1081         default 0x99B3
1082         help
1083           These are the high 16 bits of the EBIU_AMBCTL1 MMR which are
1084           used to control the Asynchronous Memory Bank 3 settings.
1085
1086 endmenu
1087
1088 config EBIU_MBSCTLVAL
1089         hex "EBIU Bank Select Control Register"
1090         depends on BF54x
1091         default 0
1092
1093 config EBIU_MODEVAL
1094         hex "Flash Memory Mode Control Register"
1095         depends on BF54x
1096         default 1
1097
1098 config EBIU_FCTLVAL
1099         hex "Flash Memory Bank Control Register"
1100         depends on BF54x
1101         default 6
1102 endmenu
1103
1104 #############################################################################
1105 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1106
1107 config PCI
1108         bool "PCI support"
1109         depends on BROKEN
1110         help
1111           Support for PCI bus.
1112
1113 source "drivers/pci/Kconfig"
1114
1115 config HOTPLUG
1116         bool "Support for hot-pluggable device"
1117           help
1118           Say Y here if you want to plug devices into your computer while
1119           the system is running, and be able to use them quickly.  In many
1120           cases, the devices can likewise be unplugged at any time too.
1121
1122           One well known example of this is PCMCIA- or PC-cards, credit-card
1123           size devices such as network cards, modems or hard drives which are
1124           plugged into slots found on all modern laptop computers.  Another
1125           example, used on modern desktops as well as laptops, is USB.
1126
1127           Enable HOTPLUG and build a modular kernel.  Get agent software
1128           (from <http://linux-hotplug.sourceforge.net/>) and install it.
1129           Then your kernel will automatically call out to a user mode "policy
1130           agent" (/sbin/hotplug) to load modules and set up software needed
1131           to use devices as you hotplug them.
1132
1133 source "drivers/pcmcia/Kconfig"
1134
1135 source "drivers/pci/hotplug/Kconfig"
1136
1137 endmenu
1138
1139 menu "Executable file formats"
1140
1141 source "fs/Kconfig.binfmt"
1142
1143 endmenu
1144
1145 menu "Power management options"
1146         depends on !SMP
1147
1148 source "kernel/power/Kconfig"
1149
1150 config ARCH_SUSPEND_POSSIBLE
1151         def_bool y
1152
1153 choice
1154         prompt "Standby Power Saving Mode"
1155         depends on PM
1156         default PM_BFIN_SLEEP_DEEPER
1157 config  PM_BFIN_SLEEP_DEEPER
1158         bool "Sleep Deeper"
1159         help
1160           Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1161           power dissipation by disabling the clock to the processor core (CCLK).
1162           Furthermore, Standby sets the internal power supply voltage (VDDINT)
1163           to 0.85 V to provide the greatest power savings, while preserving the
1164           processor state.
1165           The PLL and system clock (SCLK) continue to operate at a very low
1166           frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1167           the SDRAM is put into Self Refresh Mode. Typically an external event
1168           such as GPIO interrupt or RTC activity wakes up the processor.
1169           Various Peripherals such as UART, SPORT, PPI may not function as
1170           normal during Sleep Deeper, due to the reduced SCLK frequency.
1171           When in the sleep mode, system DMA access to L1 memory is not supported.
1172
1173           If unsure, select "Sleep Deeper".
1174
1175 config  PM_BFIN_SLEEP
1176         bool "Sleep"
1177         help
1178           Sleep Mode (High Power Savings) - The sleep mode reduces power
1179           dissipation by disabling the clock to the processor core (CCLK).
1180           The PLL and system clock (SCLK), however, continue to operate in
1181           this mode. Typically an external event or RTC activity will wake
1182           up the processor. When in the sleep mode, system DMA access to L1
1183           memory is not supported.
1184
1185           If unsure, select "Sleep Deeper".
1186 endchoice
1187
1188 config PM_WAKEUP_BY_GPIO
1189         bool "Allow Wakeup from Standby by GPIO"
1190         depends on PM && !BF54x
1191
1192 config PM_WAKEUP_GPIO_NUMBER
1193         int "GPIO number"
1194         range 0 47
1195         depends on PM_WAKEUP_BY_GPIO
1196         default 2
1197
1198 choice
1199         prompt "GPIO Polarity"
1200         depends on PM_WAKEUP_BY_GPIO
1201         default PM_WAKEUP_GPIO_POLAR_H
1202 config  PM_WAKEUP_GPIO_POLAR_H
1203         bool "Active High"
1204 config  PM_WAKEUP_GPIO_POLAR_L
1205         bool "Active Low"
1206 config  PM_WAKEUP_GPIO_POLAR_EDGE_F
1207         bool "Falling EDGE"
1208 config  PM_WAKEUP_GPIO_POLAR_EDGE_R
1209         bool "Rising EDGE"
1210 config  PM_WAKEUP_GPIO_POLAR_EDGE_B
1211         bool "Both EDGE"
1212 endchoice
1213
1214 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1215         depends on PM
1216
1217 config PM_BFIN_WAKE_PH6
1218         bool "Allow Wake-Up from on-chip PHY or PH6 GP"
1219         depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
1220         default n
1221         help
1222           Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1223
1224 config PM_BFIN_WAKE_GP
1225         bool "Allow Wake-Up from GPIOs"
1226         depends on PM && BF54x
1227         default n
1228         help
1229           Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1230           (all processors, except ADSP-BF549). This option sets
1231           the general-purpose wake-up enable (GPWE) control bit to enable
1232           wake-up upon detection of an active low signal on the /GPW (PH7) pin.
1233           On ADSP-BF549 this option enables the the same functionality on the
1234           /MRXON pin also PH7.
1235
1236 endmenu
1237
1238 menu "CPU Frequency scaling"
1239         depends on !SMP
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"