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