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