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