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