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