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