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