blob: b8bc5a402fa40e877b82e9c0cf48db9af3cbef87 [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
Mike Frysinger53f8a252007-11-15 15:48:01 +08006mainmenu "Blackfin Kernel Configuration"
Bryan Wu1394f032007-05-06 14:50:22 -07007
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
Sam Ravnborgec7748b2008-02-09 10:46:40 +010027 select HAVE_IDE
Mathieu Desnoyers42d4b832008-02-02 15:10:34 -050028 select HAVE_OPROFILE
Michael Hennericha4f0b32c2008-11-18 17:48:22 +080029 select ARCH_WANT_OPTIONAL_GPIOLIB
Bryan Wu1394f032007-05-06 14:50:22 -070030
Aubrey Lie3defff2007-05-21 18:09:11 +080031config ZONE_DMA
32 bool
33 default y
34
Bryan Wu1394f032007-05-06 14:50:22 -070035config GENERIC_FIND_NEXT_BIT
36 bool
37 default y
38
39config GENERIC_HWEIGHT
40 bool
41 default y
42
43config GENERIC_HARDIRQS
44 bool
45 default y
46
47config GENERIC_IRQ_PROBE
Mike Frysingere4e9a7a2007-11-15 20:39:34 +080048 bool
Bryan Wu1394f032007-05-06 14:50:22 -070049 default y
50
Michael Hennerichb2d15832007-07-24 15:46:36 +080051config GENERIC_GPIO
Bryan Wu1394f032007-05-06 14:50:22 -070052 bool
53 default y
54
55config FORCE_MAX_ZONEORDER
56 int
57 default "14"
58
59config GENERIC_CALIBRATE_DELAY
60 bool
61 default y
62
Mathieu Desnoyers7d2284b2008-01-15 12:42:02 -050063config HARDWARE_PM
64 def_bool y
65 depends on OPROFILE
66
Bryan Wu1394f032007-05-06 14:50:22 -070067source "init/Kconfig"
Matt Helsleydc52ddc2008-10-18 20:27:21 -070068
Bryan Wu1394f032007-05-06 14:50:22 -070069source "kernel/Kconfig.preempt"
70
Matt Helsleydc52ddc2008-10-18 20:27:21 -070071source "kernel/Kconfig.freezer"
72
Bryan Wu1394f032007-05-06 14:50:22 -070073menu "Blackfin Processor Options"
74
75comment "Processor and Board Settings"
76
77choice
78 prompt "CPU"
79 default BF533
80
Bryan Wu2f6f4bc2008-11-18 17:48:21 +080081config 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
Michael Hennerich59003142007-10-21 16:54:27 +0800101config BF522
102 bool "BF522"
103 help
104 BF522 Processor Support.
105
Mike Frysinger1545a112007-12-24 16:54:48 +0800106config BF523
107 bool "BF523"
108 help
109 BF523 Processor Support.
110
111config BF524
112 bool "BF524"
113 help
114 BF524 Processor Support.
115
Michael Hennerich59003142007-10-21 16:54:27 +0800116config BF525
117 bool "BF525"
118 help
119 BF525 Processor Support.
120
Mike Frysinger1545a112007-12-24 16:54:48 +0800121config BF526
122 bool "BF526"
123 help
124 BF526 Processor Support.
125
Michael Hennerich59003142007-10-21 16:54:27 +0800126config BF527
127 bool "BF527"
128 help
129 BF527 Processor Support.
130
Bryan Wu1394f032007-05-06 14:50:22 -0700131config 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
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800161config BF538
162 bool "BF538"
163 help
164 BF538 Processor Support.
165
166config BF539
167 bool "BF539"
168 help
169 BF539 Processor Support.
170
Roy Huang24a07a12007-07-12 22:41:45 +0800171config BF542
172 bool "BF542"
173 help
174 BF542 Processor Support.
175
176config BF544
177 bool "BF544"
178 help
179 BF544 Processor Support.
180
Mike Frysinger7c7fd172007-11-15 21:10:21 +0800181config BF547
182 bool "BF547"
183 help
184 BF547 Processor Support.
185
Roy Huang24a07a12007-07-12 22:41:45 +0800186config BF548
187 bool "BF548"
188 help
189 BF548 Processor Support.
190
191config BF549
192 bool "BF549"
193 help
194 BF549 Processor Support.
195
Bryan Wu1394f032007-05-06 14:50:22 -0700196config BF561
197 bool "BF561"
198 help
Mike Frysingercd88b4d2008-10-09 12:03:22 +0800199 BF561 Processor Support.
Bryan Wu1394f032007-05-06 14:50:22 -0700200
201endchoice
202
Graf Yang46fa5ee2009-01-07 23:14:39 +0800203config 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
213config NR_CPUS
214 int
215 depends on SMP
216 default 2 if BF561
217
218config IRQ_PER_CPU
219 bool
220 depends on SMP
221 default y
222
223config TICK_SOURCE_SYSTMR0
224 bool
225 select BFIN_GPTIMERS
226 depends on SMP
227 default y
228
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800229config BF_REV_MIN
230 int
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800231 default 0 if (BF51x || BF52x || BF54x)
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800232 default 2 if (BF537 || BF536 || BF534)
233 default 3 if (BF561 ||BF533 || BF532 || BF531)
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800234 default 4 if (BF538 || BF539)
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800235
236config BF_REV_MAX
237 int
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800238 default 2 if (BF51x || BF52x || BF54x)
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800239 default 3 if (BF537 || BF536 || BF534)
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800240 default 5 if (BF561 || BF538 || BF539)
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800241 default 6 if (BF533 || BF532 || BF531)
242
Bryan Wu1394f032007-05-06 14:50:22 -0700243choice
244 prompt "Silicon Rev"
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800245 default BF_REV_0_1 if (BF51x || BF52x || BF54x)
Mike Frysinger46ce0d92008-10-09 12:05:31 +0800246 default BF_REV_0_2 if (BF534 || BF536 || BF537)
247 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF561)
Roy Huang24a07a12007-07-12 22:41:45 +0800248
249config BF_REV_0_0
250 bool "0.0"
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800251 depends on (BF51x || BF52x || BF54x)
Michael Hennerich59003142007-10-21 16:54:27 +0800252
253config BF_REV_0_1
Mike Frysingerd07f4382007-11-15 15:49:17 +0800254 bool "0.1"
255 depends on (BF52x || BF54x)
Bryan Wu1394f032007-05-06 14:50:22 -0700256
257config BF_REV_0_2
258 bool "0.2"
Mike Frysinger49f72532008-10-09 12:06:27 +0800259 depends on (BF52x || BF537 || BF536 || BF534 || BF54x)
Bryan Wu1394f032007-05-06 14:50:22 -0700260
261config BF_REV_0_3
262 bool "0.3"
263 depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
264
265config BF_REV_0_4
266 bool "0.4"
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800267 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
Bryan Wu1394f032007-05-06 14:50:22 -0700268
269config BF_REV_0_5
270 bool "0.5"
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800271 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
Bryan Wu1394f032007-05-06 14:50:22 -0700272
Mike Frysinger49f72532008-10-09 12:06:27 +0800273config BF_REV_0_6
274 bool "0.6"
275 depends on (BF533 || BF532 || BF531)
276
Jie Zhangde3025f2007-06-25 18:04:12 +0800277config BF_REV_ANY
278 bool "any"
279
280config BF_REV_NONE
281 bool "none"
282
Bryan Wu1394f032007-05-06 14:50:22 -0700283endchoice
284
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800285config BF51x
286 bool
287 depends on (BF512 || BF514 || BF516 || BF518)
288 default y
289
Michael Hennerich59003142007-10-21 16:54:27 +0800290config BF52x
291 bool
Mike Frysinger1545a112007-12-24 16:54:48 +0800292 depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
Michael Hennerich59003142007-10-21 16:54:27 +0800293 default y
294
Roy Huang24a07a12007-07-12 22:41:45 +0800295config BF53x
296 bool
297 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
298 default y
299
300config BF54x
301 bool
Mike Frysinger7c7fd172007-11-15 21:10:21 +0800302 depends on (BF542 || BF544 || BF547 || BF548 || BF549)
Roy Huang24a07a12007-07-12 22:41:45 +0800303 default y
304
Bryan Wu1394f032007-05-06 14:50:22 -0700305config MEM_GENERIC_BOARD
306 bool
307 depends on GENERIC_BOARD
308 default y
309
310config MEM_MT48LC64M4A2FB_7E
311 bool
312 depends on (BFIN533_STAMP)
313 default y
314
315config MEM_MT48LC16M16A2TG_75
316 bool
317 depends on (BFIN533_EZKIT || BFIN561_EZKIT \
Javier Herreroab472a02007-10-29 16:14:44 +0800318 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
Michael Hennerich9db144f2008-07-19 17:16:07 +0800319 || H8606_HVSISTEMAS || BFIN527_BLUETECHNIX_CM)
Bryan Wu1394f032007-05-06 14:50:22 -0700320 default y
321
322config MEM_MT48LC32M8A2_75
323 bool
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800324 depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
Bryan Wu1394f032007-05-06 14:50:22 -0700325 default y
326
327config MEM_MT48LC8M32B2B5_7
328 bool
329 depends on (BFIN561_BLUETECHNIX_CM)
330 default y
331
Michael Hennerich59003142007-10-21 16:54:27 +0800332config MEM_MT48LC32M16A2TG_75
333 bool
Michael Hennerich8cc71172008-10-13 14:45:06 +0800334 depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD)
Michael Hennerich59003142007-10-21 16:54:27 +0800335 default y
336
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800337source "arch/blackfin/mach-bf518/Kconfig"
Michael Hennerich59003142007-10-21 16:54:27 +0800338source "arch/blackfin/mach-bf527/Kconfig"
Bryan Wu1394f032007-05-06 14:50:22 -0700339source "arch/blackfin/mach-bf533/Kconfig"
340source "arch/blackfin/mach-bf561/Kconfig"
341source "arch/blackfin/mach-bf537/Kconfig"
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800342source "arch/blackfin/mach-bf538/Kconfig"
Roy Huang24a07a12007-07-12 22:41:45 +0800343source "arch/blackfin/mach-bf548/Kconfig"
Bryan Wu1394f032007-05-06 14:50:22 -0700344
345menu "Board customizations"
346
347config CMDLINE_BOOL
348 bool "Default bootloader kernel arguments"
349
350config 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
Mike Frysinger5f004c22008-04-25 02:11:24 +0800359config 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
Michael Hennerich8cc71172008-10-13 14:45:06 +0800373config ROM_BASE
374 hex "Kernel ROM Base"
Mike Frysinger86249912008-11-18 17:48:22 +0800375 depends on ROMKERNEL
Michael Hennerich8cc71172008-10-13 14:45:06 +0800376 default "0x20040000"
377 range 0x20000000 0x20400000 if !(BF54x || BF561)
378 range 0x20000000 0x30000000 if (BF54x || BF561)
379 help
380
Robin Getzf16295e2007-08-03 18:07:17 +0800381comment "Clock/PLL Setup"
Bryan Wu1394f032007-05-06 14:50:22 -0700382
383config CLKIN_HZ
Sonic Zhang2fb6cb42008-04-25 04:39:28 +0800384 int "Frequency of the crystal on the board in Hz"
Bryan Wu1394f032007-05-06 14:50:22 -0700385 default "11059200" if BFIN533_STAMP
386 default "27000000" if BFIN533_EZKIT
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800387 default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN538_EZKIT || BFIN518F-EZBRD)
Bryan Wu1394f032007-05-06 14:50:22 -0700388 default "30000000" if BFIN561_EZKIT
389 default "24576000" if PNAV10
Mike Frysinger5d1617b2008-04-24 05:03:26 +0800390 default "10000000" if BFIN532_IP0X
Bryan Wu1394f032007-05-06 14:50:22 -0700391 help
392 The frequency of CLKIN crystal oscillator on the board in Hz.
Sonic Zhang2fb6cb42008-04-25 04:39:28 +0800393 Warning: This value should match the crystal on the board. Otherwise,
394 peripherals won't work properly.
Bryan Wu1394f032007-05-06 14:50:22 -0700395
Robin Getzf16295e2007-08-03 18:07:17 +0800396config BFIN_KERNEL_CLOCK
397 bool "Re-program Clocks while Kernel boots?"
398 default n
399 help
400 This option decides if kernel clocks are re-programed from the
401 bootloader settings. If the clocks are not set, the SDRAM settings
402 are also not changed, and the Bootloader does 100% of the hardware
403 configuration.
404
405config PLL_BYPASS
Mike Frysingere4e9a7a2007-11-15 20:39:34 +0800406 bool "Bypass PLL"
407 depends on BFIN_KERNEL_CLOCK
408 default n
Robin Getzf16295e2007-08-03 18:07:17 +0800409
410config CLKIN_HALF
411 bool "Half Clock In"
412 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
413 default n
414 help
415 If this is set the clock will be divided by 2, before it goes to the PLL.
416
417config VCO_MULT
418 int "VCO Multiplier"
419 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
420 range 1 64
421 default "22" if BFIN533_EZKIT
422 default "45" if BFIN533_STAMP
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800423 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
Robin Getzf16295e2007-08-03 18:07:17 +0800424 default "22" if BFIN533_BLUETECHNIX_CM
Michael Hennerich9db144f2008-07-19 17:16:07 +0800425 default "20" if (BFIN537_BLUETECHNIX_CM || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
Robin Getzf16295e2007-08-03 18:07:17 +0800426 default "20" if BFIN561_EZKIT
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800427 default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
Robin Getzf16295e2007-08-03 18:07:17 +0800428 help
429 This controls the frequency of the on-chip PLL. This can be between 1 and 64.
430 PLL Frequency = (Crystal Frequency) * (this setting)
431
432choice
433 prompt "Core Clock Divider"
434 depends on BFIN_KERNEL_CLOCK
435 default CCLK_DIV_1
436 help
437 This sets the frequency of the core. It can be 1, 2, 4 or 8
438 Core Frequency = (PLL frequency) / (this setting)
439
440config CCLK_DIV_1
441 bool "1"
442
443config CCLK_DIV_2
444 bool "2"
445
446config CCLK_DIV_4
447 bool "4"
448
449config CCLK_DIV_8
450 bool "8"
451endchoice
452
453config SCLK_DIV
454 int "System Clock Divider"
455 depends on BFIN_KERNEL_CLOCK
456 range 1 15
Mike Frysinger5f004c22008-04-25 02:11:24 +0800457 default 5
Robin Getzf16295e2007-08-03 18:07:17 +0800458 help
459 This sets the frequency of the system clock (including SDRAM or DDR).
460 This can be between 1 and 15
461 System Clock = (PLL frequency) / (this setting)
462
Mike Frysinger5f004c22008-04-25 02:11:24 +0800463choice
464 prompt "DDR SDRAM Chip Type"
465 depends on BFIN_KERNEL_CLOCK
466 depends on BF54x
467 default MEM_MT46V32M16_5B
468
469config MEM_MT46V32M16_6T
470 bool "MT46V32M16_6T"
471
472config MEM_MT46V32M16_5B
473 bool "MT46V32M16_5B"
474endchoice
475
Mike Frysinger7eb2c232008-10-08 17:39:02 +0800476config MAX_MEM_SIZE
477 int "Max SDRAM Memory Size in MBytes"
478 depends on !MPU
479 default 512
480 help
481 This is the max memory size that the kernel will create CPLB
482 tables for. Your system will not be able to handle any more.
483
Robin Getzf16295e2007-08-03 18:07:17 +0800484#
485# Max & Min Speeds for various Chips
486#
487config MAX_VCO_HZ
488 int
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800489 default 400000000 if BF512
490 default 400000000 if BF514
491 default 400000000 if BF516
492 default 400000000 if BF518
Robin Getzf16295e2007-08-03 18:07:17 +0800493 default 600000000 if BF522
Mike Frysinger1545a112007-12-24 16:54:48 +0800494 default 400000000 if BF523
495 default 400000000 if BF524
Robin Getzf16295e2007-08-03 18:07:17 +0800496 default 600000000 if BF525
Mike Frysinger1545a112007-12-24 16:54:48 +0800497 default 400000000 if BF526
Robin Getzf16295e2007-08-03 18:07:17 +0800498 default 600000000 if BF527
499 default 400000000 if BF531
500 default 400000000 if BF532
501 default 750000000 if BF533
502 default 500000000 if BF534
503 default 400000000 if BF536
504 default 600000000 if BF537
Robin Getzf72eecb2007-11-21 16:29:20 +0800505 default 533333333 if BF538
506 default 533333333 if BF539
Robin Getzf16295e2007-08-03 18:07:17 +0800507 default 600000000 if BF542
Robin Getzf72eecb2007-11-21 16:29:20 +0800508 default 533333333 if BF544
Mike Frysinger1545a112007-12-24 16:54:48 +0800509 default 600000000 if BF547
510 default 600000000 if BF548
Robin Getzf72eecb2007-11-21 16:29:20 +0800511 default 533333333 if BF549
Robin Getzf16295e2007-08-03 18:07:17 +0800512 default 600000000 if BF561
513
514config MIN_VCO_HZ
515 int
516 default 50000000
517
518config MAX_SCLK_HZ
519 int
Robin Getzf72eecb2007-11-21 16:29:20 +0800520 default 133333333
Robin Getzf16295e2007-08-03 18:07:17 +0800521
522config MIN_SCLK_HZ
523 int
524 default 27000000
525
526comment "Kernel Timer/Scheduler"
527
528source kernel/Kconfig.hz
529
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800530config GENERIC_TIME
531 bool "Generic time"
Graf Yang46fa5ee2009-01-07 23:14:39 +0800532 depends on !SMP
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800533 default y
534
535config GENERIC_CLOCKEVENTS
536 bool "Generic clock events"
537 depends on GENERIC_TIME
538 default y
539
540config CYCLES_CLOCKSOURCE
541 bool "Use 'CYCLES' as a clocksource (EXPERIMENTAL)"
542 depends on EXPERIMENTAL
543 depends on GENERIC_CLOCKEVENTS
544 depends on !BFIN_SCRATCH_REG_CYCLES
545 default n
546 help
547 If you say Y here, you will enable support for using the 'cycles'
548 registers as a clock source. Doing so means you will be unable to
549 safely write to the 'cycles' register during runtime. You will
550 still be able to read it (such as for performance monitoring), but
551 writing the registers will most likely crash the kernel.
552
553source kernel/time/Kconfig
554
Mike Frysinger5f004c22008-04-25 02:11:24 +0800555comment "Misc"
Sonic Zhang971d5bc2008-01-27 16:32:31 +0800556
Mike Frysingerf0b5d122007-08-05 17:03:59 +0800557choice
558 prompt "Blackfin Exception Scratch Register"
559 default BFIN_SCRATCH_REG_RETN
560 help
561 Select the resource to reserve for the Exception handler:
562 - RETN: Non-Maskable Interrupt (NMI)
563 - RETE: Exception Return (JTAG/ICE)
564 - CYCLES: Performance counter
565
566 If you are unsure, please select "RETN".
567
568config BFIN_SCRATCH_REG_RETN
569 bool "RETN"
570 help
571 Use the RETN register in the Blackfin exception handler
572 as a stack scratch register. This means you cannot
573 safely use NMI on the Blackfin while running Linux, but
574 you can debug the system with a JTAG ICE and use the
575 CYCLES performance registers.
576
577 If you are unsure, please select "RETN".
578
579config BFIN_SCRATCH_REG_RETE
580 bool "RETE"
581 help
582 Use the RETE register in the Blackfin exception handler
583 as a stack scratch register. This means you cannot
584 safely use a JTAG ICE while debugging a Blackfin board,
585 but you can safely use the CYCLES performance registers
586 and the NMI.
587
588 If you are unsure, please select "RETN".
589
590config BFIN_SCRATCH_REG_CYCLES
591 bool "CYCLES"
592 help
593 Use the CYCLES register in the Blackfin exception handler
594 as a stack scratch register. This means you cannot
595 safely use the CYCLES performance registers on a Blackfin
596 board at anytime, but you can debug the system with a JTAG
597 ICE and use the NMI.
598
599 If you are unsure, please select "RETN".
600
601endchoice
602
Bryan Wu1394f032007-05-06 14:50:22 -0700603endmenu
604
605
606menu "Blackfin Kernel Optimizations"
Graf Yang46fa5ee2009-01-07 23:14:39 +0800607 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700608
Bryan Wu1394f032007-05-06 14:50:22 -0700609comment "Memory Optimizations"
610
611config I_ENTRY_L1
612 bool "Locate interrupt entry code in L1 Memory"
613 default y
614 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200615 If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
616 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700617
618config EXCPT_IRQ_SYSC_L1
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200619 bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
Bryan Wu1394f032007-05-06 14:50:22 -0700620 default y
621 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200622 If enabled, the entire ASM lowlevel exception and interrupt entry code
Michael Hennerichcfefe3c2008-02-09 04:12:37 +0800623 (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200624 (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700625
626config DO_IRQ_L1
627 bool "Locate frequently called do_irq dispatcher function in L1 Memory"
628 default y
629 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200630 If enabled, the frequently called do_irq dispatcher function is linked
631 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700632
633config CORE_TIMER_IRQ_L1
634 bool "Locate frequently called timer_interrupt() function in L1 Memory"
635 default y
636 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200637 If enabled, the frequently called timer_interrupt() function is linked
638 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700639
640config IDLE_L1
641 bool "Locate frequently idle function in L1 Memory"
642 default y
643 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200644 If enabled, the frequently called idle function is linked
645 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700646
647config SCHEDULE_L1
648 bool "Locate kernel schedule function in L1 Memory"
649 default y
650 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200651 If enabled, the frequently called kernel schedule is linked
652 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700653
654config ARITHMETIC_OPS_L1
655 bool "Locate kernel owned arithmetic functions in L1 Memory"
656 default y
657 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200658 If enabled, arithmetic functions are linked
659 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700660
661config ACCESS_OK_L1
662 bool "Locate access_ok function in L1 Memory"
663 default y
664 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200665 If enabled, the access_ok function is linked
666 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700667
668config MEMSET_L1
669 bool "Locate memset function in L1 Memory"
670 default y
671 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200672 If enabled, the memset function is linked
673 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700674
675config MEMCPY_L1
676 bool "Locate memcpy function in L1 Memory"
677 default y
678 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200679 If enabled, the memcpy function is linked
680 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700681
682config SYS_BFIN_SPINLOCK_L1
683 bool "Locate sys_bfin_spinlock function in L1 Memory"
684 default y
685 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200686 If enabled, sys_bfin_spinlock function is linked
687 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700688
689config IP_CHECKSUM_L1
690 bool "Locate IP Checksum function in L1 Memory"
691 default n
692 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200693 If enabled, the IP Checksum function is linked
694 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700695
696config CACHELINE_ALIGNED_L1
697 bool "Locate cacheline_aligned data to L1 Data Memory"
Michael Hennerich157cc5a2007-07-12 16:20:21 +0800698 default y if !BF54x
699 default n if BF54x
Bryan Wu1394f032007-05-06 14:50:22 -0700700 depends on !BF531
701 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200702 If enabled, cacheline_anligned data is linked
703 into L1 data memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700704
705config SYSCALL_TAB_L1
706 bool "Locate Syscall Table L1 Data Memory"
707 default n
708 depends on !BF531
709 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200710 If enabled, the Syscall LUT is linked
711 into L1 data memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700712
713config CPLB_SWITCH_TAB_L1
714 bool "Locate CPLB Switch Tables L1 Data Memory"
715 default n
716 depends on !BF531
717 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200718 If enabled, the CPLB Switch Tables are linked
719 into L1 data memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700720
Graf Yangca87b7a2008-10-08 17:30:01 +0800721config APP_STACK_L1
722 bool "Support locating application stack in L1 Scratch Memory"
723 default y
724 help
725 If enabled the application stack can be located in L1
726 scratch memory (less latency).
727
728 Currently only works with FLAT binaries.
729
Mike Frysinger6ad2b842008-10-28 11:03:09 +0800730config EXCEPTION_L1_SCRATCH
731 bool "Locate exception stack in L1 Scratch Memory"
732 default n
733 depends on !APP_STACK_L1 && !SYSCALL_TAB_L1
734 help
735 Whenever an exception occurs, use the L1 Scratch memory for
736 stack storage. You cannot place the stacks of FLAT binaries
737 in L1 when using this option.
738
739 If you don't use L1 Scratch, then you should say Y here.
740
Robin Getz251383c2008-08-14 15:12:55 +0800741comment "Speed Optimizations"
742config BFIN_INS_LOWOVERHEAD
743 bool "ins[bwl] low overhead, higher interrupt latency"
744 default y
745 help
746 Reads on the Blackfin are speculative. In Blackfin terms, this means
747 they can be interrupted at any time (even after they have been issued
748 on to the external bus), and re-issued after the interrupt occurs.
749 For memory - this is not a big deal, since memory does not change if
750 it sees a read.
751
752 If a FIFO is sitting on the end of the read, it will see two reads,
753 when the core only sees one since the FIFO receives both the read
754 which is cancelled (and not delivered to the core) and the one which
755 is re-issued (which is delivered to the core).
756
757 To solve this, interrupts are turned off before reads occur to
758 I/O space. This option controls which the overhead/latency of
759 controlling interrupts during this time
760 "n" turns interrupts off every read
761 (higher overhead, but lower interrupt latency)
762 "y" turns interrupts off every loop
763 (low overhead, but longer interrupt latency)
764
765 default behavior is to leave this set to on (type "Y"). If you are experiencing
766 interrupt latency issues, it is safe and OK to turn this off.
767
Bryan Wu1394f032007-05-06 14:50:22 -0700768endmenu
769
Bryan Wu1394f032007-05-06 14:50:22 -0700770choice
771 prompt "Kernel executes from"
772 help
773 Choose the memory type that the kernel will be running in.
774
775config RAMKERNEL
776 bool "RAM"
777 help
778 The kernel will be resident in RAM when running.
779
780config ROMKERNEL
781 bool "ROM"
782 help
783 The kernel will be resident in FLASH/ROM when running.
784
785endchoice
786
787source "mm/Kconfig"
788
Mike Frysinger780431e2007-10-21 23:37:54 +0800789config BFIN_GPTIMERS
790 tristate "Enable Blackfin General Purpose Timers API"
791 default n
792 help
793 Enable support for the General Purpose Timers API. If you
794 are unsure, say N.
795
796 To compile this driver as a module, choose M here: the module
797 will be called gptimers.ko.
798
Bryan Wu1394f032007-05-06 14:50:22 -0700799choice
Mike Frysingerd292b002008-10-28 11:15:36 +0800800 prompt "Uncached DMA region"
Bryan Wu1394f032007-05-06 14:50:22 -0700801 default DMA_UNCACHED_1M
Cliff Cai86ad7932008-05-17 16:36:52 +0800802config DMA_UNCACHED_4M
803 bool "Enable 4M DMA region"
Bryan Wu1394f032007-05-06 14:50:22 -0700804config DMA_UNCACHED_2M
805 bool "Enable 2M DMA region"
806config DMA_UNCACHED_1M
807 bool "Enable 1M DMA region"
808config DMA_UNCACHED_NONE
809 bool "Disable DMA region"
810endchoice
811
812
813comment "Cache Support"
Robin Getz3bebca22007-10-10 23:55:26 +0800814config BFIN_ICACHE
Bryan Wu1394f032007-05-06 14:50:22 -0700815 bool "Enable ICACHE"
Robin Getz3bebca22007-10-10 23:55:26 +0800816config BFIN_DCACHE
Bryan Wu1394f032007-05-06 14:50:22 -0700817 bool "Enable DCACHE"
Robin Getz3bebca22007-10-10 23:55:26 +0800818config BFIN_DCACHE_BANKA
Bryan Wu1394f032007-05-06 14:50:22 -0700819 bool "Enable only 16k BankA DCACHE - BankB is SRAM"
Robin Getz3bebca22007-10-10 23:55:26 +0800820 depends on BFIN_DCACHE && !BF531
Bryan Wu1394f032007-05-06 14:50:22 -0700821 default n
Robin Getz3bebca22007-10-10 23:55:26 +0800822config BFIN_ICACHE_LOCK
823 bool "Enable Instruction Cache Locking"
Bryan Wu1394f032007-05-06 14:50:22 -0700824
825choice
826 prompt "Policy"
Robin Getz3bebca22007-10-10 23:55:26 +0800827 depends on BFIN_DCACHE
Graf Yang46fa5ee2009-01-07 23:14:39 +0800828 default BFIN_WB if !SMP
829 default BFIN_WT if SMP
Robin Getz3bebca22007-10-10 23:55:26 +0800830config BFIN_WB
Bryan Wu1394f032007-05-06 14:50:22 -0700831 bool "Write back"
Graf Yang46fa5ee2009-01-07 23:14:39 +0800832 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700833 help
834 Write Back Policy:
835 Cached data will be written back to SDRAM only when needed.
836 This can give a nice increase in performance, but beware of
837 broken drivers that do not properly invalidate/flush their
838 cache.
839
840 Write Through Policy:
841 Cached data will always be written back to SDRAM when the
842 cache is updated. This is a completely safe setting, but
843 performance is worse than Write Back.
844
845 If you are unsure of the options and you want to be safe,
846 then go with Write Through.
847
Robin Getz3bebca22007-10-10 23:55:26 +0800848config BFIN_WT
Bryan Wu1394f032007-05-06 14:50:22 -0700849 bool "Write through"
850 help
851 Write Back Policy:
852 Cached data will be written back to SDRAM only when needed.
853 This can give a nice increase in performance, but beware of
854 broken drivers that do not properly invalidate/flush their
855 cache.
856
857 Write Through Policy:
858 Cached data will always be written back to SDRAM when the
859 cache is updated. This is a completely safe setting, but
860 performance is worse than Write Back.
861
862 If you are unsure of the options and you want to be safe,
863 then go with Write Through.
864
865endchoice
866
Sonic Zhangf099f392008-10-09 14:11:57 +0800867config BFIN_L2_CACHEABLE
868 bool "Cache L2 SRAM"
869 depends on (BFIN_DCACHE || BFIN_ICACHE) && (BF54x || BF561)
870 default n
871 help
872 Select to make L2 SRAM cacheable in L1 data and instruction cache.
873
Bernd Schmidtb97b8a92008-01-27 18:39:16 +0800874config MPU
875 bool "Enable the memory protection unit (EXPERIMENTAL)"
876 default n
877 help
878 Use the processor's MPU to protect applications from accessing
879 memory they do not own. This comes at a performance penalty
880 and is recommended only for debugging.
881
Bryan Wu1394f032007-05-06 14:50:22 -0700882comment "Asynchonous Memory Configuration"
883
Mike Frysingerddf416b2007-10-10 18:06:47 +0800884menu "EBIU_AMGCTL Global Control"
Bryan Wu1394f032007-05-06 14:50:22 -0700885config C_AMCKEN
886 bool "Enable CLKOUT"
887 default y
888
889config C_CDPRIO
890 bool "DMA has priority over core for ext. accesses"
891 default n
892
893config C_B0PEN
894 depends on BF561
895 bool "Bank 0 16 bit packing enable"
896 default y
897
898config C_B1PEN
899 depends on BF561
900 bool "Bank 1 16 bit packing enable"
901 default y
902
903config C_B2PEN
904 depends on BF561
905 bool "Bank 2 16 bit packing enable"
906 default y
907
908config C_B3PEN
909 depends on BF561
910 bool "Bank 3 16 bit packing enable"
911 default n
912
913choice
914 prompt"Enable Asynchonous Memory Banks"
915 default C_AMBEN_ALL
916
917config C_AMBEN
918 bool "Disable All Banks"
919
920config C_AMBEN_B0
921 bool "Enable Bank 0"
922
923config C_AMBEN_B0_B1
924 bool "Enable Bank 0 & 1"
925
926config C_AMBEN_B0_B1_B2
927 bool "Enable Bank 0 & 1 & 2"
928
929config C_AMBEN_ALL
930 bool "Enable All Banks"
931endchoice
932endmenu
933
934menu "EBIU_AMBCTL Control"
935config BANK_0
936 hex "Bank 0"
937 default 0x7BB0
938
939config BANK_1
940 hex "Bank 1"
941 default 0x7BB0
Michael Hennerich197fba52008-05-07 17:03:27 +0800942 default 0x5558 if BF54x
Bryan Wu1394f032007-05-06 14:50:22 -0700943
944config BANK_2
945 hex "Bank 2"
946 default 0x7BB0
947
948config BANK_3
949 hex "Bank 3"
950 default 0x99B3
951endmenu
952
Sonic Zhange40540b2007-11-21 23:49:52 +0800953config EBIU_MBSCTLVAL
954 hex "EBIU Bank Select Control Register"
955 depends on BF54x
956 default 0
957
958config EBIU_MODEVAL
959 hex "Flash Memory Mode Control Register"
960 depends on BF54x
961 default 1
962
963config EBIU_FCTLVAL
964 hex "Flash Memory Bank Control Register"
965 depends on BF54x
966 default 6
Bryan Wu1394f032007-05-06 14:50:22 -0700967endmenu
968
969#############################################################################
970menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
971
972config PCI
973 bool "PCI support"
Adrian Bunka95ca3b2008-08-27 10:55:05 +0800974 depends on BROKEN
Bryan Wu1394f032007-05-06 14:50:22 -0700975 help
976 Support for PCI bus.
977
978source "drivers/pci/Kconfig"
979
980config HOTPLUG
981 bool "Support for hot-pluggable device"
982 help
983 Say Y here if you want to plug devices into your computer while
984 the system is running, and be able to use them quickly. In many
985 cases, the devices can likewise be unplugged at any time too.
986
987 One well known example of this is PCMCIA- or PC-cards, credit-card
988 size devices such as network cards, modems or hard drives which are
989 plugged into slots found on all modern laptop computers. Another
990 example, used on modern desktops as well as laptops, is USB.
991
Johannes Berga81792f2008-07-08 19:00:25 +0200992 Enable HOTPLUG and build a modular kernel. Get agent software
993 (from <http://linux-hotplug.sourceforge.net/>) and install it.
Bryan Wu1394f032007-05-06 14:50:22 -0700994 Then your kernel will automatically call out to a user mode "policy
995 agent" (/sbin/hotplug) to load modules and set up software needed
996 to use devices as you hotplug them.
997
998source "drivers/pcmcia/Kconfig"
999
1000source "drivers/pci/hotplug/Kconfig"
1001
1002endmenu
1003
1004menu "Executable file formats"
1005
1006source "fs/Kconfig.binfmt"
1007
1008endmenu
1009
1010menu "Power management options"
1011source "kernel/power/Kconfig"
1012
Johannes Bergf4cb5702007-12-08 02:14:00 +01001013config ARCH_SUSPEND_POSSIBLE
1014 def_bool y
1015 depends on !SMP
1016
Bryan Wu1394f032007-05-06 14:50:22 -07001017choice
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001018 prompt "Standby Power Saving Mode"
Bryan Wu1394f032007-05-06 14:50:22 -07001019 depends on PM
Michael Hennerichcfefe3c2008-02-09 04:12:37 +08001020 default PM_BFIN_SLEEP_DEEPER
1021config PM_BFIN_SLEEP_DEEPER
1022 bool "Sleep Deeper"
Bryan Wu1394f032007-05-06 14:50:22 -07001023 help
Michael Hennerichcfefe3c2008-02-09 04:12:37 +08001024 Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1025 power dissipation by disabling the clock to the processor core (CCLK).
1026 Furthermore, Standby sets the internal power supply voltage (VDDINT)
1027 to 0.85 V to provide the greatest power savings, while preserving the
1028 processor state.
1029 The PLL and system clock (SCLK) continue to operate at a very low
1030 frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1031 the SDRAM is put into Self Refresh Mode. Typically an external event
1032 such as GPIO interrupt or RTC activity wakes up the processor.
1033 Various Peripherals such as UART, SPORT, PPI may not function as
1034 normal during Sleep Deeper, due to the reduced SCLK frequency.
1035 When in the sleep mode, system DMA access to L1 memory is not supported.
Bryan Wu1394f032007-05-06 14:50:22 -07001036
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001037 If unsure, select "Sleep Deeper".
1038
Michael Hennerichcfefe3c2008-02-09 04:12:37 +08001039config PM_BFIN_SLEEP
1040 bool "Sleep"
1041 help
1042 Sleep Mode (High Power Savings) - The sleep mode reduces power
1043 dissipation by disabling the clock to the processor core (CCLK).
1044 The PLL and system clock (SCLK), however, continue to operate in
1045 this mode. Typically an external event or RTC activity will wake
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001046 up the processor. When in the sleep mode, system DMA access to L1
1047 memory is not supported.
1048
1049 If unsure, select "Sleep Deeper".
Bryan Wu1394f032007-05-06 14:50:22 -07001050endchoice
1051
Michael Hennerichcfefe3c2008-02-09 04:12:37 +08001052config PM_WAKEUP_BY_GPIO
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001053 bool "Allow Wakeup from Standby by GPIO"
Bryan Wu1394f032007-05-06 14:50:22 -07001054
1055config PM_WAKEUP_GPIO_NUMBER
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001056 int "GPIO number"
Bryan Wu1394f032007-05-06 14:50:22 -07001057 range 0 47
1058 depends on PM_WAKEUP_BY_GPIO
Mike Frysingerd1a33362008-11-18 17:48:22 +08001059 default 2
Bryan Wu1394f032007-05-06 14:50:22 -07001060
1061choice
1062 prompt "GPIO Polarity"
1063 depends on PM_WAKEUP_BY_GPIO
1064 default PM_WAKEUP_GPIO_POLAR_H
1065config PM_WAKEUP_GPIO_POLAR_H
1066 bool "Active High"
1067config PM_WAKEUP_GPIO_POLAR_L
1068 bool "Active Low"
1069config PM_WAKEUP_GPIO_POLAR_EDGE_F
1070 bool "Falling EDGE"
1071config PM_WAKEUP_GPIO_POLAR_EDGE_R
1072 bool "Rising EDGE"
1073config PM_WAKEUP_GPIO_POLAR_EDGE_B
1074 bool "Both EDGE"
1075endchoice
1076
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001077comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1078 depends on PM
1079
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001080config PM_BFIN_WAKE_PH6
1081 bool "Allow Wake-Up from on-chip PHY or PH6 GP"
Bryan Wu2f6f4bc2008-11-18 17:48:21 +08001082 depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001083 default n
1084 help
1085 Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1086
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001087config PM_BFIN_WAKE_GP
1088 bool "Allow Wake-Up from GPIOs"
1089 depends on PM && BF54x
1090 default n
1091 help
1092 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
Bryan Wu1394f032007-05-06 14:50:22 -07001093endmenu
1094
Bryan Wu1394f032007-05-06 14:50:22 -07001095menu "CPU Frequency scaling"
1096
1097source "drivers/cpufreq/Kconfig"
1098
Michael Hennerich5ad2ca52008-11-18 17:48:22 +08001099config BFIN_CPU_FREQ
1100 bool
1101 depends on CPU_FREQ
1102 select CPU_FREQ_TABLE
1103 default y
1104
Michael Hennerich14b03202008-05-07 11:41:26 +08001105config CPU_VOLTAGE
1106 bool "CPU Voltage scaling"
1107 depends on EXPERIMENTAL
1108 depends on CPU_FREQ
1109 default n
1110 help
1111 Say Y here if you want CPU voltage scaling according to the CPU frequency.
1112 This option violates the PLL BYPASS recommendation in the Blackfin Processor
1113 manuals. There is a theoretical risk that during VDDINT transitions
1114 the PLL may unlock.
1115
Bryan Wu1394f032007-05-06 14:50:22 -07001116endmenu
1117
Bryan Wu1394f032007-05-06 14:50:22 -07001118source "net/Kconfig"
1119
1120source "drivers/Kconfig"
1121
1122source "fs/Kconfig"
1123
Mike Frysinger74ce8322007-11-21 23:50:49 +08001124source "arch/blackfin/Kconfig.debug"
Bryan Wu1394f032007-05-06 14:50:22 -07001125
1126source "security/Kconfig"
1127
1128source "crypto/Kconfig"
1129
1130source "lib/Kconfig"