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