Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
[sfrench/cifs-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         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 ZONE_DMA
32         bool
33         default y
34
35 config GENERIC_FIND_NEXT_BIT
36         bool
37         default y
38
39 config GENERIC_HWEIGHT
40         bool
41         default y
42
43 config GENERIC_HARDIRQS
44         bool
45         default y
46
47 config GENERIC_IRQ_PROBE
48         bool
49         default y
50
51 config GENERIC_GPIO
52         bool
53         default y
54
55 config FORCE_MAX_ZONEORDER
56         int
57         default "14"
58
59 config GENERIC_CALIBRATE_DELAY
60         bool
61         default y
62
63 source "init/Kconfig"
64
65 source "kernel/Kconfig.preempt"
66
67 source "kernel/Kconfig.freezer"
68
69 menu "Blackfin Processor Options"
70
71 comment "Processor and Board Settings"
72
73 choice
74         prompt "CPU"
75         default BF533
76
77 config BF512
78         bool "BF512"
79         help
80           BF512 Processor Support.
81
82 config BF514
83         bool "BF514"
84         help
85           BF514 Processor Support.
86
87 config BF516
88         bool "BF516"
89         help
90           BF516 Processor Support.
91
92 config BF518
93         bool "BF518"
94         help
95           BF518 Processor Support.
96
97 config BF522
98         bool "BF522"
99         help
100           BF522 Processor Support.
101
102 config BF523
103         bool "BF523"
104         help
105           BF523 Processor Support.
106
107 config BF524
108         bool "BF524"
109         help
110           BF524 Processor Support.
111
112 config BF525
113         bool "BF525"
114         help
115           BF525 Processor Support.
116
117 config BF526
118         bool "BF526"
119         help
120           BF526 Processor Support.
121
122 config BF527
123         bool "BF527"
124         help
125           BF527 Processor Support.
126
127 config BF531
128         bool "BF531"
129         help
130           BF531 Processor Support.
131
132 config BF532
133         bool "BF532"
134         help
135           BF532 Processor Support.
136
137 config BF533
138         bool "BF533"
139         help
140           BF533 Processor Support.
141
142 config BF534
143         bool "BF534"
144         help
145           BF534 Processor Support.
146
147 config BF536
148         bool "BF536"
149         help
150           BF536 Processor Support.
151
152 config BF537
153         bool "BF537"
154         help
155           BF537 Processor Support.
156
157 config BF538
158         bool "BF538"
159         help
160           BF538 Processor Support.
161
162 config BF539
163         bool "BF539"
164         help
165           BF539 Processor Support.
166
167 config BF542
168         bool "BF542"
169         help
170           BF542 Processor Support.
171
172 config BF542M
173         bool "BF542m"
174         help
175           BF542 Processor Support.
176
177 config BF544
178         bool "BF544"
179         help
180           BF544 Processor Support.
181
182 config BF544M
183         bool "BF544m"
184         help
185           BF544 Processor Support.
186
187 config BF547
188         bool "BF547"
189         help
190           BF547 Processor Support.
191
192 config BF547M
193         bool "BF547m"
194         help
195           BF547 Processor Support.
196
197 config BF548
198         bool "BF548"
199         help
200           BF548 Processor Support.
201
202 config BF548M
203         bool "BF548m"
204         help
205           BF548 Processor Support.
206
207 config BF549
208         bool "BF549"
209         help
210           BF549 Processor Support.
211
212 config BF549M
213         bool "BF549m"
214         help
215           BF549 Processor Support.
216
217 config BF561
218         bool "BF561"
219         help
220           BF561 Processor Support.
221
222 endchoice
223
224 config SMP
225         depends on BF561
226         select GENERIC_TIME
227         bool "Symmetric multi-processing support"
228         ---help---
229           This enables support for systems with more than one CPU,
230           like the dual core BF561. If you have a system with only one
231           CPU, say N. If you have a system with more than one CPU, say Y.
232
233           If you don't know what to do here, say N.
234
235 config NR_CPUS
236         int
237         depends on SMP
238         default 2 if BF561
239
240 config IRQ_PER_CPU
241         bool
242         depends on SMP
243         default y
244
245 config BF_REV_MIN
246         int
247         default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
248         default 2 if (BF537 || BF536 || BF534)
249         default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM)
250         default 4 if (BF538 || BF539)
251
252 config BF_REV_MAX
253         int
254         default 2 if (BF51x || BF52x || (BF54x && !BF54xM))
255         default 3 if (BF537 || BF536 || BF534 || BF54xM)
256         default 5 if (BF561 || BF538 || BF539)
257         default 6 if (BF533 || BF532 || BF531)
258
259 choice
260         prompt "Silicon Rev"
261         default BF_REV_0_0 if (BF51x || BF52x)
262         default BF_REV_0_2 if (BF534 || BF536 || BF537 || (BF54x && !BF54xM))
263         default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561)
264
265 config BF_REV_0_0
266         bool "0.0"
267         depends on (BF51x || BF52x || (BF54x && !BF54xM))
268
269 config BF_REV_0_1
270         bool "0.1"
271         depends on (BF52x || (BF54x && !BF54xM))
272
273 config BF_REV_0_2
274         bool "0.2"
275         depends on (BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
276
277 config BF_REV_0_3
278         bool "0.3"
279         depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
280
281 config BF_REV_0_4
282         bool "0.4"
283         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
284
285 config BF_REV_0_5
286         bool "0.5"
287         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
288
289 config BF_REV_0_6
290         bool "0.6"
291         depends on (BF533 || BF532 || BF531)
292
293 config BF_REV_ANY
294         bool "any"
295
296 config BF_REV_NONE
297         bool "none"
298
299 endchoice
300
301 config BF51x
302         bool
303         depends on (BF512 || BF514 || BF516 || BF518)
304         default y
305
306 config BF52x
307         bool
308         depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
309         default y
310
311 config BF53x
312         bool
313         depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
314         default y
315
316 config BF54xM
317         bool
318         depends on (BF542M || BF544M || BF547M || BF548M || BF549M)
319         default y
320
321 config BF54x
322         bool
323         depends on (BF542 || BF544 || BF547 || BF548 || BF549 || BF54xM)
324         default y
325
326 config MEM_GENERIC_BOARD
327         bool
328         depends on GENERIC_BOARD
329         default y
330
331 config MEM_MT48LC64M4A2FB_7E
332         bool
333         depends on (BFIN533_STAMP)
334         default y
335
336 config MEM_MT48LC16M16A2TG_75
337         bool
338         depends on (BFIN533_EZKIT || BFIN561_EZKIT \
339                 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
340                 || H8606_HVSISTEMAS || BFIN527_BLUETECHNIX_CM)
341         default y
342
343 config MEM_MT48LC32M8A2_75
344         bool
345         depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
346         default y
347
348 config MEM_MT48LC8M32B2B5_7
349         bool
350         depends on (BFIN561_BLUETECHNIX_CM)
351         default y
352
353 config MEM_MT48LC32M16A2TG_75
354         bool
355         depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD)
356         default y
357
358 config MEM_MT48LC32M8A2_75
359         bool
360         depends on (BFIN518F_EZBRD)
361         default y
362
363 source "arch/blackfin/mach-bf518/Kconfig"
364 source "arch/blackfin/mach-bf527/Kconfig"
365 source "arch/blackfin/mach-bf533/Kconfig"
366 source "arch/blackfin/mach-bf561/Kconfig"
367 source "arch/blackfin/mach-bf537/Kconfig"
368 source "arch/blackfin/mach-bf538/Kconfig"
369 source "arch/blackfin/mach-bf548/Kconfig"
370
371 menu "Board customizations"
372
373 config CMDLINE_BOOL
374         bool "Default bootloader kernel arguments"
375
376 config CMDLINE
377         string "Initial kernel command string"
378         depends on CMDLINE_BOOL
379         default "console=ttyBF0,57600"
380         help
381           If you don't have a boot loader capable of passing a command line string
382           to the kernel, you may specify one here. As a minimum, you should specify
383           the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
384
385 config BOOT_LOAD
386         hex "Kernel load address for booting"
387         default "0x1000"
388         range 0x1000 0x20000000
389         help
390           This option allows you to set the load address of the kernel.
391           This can be useful if you are on a board which has a small amount
392           of memory or you wish to reserve some memory at the beginning of
393           the address space.
394
395           Note that you need to keep this value above 4k (0x1000) as this
396           memory region is used to capture NULL pointer references as well
397           as some core kernel functions.
398
399 config ROM_BASE
400         hex "Kernel ROM Base"
401         depends on ROMKERNEL
402         default "0x20040000"
403         range 0x20000000 0x20400000 if !(BF54x || BF561)
404         range 0x20000000 0x30000000 if (BF54x || BF561)
405         help
406
407 comment "Clock/PLL Setup"
408
409 config CLKIN_HZ
410         int "Frequency of the crystal on the board in Hz"
411         default "11059200" if BFIN533_STAMP
412         default "27000000" if BFIN533_EZKIT
413         default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN538_EZKIT || BFIN518F-EZBRD)
414         default "30000000" if BFIN561_EZKIT
415         default "24576000" if PNAV10
416         default "10000000" if BFIN532_IP0X
417         help
418           The frequency of CLKIN crystal oscillator on the board in Hz.
419           Warning: This value should match the crystal on the board. Otherwise,
420           peripherals won't work properly.
421
422 config BFIN_KERNEL_CLOCK
423         bool "Re-program Clocks while Kernel boots?"
424         default n
425         help
426           This option decides if kernel clocks are re-programed from the
427           bootloader settings. If the clocks are not set, the SDRAM settings
428           are also not changed, and the Bootloader does 100% of the hardware
429           configuration.
430
431 config PLL_BYPASS
432         bool "Bypass PLL"
433         depends on BFIN_KERNEL_CLOCK
434         default n
435
436 config CLKIN_HALF
437         bool "Half Clock In"
438         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
439         default n
440         help
441           If this is set the clock will be divided by 2, before it goes to the PLL.
442
443 config VCO_MULT
444         int "VCO Multiplier"
445         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
446         range 1 64
447         default "22" if BFIN533_EZKIT
448         default "45" if BFIN533_STAMP
449         default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
450         default "22" if BFIN533_BLUETECHNIX_CM
451         default "20" if (BFIN537_BLUETECHNIX_CM || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
452         default "20" if BFIN561_EZKIT
453         default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
454         help
455           This controls the frequency of the on-chip PLL. This can be between 1 and 64.
456           PLL Frequency = (Crystal Frequency) * (this setting)
457
458 choice
459         prompt "Core Clock Divider"
460         depends on BFIN_KERNEL_CLOCK
461         default CCLK_DIV_1
462         help
463           This sets the frequency of the core. It can be 1, 2, 4 or 8
464           Core Frequency = (PLL frequency) / (this setting)
465
466 config CCLK_DIV_1
467         bool "1"
468
469 config CCLK_DIV_2
470         bool "2"
471
472 config CCLK_DIV_4
473         bool "4"
474
475 config CCLK_DIV_8
476         bool "8"
477 endchoice
478
479 config SCLK_DIV
480         int "System Clock Divider"
481         depends on BFIN_KERNEL_CLOCK
482         range 1 15
483         default 5
484         help
485           This sets the frequency of the system clock (including SDRAM or DDR).
486           This can be between 1 and 15
487           System Clock = (PLL frequency) / (this setting)
488
489 choice
490         prompt "DDR SDRAM Chip Type"
491         depends on BFIN_KERNEL_CLOCK
492         depends on BF54x
493         default MEM_MT46V32M16_5B
494
495 config MEM_MT46V32M16_6T
496         bool "MT46V32M16_6T"
497
498 config MEM_MT46V32M16_5B
499         bool "MT46V32M16_5B"
500 endchoice
501
502 choice
503         prompt "DDR/SDRAM Timing"
504         depends on BFIN_KERNEL_CLOCK
505         default BFIN_KERNEL_CLOCK_MEMINIT_CALC
506         help
507           This option allows you to specify Blackfin SDRAM/DDR Timing parameters
508           The calculated SDRAM timing parameters may not be 100%
509           accurate - This option is therefore marked experimental.
510
511 config BFIN_KERNEL_CLOCK_MEMINIT_CALC
512         bool "Calculate Timings (EXPERIMENTAL)"
513         depends on EXPERIMENTAL
514
515 config BFIN_KERNEL_CLOCK_MEMINIT_SPEC
516         bool "Provide accurate Timings based on target SCLK"
517         help
518           Please consult the Blackfin Hardware Reference Manuals as well
519           as the memory device datasheet.
520           http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram
521 endchoice
522
523 menu "Memory Init Control"
524         depends on BFIN_KERNEL_CLOCK_MEMINIT_SPEC
525
526 config MEM_DDRCTL0
527         depends on BF54x
528         hex "DDRCTL0"
529         default 0x0
530
531 config MEM_DDRCTL1
532         depends on BF54x
533         hex "DDRCTL1"
534         default 0x0
535
536 config MEM_DDRCTL2
537         depends on BF54x
538         hex "DDRCTL2"
539         default 0x0
540
541 config MEM_EBIU_DDRQUE
542         depends on BF54x
543         hex "DDRQUE"
544         default 0x0
545
546 config MEM_SDRRC
547         depends on !BF54x
548         hex "SDRRC"
549         default 0x0
550
551 config MEM_SDGCTL
552         depends on !BF54x
553         hex "SDGCTL"
554         default 0x0
555 endmenu
556
557 #
558 # Max & Min Speeds for various Chips
559 #
560 config MAX_VCO_HZ
561         int
562         default 400000000 if BF512
563         default 400000000 if BF514
564         default 400000000 if BF516
565         default 400000000 if BF518
566         default 600000000 if BF522
567         default 400000000 if BF523
568         default 400000000 if BF524
569         default 600000000 if BF525
570         default 400000000 if BF526
571         default 600000000 if BF527
572         default 400000000 if BF531
573         default 400000000 if BF532
574         default 750000000 if BF533
575         default 500000000 if BF534
576         default 400000000 if BF536
577         default 600000000 if BF537
578         default 533333333 if BF538
579         default 533333333 if BF539
580         default 600000000 if BF542
581         default 533333333 if BF544
582         default 600000000 if BF547
583         default 600000000 if BF548
584         default 533333333 if BF549
585         default 600000000 if BF561
586
587 config MIN_VCO_HZ
588         int
589         default 50000000
590
591 config MAX_SCLK_HZ
592         int
593         default 133333333
594
595 config MIN_SCLK_HZ
596         int
597         default 27000000
598
599 comment "Kernel Timer/Scheduler"
600
601 source kernel/Kconfig.hz
602
603 config GENERIC_TIME
604         bool "Generic time"
605         default y
606
607 config GENERIC_CLOCKEVENTS
608         bool "Generic clock events"
609         depends on GENERIC_TIME
610         default y
611
612 choice
613         prompt "Kernel Tick Source"
614         depends on GENERIC_CLOCKEVENTS
615         default TICKSOURCE_CORETMR
616
617 config TICKSOURCE_GPTMR0
618         bool "Gptimer0 (SCLK domain)"
619         select BFIN_GPTIMERS
620         depends on !IPIPE
621
622 config TICKSOURCE_CORETMR
623         bool "Core timer (CCLK domain)"
624
625 endchoice
626
627 config CYCLES_CLOCKSOURCE
628         bool "Use 'CYCLES' as a clocksource"
629         depends on GENERIC_CLOCKEVENTS
630         depends on !BFIN_SCRATCH_REG_CYCLES
631         depends on !SMP
632         help
633           If you say Y here, you will enable support for using the 'cycles'
634           registers as a clock source.  Doing so means you will be unable to
635           safely write to the 'cycles' register during runtime.  You will
636           still be able to read it (such as for performance monitoring), but
637           writing the registers will most likely crash the kernel.
638
639 config GPTMR0_CLOCKSOURCE
640         bool "Use GPTimer0 as a clocksource (higher rating)"
641         depends on GENERIC_CLOCKEVENTS
642         depends on !TICKSOURCE_GPTMR0
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_NONE
900         bool "Disable DMA region"
901 endchoice
902
903
904 comment "Cache Support"
905 config BFIN_ICACHE
906         bool "Enable ICACHE"
907 config BFIN_DCACHE
908         bool "Enable DCACHE"
909 config BFIN_DCACHE_BANKA
910         bool "Enable only 16k BankA DCACHE - BankB is SRAM"
911         depends on BFIN_DCACHE && !BF531
912         default n
913 config BFIN_ICACHE_LOCK
914         bool "Enable Instruction Cache Locking"
915
916 choice
917         prompt "External memory cache policy"
918         depends on BFIN_DCACHE
919         default BFIN_WB if !SMP
920         default BFIN_WT if SMP
921 config BFIN_WB
922         bool "Write back"
923         depends on !SMP
924         help
925           Write Back Policy:
926             Cached data will be written back to SDRAM only when needed.
927             This can give a nice increase in performance, but beware of
928             broken drivers that do not properly invalidate/flush their
929             cache.
930
931           Write Through Policy:
932             Cached data will always be written back to SDRAM when the
933             cache is updated.  This is a completely safe setting, but
934             performance is worse than Write Back.
935
936           If you are unsure of the options and you want to be safe,
937           then go with Write Through.
938
939 config BFIN_WT
940         bool "Write through"
941         help
942           Write Back Policy:
943             Cached data will be written back to SDRAM only when needed.
944             This can give a nice increase in performance, but beware of
945             broken drivers that do not properly invalidate/flush their
946             cache.
947
948           Write Through Policy:
949             Cached data will always be written back to SDRAM when the
950             cache is updated.  This is a completely safe setting, but
951             performance is worse than Write Back.
952
953           If you are unsure of the options and you want to be safe,
954           then go with Write Through.
955
956 endchoice
957
958 choice
959         prompt "L2 SRAM cache policy"
960         depends on (BF54x || BF561)
961         default BFIN_L2_WT
962 config BFIN_L2_WB
963         bool "Write back"
964         depends on !SMP
965
966 config BFIN_L2_WT
967         bool "Write through"
968         depends on !SMP
969
970 config BFIN_L2_NOT_CACHED
971         bool "Not cached"
972
973 endchoice
974
975 config MPU
976         bool "Enable the memory protection unit (EXPERIMENTAL)"
977         default n
978         help
979           Use the processor's MPU to protect applications from accessing
980           memory they do not own.  This comes at a performance penalty
981           and is recommended only for debugging.
982
983 comment "Asynchronous Memory Configuration"
984
985 menu "EBIU_AMGCTL Global Control"
986 config C_AMCKEN
987         bool "Enable CLKOUT"
988         default y
989
990 config C_CDPRIO
991         bool "DMA has priority over core for ext. accesses"
992         default n
993
994 config C_B0PEN
995         depends on BF561
996         bool "Bank 0 16 bit packing enable"
997         default y
998
999 config C_B1PEN
1000         depends on BF561
1001         bool "Bank 1 16 bit packing enable"
1002         default y
1003
1004 config C_B2PEN
1005         depends on BF561
1006         bool "Bank 2 16 bit packing enable"
1007         default y
1008
1009 config C_B3PEN
1010         depends on BF561
1011         bool "Bank 3 16 bit packing enable"
1012         default n
1013
1014 choice
1015         prompt "Enable Asynchronous Memory Banks"
1016         default C_AMBEN_ALL
1017
1018 config C_AMBEN
1019         bool "Disable All Banks"
1020
1021 config C_AMBEN_B0
1022         bool "Enable Bank 0"
1023
1024 config C_AMBEN_B0_B1
1025         bool "Enable Bank 0 & 1"
1026
1027 config C_AMBEN_B0_B1_B2
1028         bool "Enable Bank 0 & 1 & 2"
1029
1030 config C_AMBEN_ALL
1031         bool "Enable All Banks"
1032 endchoice
1033 endmenu
1034
1035 menu "EBIU_AMBCTL Control"
1036 config BANK_0
1037         hex "Bank 0 (AMBCTL0.L)"
1038         default 0x7BB0
1039         help
1040           These are the low 16 bits of the EBIU_AMBCTL0 MMR which are
1041           used to control the Asynchronous Memory Bank 0 settings.
1042
1043 config BANK_1
1044         hex "Bank 1 (AMBCTL0.H)"
1045         default 0x7BB0
1046         default 0x5558 if BF54x
1047         help
1048           These are the high 16 bits of the EBIU_AMBCTL0 MMR which are
1049           used to control the Asynchronous Memory Bank 1 settings.
1050
1051 config BANK_2
1052         hex "Bank 2 (AMBCTL1.L)"
1053         default 0x7BB0
1054         help
1055           These are the low 16 bits of the EBIU_AMBCTL1 MMR which are
1056           used to control the Asynchronous Memory Bank 2 settings.
1057
1058 config BANK_3
1059         hex "Bank 3 (AMBCTL1.H)"
1060         default 0x99B3
1061         help
1062           These are the high 16 bits of the EBIU_AMBCTL1 MMR which are
1063           used to control the Asynchronous Memory Bank 3 settings.
1064
1065 endmenu
1066
1067 config EBIU_MBSCTLVAL
1068         hex "EBIU Bank Select Control Register"
1069         depends on BF54x
1070         default 0
1071
1072 config EBIU_MODEVAL
1073         hex "Flash Memory Mode Control Register"
1074         depends on BF54x
1075         default 1
1076
1077 config EBIU_FCTLVAL
1078         hex "Flash Memory Bank Control Register"
1079         depends on BF54x
1080         default 6
1081 endmenu
1082
1083 #############################################################################
1084 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1085
1086 config PCI
1087         bool "PCI support"
1088         depends on BROKEN
1089         help
1090           Support for PCI bus.
1091
1092 source "drivers/pci/Kconfig"
1093
1094 config HOTPLUG
1095         bool "Support for hot-pluggable device"
1096           help
1097           Say Y here if you want to plug devices into your computer while
1098           the system is running, and be able to use them quickly.  In many
1099           cases, the devices can likewise be unplugged at any time too.
1100
1101           One well known example of this is PCMCIA- or PC-cards, credit-card
1102           size devices such as network cards, modems or hard drives which are
1103           plugged into slots found on all modern laptop computers.  Another
1104           example, used on modern desktops as well as laptops, is USB.
1105
1106           Enable HOTPLUG and build a modular kernel.  Get agent software
1107           (from <http://linux-hotplug.sourceforge.net/>) and install it.
1108           Then your kernel will automatically call out to a user mode "policy
1109           agent" (/sbin/hotplug) to load modules and set up software needed
1110           to use devices as you hotplug them.
1111
1112 source "drivers/pcmcia/Kconfig"
1113
1114 source "drivers/pci/hotplug/Kconfig"
1115
1116 endmenu
1117
1118 menu "Executable file formats"
1119
1120 source "fs/Kconfig.binfmt"
1121
1122 endmenu
1123
1124 menu "Power management options"
1125 source "kernel/power/Kconfig"
1126
1127 config ARCH_SUSPEND_POSSIBLE
1128         def_bool y
1129         depends on !SMP
1130
1131 choice
1132         prompt "Standby Power Saving Mode"
1133         depends on PM
1134         default PM_BFIN_SLEEP_DEEPER
1135 config  PM_BFIN_SLEEP_DEEPER
1136         bool "Sleep Deeper"
1137         help
1138           Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1139           power dissipation by disabling the clock to the processor core (CCLK).
1140           Furthermore, Standby sets the internal power supply voltage (VDDINT)
1141           to 0.85 V to provide the greatest power savings, while preserving the
1142           processor state.
1143           The PLL and system clock (SCLK) continue to operate at a very low
1144           frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1145           the SDRAM is put into Self Refresh Mode. Typically an external event
1146           such as GPIO interrupt or RTC activity wakes up the processor.
1147           Various Peripherals such as UART, SPORT, PPI may not function as
1148           normal during Sleep Deeper, due to the reduced SCLK frequency.
1149           When in the sleep mode, system DMA access to L1 memory is not supported.
1150
1151           If unsure, select "Sleep Deeper".
1152
1153 config  PM_BFIN_SLEEP
1154         bool "Sleep"
1155         help
1156           Sleep Mode (High Power Savings) - The sleep mode reduces power
1157           dissipation by disabling the clock to the processor core (CCLK).
1158           The PLL and system clock (SCLK), however, continue to operate in
1159           this mode. Typically an external event or RTC activity will wake
1160           up the processor. When in the sleep mode, system DMA access to L1
1161           memory is not supported.
1162
1163           If unsure, select "Sleep Deeper".
1164 endchoice
1165
1166 config PM_WAKEUP_BY_GPIO
1167         bool "Allow Wakeup from Standby by GPIO"
1168         depends on PM && !BF54x
1169
1170 config PM_WAKEUP_GPIO_NUMBER
1171         int "GPIO number"
1172         range 0 47
1173         depends on PM_WAKEUP_BY_GPIO
1174         default 2
1175
1176 choice
1177         prompt "GPIO Polarity"
1178         depends on PM_WAKEUP_BY_GPIO
1179         default PM_WAKEUP_GPIO_POLAR_H
1180 config  PM_WAKEUP_GPIO_POLAR_H
1181         bool "Active High"
1182 config  PM_WAKEUP_GPIO_POLAR_L
1183         bool "Active Low"
1184 config  PM_WAKEUP_GPIO_POLAR_EDGE_F
1185         bool "Falling EDGE"
1186 config  PM_WAKEUP_GPIO_POLAR_EDGE_R
1187         bool "Rising EDGE"
1188 config  PM_WAKEUP_GPIO_POLAR_EDGE_B
1189         bool "Both EDGE"
1190 endchoice
1191
1192 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1193         depends on PM
1194
1195 config PM_BFIN_WAKE_PH6
1196         bool "Allow Wake-Up from on-chip PHY or PH6 GP"
1197         depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
1198         default n
1199         help
1200           Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1201
1202 config PM_BFIN_WAKE_GP
1203         bool "Allow Wake-Up from GPIOs"
1204         depends on PM && BF54x
1205         default n
1206         help
1207           Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1208           (all processors, except ADSP-BF549). This option sets
1209           the general-purpose wake-up enable (GPWE) control bit to enable
1210           wake-up upon detection of an active low signal on the /GPW (PH7) pin.
1211           On ADSP-BF549 this option enables the the same functionality on the
1212           /MRXON pin also PH7.
1213
1214 endmenu
1215
1216 menu "CPU Frequency scaling"
1217
1218 source "drivers/cpufreq/Kconfig"
1219
1220 config BFIN_CPU_FREQ
1221         bool
1222         depends on CPU_FREQ
1223         select CPU_FREQ_TABLE
1224         default y
1225
1226 config CPU_VOLTAGE
1227         bool "CPU Voltage scaling"
1228         depends on EXPERIMENTAL
1229         depends on CPU_FREQ
1230         default n
1231         help
1232           Say Y here if you want CPU voltage scaling according to the CPU frequency.
1233           This option violates the PLL BYPASS recommendation in the Blackfin Processor
1234           manuals. There is a theoretical risk that during VDDINT transitions
1235           the PLL may unlock.
1236
1237 endmenu
1238
1239 source "net/Kconfig"
1240
1241 source "drivers/Kconfig"
1242
1243 source "fs/Kconfig"
1244
1245 source "arch/blackfin/Kconfig.debug"
1246
1247 source "security/Kconfig"
1248
1249 source "crypto/Kconfig"
1250
1251 source "lib/Kconfig"