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