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