blob: af76634f8d9897fe61ae64a2b956d9ce07951c0c [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001config MMU
Mike Frysingerbac7d892009-06-07 03:46:06 -04002 def_bool n
Bryan Wu1394f032007-05-06 14:50:22 -07003
4config FPU
Mike Frysingerbac7d892009-06-07 03:46:06 -04005 def_bool n
Bryan Wu1394f032007-05-06 14:50:22 -07006
7config RWSEM_GENERIC_SPINLOCK
Mike Frysingerbac7d892009-06-07 03:46:06 -04008 def_bool y
Bryan Wu1394f032007-05-06 14:50:22 -07009
10config RWSEM_XCHGADD_ALGORITHM
Mike Frysingerbac7d892009-06-07 03:46:06 -040011 def_bool n
Bryan Wu1394f032007-05-06 14:50:22 -070012
13config BLACKFIN
Mike Frysingerbac7d892009-06-07 03:46:06 -040014 def_bool y
Mike Frysinger652afdc2010-01-25 22:12:32 +000015 select HAVE_ARCH_KGDB
Mike Frysingere8f263d2010-01-26 07:33:53 +000016 select HAVE_ARCH_TRACEHOOK
Mike Frysingerf5074422010-07-21 09:13:02 -040017 select HAVE_DYNAMIC_FTRACE
18 select HAVE_FTRACE_MCOUNT_RECORD
Mike Frysinger1ee76d72009-06-10 04:45:29 -040019 select HAVE_FUNCTION_GRAPH_TRACER
Mike Frysinger1c873be2009-06-09 07:25:09 -040020 select HAVE_FUNCTION_TRACER
Sam Ravnborgec7748b2008-02-09 10:46:40 +010021 select HAVE_IDE
Barry Songd86bfb12010-01-07 04:11:17 +000022 select HAVE_KERNEL_GZIP if RAMKERNEL
23 select HAVE_KERNEL_BZIP2 if RAMKERNEL
24 select HAVE_KERNEL_LZMA if RAMKERNEL
Mike Frysinger67df6cc2010-07-19 05:37:54 +000025 select HAVE_KERNEL_LZO if RAMKERNEL
Mathieu Desnoyers42d4b832008-02-02 15:10:34 -050026 select HAVE_OPROFILE
Mike Frysinger7db79172011-05-06 11:47:52 -040027 select HAVE_PERF_EVENTS
Mark Brown7563bbf2012-04-15 10:52:54 +010028 select ARCH_HAVE_CUSTOM_GPIO_H
Alexandre Courbota2523d32013-03-12 18:04:08 +090029 select ARCH_REQUIRE_GPIOLIB
Catalin Marinasaf1839e2012-10-08 16:28:08 -070030 select HAVE_UID16
Rusty Russellb92021b2013-03-15 15:04:17 +103031 select HAVE_UNDERSCORE_SYMBOL_PREFIX
Stephen Rothwell4febd952013-03-07 15:48:16 +110032 select VIRT_TO_BUS
Will Deaconc1d7e012012-07-30 14:42:46 -070033 select ARCH_WANT_IPC_PARSE_VERSION
Mike Frysingerbee18be2011-03-21 02:39:10 -040034 select GENERIC_ATOMIC64
Thomas Gleixner7b028862011-01-19 20:29:58 +010035 select GENERIC_IRQ_PROBE
Thomas Gleixnere8fac632014-02-23 21:40:13 +000036 select GENERIC_IRQ_SHOW
Cong Wangd314d742012-03-23 15:01:51 -070037 select HAVE_NMI_WATCHDOG if NMI_WATCHDOG
Thomas Gleixner6bba2682012-04-20 13:05:53 +000038 select GENERIC_SMP_IDLE_THREAD
Anna-Maria Gleixnerdfbaec02012-05-18 16:45:45 +000039 select ARCH_USES_GETTIMEOFFSET if !GENERIC_CLOCKEVENTS
David Howells786d35d2012-09-28 14:31:03 +093040 select HAVE_MOD_ARCH_SPECIFIC
41 select MODULES_USE_ELF_RELA
Dave Hansend1a1dc02013-07-01 13:04:42 -070042 select HAVE_DEBUG_STACKOVERFLOW
Bryan Wu1394f032007-05-06 14:50:22 -070043
Mike Frysingerddf9dda2009-06-13 07:42:58 -040044config GENERIC_CSUM
45 def_bool y
46
Mike Frysinger70f12562009-06-07 17:18:25 -040047config GENERIC_BUG
48 def_bool y
49 depends on BUG
50
Aubrey Lie3defff2007-05-21 18:09:11 +080051config ZONE_DMA
Mike Frysingerbac7d892009-06-07 03:46:06 -040052 def_bool y
Aubrey Lie3defff2007-05-21 18:09:11 +080053
Bryan Wu1394f032007-05-06 14:50:22 -070054config FORCE_MAX_ZONEORDER
55 int
56 default "14"
57
58config GENERIC_CALIBRATE_DELAY
Mike Frysingerbac7d892009-06-07 03:46:06 -040059 def_bool y
Bryan Wu1394f032007-05-06 14:50:22 -070060
Mike Frysinger6fa68e72009-06-08 18:45:01 -040061config LOCKDEP_SUPPORT
62 def_bool y
63
Mike Frysingerc7b412f2009-06-08 18:44:45 -040064config STACKTRACE_SUPPORT
65 def_bool y
66
Mike Frysinger8f860012009-06-08 12:49:48 -040067config TRACE_IRQFLAGS_SUPPORT
68 def_bool y
Bryan Wu1394f032007-05-06 14:50:22 -070069
Bryan Wu1394f032007-05-06 14:50:22 -070070source "init/Kconfig"
Matt Helsleydc52ddc2008-10-18 20:27:21 -070071
Bryan Wu1394f032007-05-06 14:50:22 -070072source "kernel/Kconfig.preempt"
73
Matt Helsleydc52ddc2008-10-18 20:27:21 -070074source "kernel/Kconfig.freezer"
75
Bryan Wu1394f032007-05-06 14:50:22 -070076menu "Blackfin Processor Options"
77
78comment "Processor and Board Settings"
79
80choice
81 prompt "CPU"
82 default BF533
83
Bryan Wu2f6f4bc2008-11-18 17:48:21 +080084config BF512
85 bool "BF512"
86 help
87 BF512 Processor Support.
88
89config BF514
90 bool "BF514"
91 help
92 BF514 Processor Support.
93
94config BF516
95 bool "BF516"
96 help
97 BF516 Processor Support.
98
99config BF518
100 bool "BF518"
101 help
102 BF518 Processor Support.
103
Michael Hennerich59003142007-10-21 16:54:27 +0800104config BF522
105 bool "BF522"
106 help
107 BF522 Processor Support.
108
Mike Frysinger1545a112007-12-24 16:54:48 +0800109config BF523
110 bool "BF523"
111 help
112 BF523 Processor Support.
113
114config BF524
115 bool "BF524"
116 help
117 BF524 Processor Support.
118
Michael Hennerich59003142007-10-21 16:54:27 +0800119config BF525
120 bool "BF525"
121 help
122 BF525 Processor Support.
123
Mike Frysinger1545a112007-12-24 16:54:48 +0800124config BF526
125 bool "BF526"
126 help
127 BF526 Processor Support.
128
Michael Hennerich59003142007-10-21 16:54:27 +0800129config BF527
130 bool "BF527"
131 help
132 BF527 Processor Support.
133
Bryan Wu1394f032007-05-06 14:50:22 -0700134config BF531
135 bool "BF531"
136 help
137 BF531 Processor Support.
138
139config BF532
140 bool "BF532"
141 help
142 BF532 Processor Support.
143
144config BF533
145 bool "BF533"
146 help
147 BF533 Processor Support.
148
149config BF534
150 bool "BF534"
151 help
152 BF534 Processor Support.
153
154config BF536
155 bool "BF536"
156 help
157 BF536 Processor Support.
158
159config BF537
160 bool "BF537"
161 help
162 BF537 Processor Support.
163
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800164config BF538
165 bool "BF538"
166 help
167 BF538 Processor Support.
168
169config BF539
170 bool "BF539"
171 help
172 BF539 Processor Support.
173
Mike Frysinger5df326a2009-11-16 23:49:41 +0000174config BF542_std
Roy Huang24a07a12007-07-12 22:41:45 +0800175 bool "BF542"
176 help
177 BF542 Processor Support.
178
Mike Frysinger2f89c062009-02-04 16:49:45 +0800179config BF542M
180 bool "BF542m"
181 help
182 BF542 Processor Support.
183
Mike Frysinger5df326a2009-11-16 23:49:41 +0000184config BF544_std
Roy Huang24a07a12007-07-12 22:41:45 +0800185 bool "BF544"
186 help
187 BF544 Processor Support.
188
Mike Frysinger2f89c062009-02-04 16:49:45 +0800189config BF544M
190 bool "BF544m"
191 help
192 BF544 Processor Support.
193
Mike Frysinger5df326a2009-11-16 23:49:41 +0000194config BF547_std
Mike Frysinger7c7fd172007-11-15 21:10:21 +0800195 bool "BF547"
196 help
197 BF547 Processor Support.
198
Mike Frysinger2f89c062009-02-04 16:49:45 +0800199config BF547M
200 bool "BF547m"
201 help
202 BF547 Processor Support.
203
Mike Frysinger5df326a2009-11-16 23:49:41 +0000204config BF548_std
Roy Huang24a07a12007-07-12 22:41:45 +0800205 bool "BF548"
206 help
207 BF548 Processor Support.
208
Mike Frysinger2f89c062009-02-04 16:49:45 +0800209config BF548M
210 bool "BF548m"
211 help
212 BF548 Processor Support.
213
Mike Frysinger5df326a2009-11-16 23:49:41 +0000214config BF549_std
Roy Huang24a07a12007-07-12 22:41:45 +0800215 bool "BF549"
216 help
217 BF549 Processor Support.
218
Mike Frysinger2f89c062009-02-04 16:49:45 +0800219config BF549M
220 bool "BF549m"
221 help
222 BF549 Processor Support.
223
Bryan Wu1394f032007-05-06 14:50:22 -0700224config BF561
225 bool "BF561"
226 help
Mike Frysingercd88b4d2008-10-09 12:03:22 +0800227 BF561 Processor Support.
Bryan Wu1394f032007-05-06 14:50:22 -0700228
Bob Liub5affb02012-05-16 17:37:24 +0800229config BF609
230 bool "BF609"
231 select CLKDEV_LOOKUP
232 help
233 BF609 Processor Support.
234
Bryan Wu1394f032007-05-06 14:50:22 -0700235endchoice
236
Graf Yang46fa5ee2009-01-07 23:14:39 +0800237config SMP
238 depends on BF561
Yi Li0d152c22009-12-28 10:21:49 +0000239 select TICKSOURCE_CORETMR
Graf Yang46fa5ee2009-01-07 23:14:39 +0800240 bool "Symmetric multi-processing support"
241 ---help---
242 This enables support for systems with more than one CPU,
243 like the dual core BF561. If you have a system with only one
244 CPU, say N. If you have a system with more than one CPU, say Y.
245
246 If you don't know what to do here, say N.
247
248config NR_CPUS
249 int
250 depends on SMP
251 default 2 if BF561
252
Graf Yang0b39db22009-12-28 11:13:51 +0000253config HOTPLUG_CPU
254 bool "Support for hot-pluggable CPUs"
Stephen Rothwell40b31362013-05-21 13:49:35 +1000255 depends on SMP
Graf Yang0b39db22009-12-28 11:13:51 +0000256 default y
257
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800258config BF_REV_MIN
259 int
Bob Liub5affb02012-05-16 17:37:24 +0800260 default 0 if (BF51x || BF52x || (BF54x && !BF54xM)) || BF60x
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800261 default 2 if (BF537 || BF536 || BF534)
Mike Frysinger2f89c062009-02-04 16:49:45 +0800262 default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM)
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800263 default 4 if (BF538 || BF539)
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800264
265config BF_REV_MAX
266 int
Bob Liub5affb02012-05-16 17:37:24 +0800267 default 2 if (BF51x || BF52x || (BF54x && !BF54xM)) || BF60x
Mike Frysinger2f89c062009-02-04 16:49:45 +0800268 default 3 if (BF537 || BF536 || BF534 || BF54xM)
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800269 default 5 if (BF561 || BF538 || BF539)
Mike Frysinger0c0497c2008-10-09 17:32:28 +0800270 default 6 if (BF533 || BF532 || BF531)
271
Bryan Wu1394f032007-05-06 14:50:22 -0700272choice
273 prompt "Silicon Rev"
Bob Liub5affb02012-05-16 17:37:24 +0800274 default BF_REV_0_0 if (BF51x || BF52x || BF60x)
Mike Frysingerf8b55652009-04-13 21:58:34 +0000275 default BF_REV_0_2 if (BF534 || BF536 || BF537 || (BF54x && !BF54xM))
Mike Frysinger2f89c062009-02-04 16:49:45 +0800276 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561)
Roy Huang24a07a12007-07-12 22:41:45 +0800277
278config BF_REV_0_0
279 bool "0.0"
Bob Liub5affb02012-05-16 17:37:24 +0800280 depends on (BF51x || BF52x || (BF54x && !BF54xM) || BF60x)
Michael Hennerich59003142007-10-21 16:54:27 +0800281
282config BF_REV_0_1
Mike Frysingerd07f4382007-11-15 15:49:17 +0800283 bool "0.1"
Sonic Zhang67c0b1b2013-06-07 16:45:12 +0800284 depends on (BF51x || BF52x || (BF54x && !BF54xM) || BF60x)
Bryan Wu1394f032007-05-06 14:50:22 -0700285
286config BF_REV_0_2
287 bool "0.2"
Mike Frysinger8060bb62010-08-16 16:18:12 +0000288 depends on (BF51x || BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
Bryan Wu1394f032007-05-06 14:50:22 -0700289
290config BF_REV_0_3
291 bool "0.3"
Mike Frysinger2f89c062009-02-04 16:49:45 +0800292 depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
Bryan Wu1394f032007-05-06 14:50:22 -0700293
294config BF_REV_0_4
295 bool "0.4"
Sonic Zhangee5124e32012-08-31 11:13:31 +0800296 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539 || BF54x)
Bryan Wu1394f032007-05-06 14:50:22 -0700297
298config BF_REV_0_5
299 bool "0.5"
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800300 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
Bryan Wu1394f032007-05-06 14:50:22 -0700301
Mike Frysinger49f72532008-10-09 12:06:27 +0800302config BF_REV_0_6
303 bool "0.6"
304 depends on (BF533 || BF532 || BF531)
305
Jie Zhangde3025f2007-06-25 18:04:12 +0800306config BF_REV_ANY
307 bool "any"
308
309config BF_REV_NONE
310 bool "none"
311
Bryan Wu1394f032007-05-06 14:50:22 -0700312endchoice
313
Roy Huang24a07a12007-07-12 22:41:45 +0800314config BF53x
315 bool
316 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
317 default y
318
Sonic Zhangffb7fc02013-09-03 16:29:00 +0800319config GPIO_ADI
320 def_bool y
321 depends on (BF51x || BF52x || BF53x || BF538 || BF539 || BF561)
322
Sonic Zhang741ecef2013-09-03 16:29:01 +0800323config PINCTRL
324 def_bool y
325 depends on BF54x || BF60x
326
Bryan Wu1394f032007-05-06 14:50:22 -0700327config MEM_MT48LC64M4A2FB_7E
328 bool
329 depends on (BFIN533_STAMP)
330 default y
331
332config MEM_MT48LC16M16A2TG_75
333 bool
334 depends on (BFIN533_EZKIT || BFIN561_EZKIT \
Harald Krapfenbauer60584342009-09-10 15:12:08 +0000335 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM_E \
336 || BFIN537_BLUETECHNIX_CM_U || H8606_HVSISTEMAS \
337 || BFIN527_BLUETECHNIX_CM)
Bryan Wu1394f032007-05-06 14:50:22 -0700338 default y
339
340config MEM_MT48LC32M8A2_75
341 bool
Mike Frysinger084f9eb2010-05-20 04:26:54 +0000342 depends on (BFIN518F_EZBRD || BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
Bryan Wu1394f032007-05-06 14:50:22 -0700343 default y
344
345config MEM_MT48LC8M32B2B5_7
346 bool
347 depends on (BFIN561_BLUETECHNIX_CM)
348 default y
349
Michael Hennerich59003142007-10-21 16:54:27 +0800350config MEM_MT48LC32M16A2TG_75
351 bool
Michael Hennerich8effc4a2010-06-15 09:51:05 +0000352 depends on (BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN532_IP0X || BLACKSTAMP || BFIN527_AD7160EVAL)
Michael Hennerich59003142007-10-21 16:54:27 +0800353 default y
354
Graf Yangee48efb2009-06-18 04:32:04 +0000355config MEM_MT48H32M16LFCJ_75
356 bool
357 depends on (BFIN526_EZBRD)
358 default y
359
Bob Liuf82f16d2012-07-23 10:47:48 +0800360config MEM_MT47H64M16
361 bool
362 depends on (BFIN609_EZKIT)
363 default y
364
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800365source "arch/blackfin/mach-bf518/Kconfig"
Michael Hennerich59003142007-10-21 16:54:27 +0800366source "arch/blackfin/mach-bf527/Kconfig"
Bryan Wu1394f032007-05-06 14:50:22 -0700367source "arch/blackfin/mach-bf533/Kconfig"
368source "arch/blackfin/mach-bf561/Kconfig"
369source "arch/blackfin/mach-bf537/Kconfig"
Michael Hennerichdc26aec2008-11-18 17:48:22 +0800370source "arch/blackfin/mach-bf538/Kconfig"
Roy Huang24a07a12007-07-12 22:41:45 +0800371source "arch/blackfin/mach-bf548/Kconfig"
Bob Liub5affb02012-05-16 17:37:24 +0800372source "arch/blackfin/mach-bf609/Kconfig"
Bryan Wu1394f032007-05-06 14:50:22 -0700373
374menu "Board customizations"
375
376config CMDLINE_BOOL
377 bool "Default bootloader kernel arguments"
378
379config CMDLINE
380 string "Initial kernel command string"
381 depends on CMDLINE_BOOL
382 default "console=ttyBF0,57600"
383 help
384 If you don't have a boot loader capable of passing a command line string
385 to the kernel, you may specify one here. As a minimum, you should specify
386 the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
387
Mike Frysinger5f004c22008-04-25 02:11:24 +0800388config BOOT_LOAD
389 hex "Kernel load address for booting"
390 default "0x1000"
391 range 0x1000 0x20000000
392 help
393 This option allows you to set the load address of the kernel.
394 This can be useful if you are on a board which has a small amount
395 of memory or you wish to reserve some memory at the beginning of
396 the address space.
397
398 Note that you need to keep this value above 4k (0x1000) as this
399 memory region is used to capture NULL pointer references as well
400 as some core kernel functions.
401
Bob Liub5affb02012-05-16 17:37:24 +0800402config PHY_RAM_BASE_ADDRESS
403 hex "Physical RAM Base"
404 default 0x0
405 help
406 set BF609 FPGA physical SRAM base address
407
Michael Hennerich8cc71172008-10-13 14:45:06 +0800408config ROM_BASE
409 hex "Kernel ROM Base"
Mike Frysinger86249912008-11-18 17:48:22 +0800410 depends on ROMKERNEL
Barry Songd86bfb12010-01-07 04:11:17 +0000411 default "0x20040040"
Bob Liu30036682012-05-30 15:30:27 +0800412 range 0x20000000 0x20400000 if !(BF54x || BF561 || BF60x)
Michael Hennerich8cc71172008-10-13 14:45:06 +0800413 range 0x20000000 0x30000000 if (BF54x || BF561)
Bob Liu30036682012-05-30 15:30:27 +0800414 range 0xB0000000 0xC0000000 if (BF60x)
Michael Hennerich8cc71172008-10-13 14:45:06 +0800415 help
Barry Songd86bfb12010-01-07 04:11:17 +0000416 Make sure your ROM base does not include any file-header
417 information that is prepended to the kernel.
418
419 For example, the bootable U-Boot format (created with
420 mkimage) has a 64 byte header (0x40). So while the image
421 you write to flash might start at say 0x20080000, you have
422 to add 0x40 to get the kernel's ROM base as it will come
423 after the header.
Michael Hennerich8cc71172008-10-13 14:45:06 +0800424
Robin Getzf16295e2007-08-03 18:07:17 +0800425comment "Clock/PLL Setup"
Bryan Wu1394f032007-05-06 14:50:22 -0700426
427config CLKIN_HZ
Sonic Zhang2fb6cb42008-04-25 04:39:28 +0800428 int "Frequency of the crystal on the board in Hz"
Mike Frysinger5d1617b2008-04-24 05:03:26 +0800429 default "10000000" if BFIN532_IP0X
Mike Frysingerd0cb9b42009-06-11 21:52:35 +0000430 default "11059200" if BFIN533_STAMP
431 default "24576000" if PNAV10
432 default "25000000" # most people use this
433 default "27000000" if BFIN533_EZKIT
434 default "30000000" if BFIN561_EZKIT
Michael Hennerich8effc4a2010-06-15 09:51:05 +0000435 default "24000000" if BFIN527_AD7160EVAL
Bryan Wu1394f032007-05-06 14:50:22 -0700436 help
437 The frequency of CLKIN crystal oscillator on the board in Hz.
Sonic Zhang2fb6cb42008-04-25 04:39:28 +0800438 Warning: This value should match the crystal on the board. Otherwise,
439 peripherals won't work properly.
Bryan Wu1394f032007-05-06 14:50:22 -0700440
Robin Getzf16295e2007-08-03 18:07:17 +0800441config BFIN_KERNEL_CLOCK
442 bool "Re-program Clocks while Kernel boots?"
443 default n
444 help
445 This option decides if kernel clocks are re-programed from the
446 bootloader settings. If the clocks are not set, the SDRAM settings
447 are also not changed, and the Bootloader does 100% of the hardware
448 configuration.
449
450config PLL_BYPASS
Mike Frysingere4e9a7a2007-11-15 20:39:34 +0800451 bool "Bypass PLL"
Bob Liu7c141c12012-05-17 17:15:40 +0800452 depends on BFIN_KERNEL_CLOCK && (!BF60x)
Mike Frysingere4e9a7a2007-11-15 20:39:34 +0800453 default n
Robin Getzf16295e2007-08-03 18:07:17 +0800454
455config CLKIN_HALF
456 bool "Half Clock In"
457 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
458 default n
459 help
460 If this is set the clock will be divided by 2, before it goes to the PLL.
461
462config VCO_MULT
463 int "VCO Multiplier"
464 depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
465 range 1 64
466 default "22" if BFIN533_EZKIT
467 default "45" if BFIN533_STAMP
Michael Hennerich6924dfb2009-12-07 13:41:28 +0000468 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
Robin Getzf16295e2007-08-03 18:07:17 +0800469 default "22" if BFIN533_BLUETECHNIX_CM
Harald Krapfenbauer60584342009-09-10 15:12:08 +0000470 default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
Bob Liu7c141c12012-05-17 17:15:40 +0800471 default "20" if (BFIN561_EZKIT || BF609)
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800472 default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
Michael Hennerich8effc4a2010-06-15 09:51:05 +0000473 default "25" if BFIN527_AD7160EVAL
Robin Getzf16295e2007-08-03 18:07:17 +0800474 help
475 This controls the frequency of the on-chip PLL. This can be between 1 and 64.
476 PLL Frequency = (Crystal Frequency) * (this setting)
477
478choice
479 prompt "Core Clock Divider"
480 depends on BFIN_KERNEL_CLOCK
481 default CCLK_DIV_1
482 help
483 This sets the frequency of the core. It can be 1, 2, 4 or 8
484 Core Frequency = (PLL frequency) / (this setting)
485
486config CCLK_DIV_1
487 bool "1"
488
489config CCLK_DIV_2
490 bool "2"
491
492config CCLK_DIV_4
493 bool "4"
494
495config CCLK_DIV_8
496 bool "8"
497endchoice
498
499config SCLK_DIV
500 int "System Clock Divider"
501 depends on BFIN_KERNEL_CLOCK
502 range 1 15
Bob Liu7c141c12012-05-17 17:15:40 +0800503 default 4
Robin Getzf16295e2007-08-03 18:07:17 +0800504 help
Bob Liu7c141c12012-05-17 17:15:40 +0800505 This sets the frequency of the system clock (including SDRAM or DDR) on
506 !BF60x else it set the clock for system buses and provides the
507 source from which SCLK0 and SCLK1 are derived.
Robin Getzf16295e2007-08-03 18:07:17 +0800508 This can be between 1 and 15
509 System Clock = (PLL frequency) / (this setting)
510
Bob Liu7c141c12012-05-17 17:15:40 +0800511config SCLK0_DIV
512 int "System Clock0 Divider"
513 depends on BFIN_KERNEL_CLOCK && BF60x
514 range 1 15
515 default 1
516 help
517 This sets the frequency of the system clock0 for PVP and all other
518 peripherals not clocked by SCLK1.
519 This can be between 1 and 15
520 System Clock0 = (System Clock) / (this setting)
521
522config SCLK1_DIV
523 int "System Clock1 Divider"
524 depends on BFIN_KERNEL_CLOCK && BF60x
525 range 1 15
526 default 1
527 help
528 This sets the frequency of the system clock1 (including SPORT, SPI and ACM).
529 This can be between 1 and 15
530 System Clock1 = (System Clock) / (this setting)
531
532config DCLK_DIV
533 int "DDR Clock Divider"
534 depends on BFIN_KERNEL_CLOCK && BF60x
535 range 1 15
536 default 2
537 help
538 This sets the frequency of the DDR memory.
539 This can be between 1 and 15
540 DDR Clock = (PLL frequency) / (this setting)
541
Mike Frysinger5f004c22008-04-25 02:11:24 +0800542choice
543 prompt "DDR SDRAM Chip Type"
544 depends on BFIN_KERNEL_CLOCK
545 depends on BF54x
546 default MEM_MT46V32M16_5B
547
548config MEM_MT46V32M16_6T
549 bool "MT46V32M16_6T"
550
551config MEM_MT46V32M16_5B
552 bool "MT46V32M16_5B"
553endchoice
554
Michael Hennerich73feb5c2009-01-07 23:14:39 +0800555choice
556 prompt "DDR/SDRAM Timing"
Bob Liu7c141c12012-05-17 17:15:40 +0800557 depends on BFIN_KERNEL_CLOCK && !BF60x
Michael Hennerich73feb5c2009-01-07 23:14:39 +0800558 default BFIN_KERNEL_CLOCK_MEMINIT_CALC
559 help
560 This option allows you to specify Blackfin SDRAM/DDR Timing parameters
561 The calculated SDRAM timing parameters may not be 100%
562 accurate - This option is therefore marked experimental.
563
564config BFIN_KERNEL_CLOCK_MEMINIT_CALC
Kees Cook89a06772013-01-16 18:53:16 -0800565 bool "Calculate Timings"
Michael Hennerich73feb5c2009-01-07 23:14:39 +0800566
567config BFIN_KERNEL_CLOCK_MEMINIT_SPEC
568 bool "Provide accurate Timings based on target SCLK"
569 help
570 Please consult the Blackfin Hardware Reference Manuals as well
571 as the memory device datasheet.
572 http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram
573endchoice
574
575menu "Memory Init Control"
576 depends on BFIN_KERNEL_CLOCK_MEMINIT_SPEC
577
578config MEM_DDRCTL0
579 depends on BF54x
580 hex "DDRCTL0"
581 default 0x0
582
583config MEM_DDRCTL1
584 depends on BF54x
585 hex "DDRCTL1"
586 default 0x0
587
588config MEM_DDRCTL2
589 depends on BF54x
590 hex "DDRCTL2"
591 default 0x0
592
593config MEM_EBIU_DDRQUE
594 depends on BF54x
595 hex "DDRQUE"
596 default 0x0
597
598config MEM_SDRRC
599 depends on !BF54x
600 hex "SDRRC"
601 default 0x0
602
603config MEM_SDGCTL
604 depends on !BF54x
605 hex "SDGCTL"
606 default 0x0
607endmenu
608
Robin Getzf16295e2007-08-03 18:07:17 +0800609#
610# Max & Min Speeds for various Chips
611#
612config MAX_VCO_HZ
613 int
Bryan Wu2f6f4bc2008-11-18 17:48:21 +0800614 default 400000000 if BF512
615 default 400000000 if BF514
616 default 400000000 if BF516
617 default 400000000 if BF518
Mike Frysinger7b062632009-08-11 21:27:09 +0000618 default 400000000 if BF522
619 default 600000000 if BF523
Mike Frysinger1545a112007-12-24 16:54:48 +0800620 default 400000000 if BF524
Robin Getzf16295e2007-08-03 18:07:17 +0800621 default 600000000 if BF525
Mike Frysinger1545a112007-12-24 16:54:48 +0800622 default 400000000 if BF526
Robin Getzf16295e2007-08-03 18:07:17 +0800623 default 600000000 if BF527
624 default 400000000 if BF531
625 default 400000000 if BF532
626 default 750000000 if BF533
627 default 500000000 if BF534
628 default 400000000 if BF536
629 default 600000000 if BF537
Robin Getzf72eecb2007-11-21 16:29:20 +0800630 default 533333333 if BF538
631 default 533333333 if BF539
Robin Getzf16295e2007-08-03 18:07:17 +0800632 default 600000000 if BF542
Robin Getzf72eecb2007-11-21 16:29:20 +0800633 default 533333333 if BF544
Mike Frysinger1545a112007-12-24 16:54:48 +0800634 default 600000000 if BF547
635 default 600000000 if BF548
Robin Getzf72eecb2007-11-21 16:29:20 +0800636 default 533333333 if BF549
Robin Getzf16295e2007-08-03 18:07:17 +0800637 default 600000000 if BF561
Bob Liu7c141c12012-05-17 17:15:40 +0800638 default 800000000 if BF609
Robin Getzf16295e2007-08-03 18:07:17 +0800639
640config MIN_VCO_HZ
641 int
642 default 50000000
643
644config MAX_SCLK_HZ
645 int
Bob Liu7c141c12012-05-17 17:15:40 +0800646 default 200000000 if BF609
Robin Getzf72eecb2007-11-21 16:29:20 +0800647 default 133333333
Robin Getzf16295e2007-08-03 18:07:17 +0800648
649config MIN_SCLK_HZ
650 int
651 default 27000000
652
653comment "Kernel Timer/Scheduler"
654
655source kernel/Kconfig.hz
656
Anna-Maria Gleixnerdfbaec02012-05-18 16:45:45 +0000657config SET_GENERIC_CLOCKEVENTS
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800658 bool "Generic clock events"
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800659 default y
Anna-Maria Gleixnerdfbaec02012-05-18 16:45:45 +0000660 select GENERIC_CLOCKEVENTS
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800661
Yi Li0d152c22009-12-28 10:21:49 +0000662menu "Clock event device"
Graf Yang1fa9be72009-05-15 11:01:59 +0000663 depends on GENERIC_CLOCKEVENTS
Graf Yang1fa9be72009-05-15 11:01:59 +0000664config TICKSOURCE_GPTMR0
Yi Li0d152c22009-12-28 10:21:49 +0000665 bool "GPTimer0"
666 depends on !SMP
Graf Yang1fa9be72009-05-15 11:01:59 +0000667 select BFIN_GPTIMERS
Graf Yang1fa9be72009-05-15 11:01:59 +0000668
669config TICKSOURCE_CORETMR
Yi Li0d152c22009-12-28 10:21:49 +0000670 bool "Core timer"
671 default y
672endmenu
Graf Yang1fa9be72009-05-15 11:01:59 +0000673
Masanari Iidaf54619f2014-09-18 12:09:42 +0900674menu "Clock source"
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800675 depends on GENERIC_CLOCKEVENTS
Yi Li0d152c22009-12-28 10:21:49 +0000676config CYCLES_CLOCKSOURCE
677 bool "CYCLES"
678 default y
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800679 depends on !BFIN_SCRATCH_REG_CYCLES
Graf Yang1fa9be72009-05-15 11:01:59 +0000680 depends on !SMP
Vitja Makarov8b5f79f2008-02-29 12:24:23 +0800681 help
682 If you say Y here, you will enable support for using the 'cycles'
683 registers as a clock source. Doing so means you will be unable to
684 safely write to the 'cycles' register during runtime. You will
685 still be able to read it (such as for performance monitoring), but
686 writing the registers will most likely crash the kernel.
687
Graf Yang1fa9be72009-05-15 11:01:59 +0000688config GPTMR0_CLOCKSOURCE
Yi Li0d152c22009-12-28 10:21:49 +0000689 bool "GPTimer0"
Mike Frysinger3aca47c2009-06-18 19:40:47 +0000690 select BFIN_GPTIMERS
Graf Yang1fa9be72009-05-15 11:01:59 +0000691 depends on !TICKSOURCE_GPTMR0
Yi Li0d152c22009-12-28 10:21:49 +0000692endmenu
Graf Yang1fa9be72009-05-15 11:01:59 +0000693
Mike Frysinger5f004c22008-04-25 02:11:24 +0800694comment "Misc"
Sonic Zhang971d5bc2008-01-27 16:32:31 +0800695
Mike Frysingerf0b5d122007-08-05 17:03:59 +0800696choice
697 prompt "Blackfin Exception Scratch Register"
698 default BFIN_SCRATCH_REG_RETN
699 help
700 Select the resource to reserve for the Exception handler:
701 - RETN: Non-Maskable Interrupt (NMI)
702 - RETE: Exception Return (JTAG/ICE)
703 - CYCLES: Performance counter
704
705 If you are unsure, please select "RETN".
706
707config BFIN_SCRATCH_REG_RETN
708 bool "RETN"
709 help
710 Use the RETN register in the Blackfin exception handler
711 as a stack scratch register. This means you cannot
712 safely use NMI on the Blackfin while running Linux, but
713 you can debug the system with a JTAG ICE and use the
714 CYCLES performance registers.
715
716 If you are unsure, please select "RETN".
717
718config BFIN_SCRATCH_REG_RETE
719 bool "RETE"
720 help
721 Use the RETE register in the Blackfin exception handler
722 as a stack scratch register. This means you cannot
723 safely use a JTAG ICE while debugging a Blackfin board,
724 but you can safely use the CYCLES performance registers
725 and the NMI.
726
727 If you are unsure, please select "RETN".
728
729config BFIN_SCRATCH_REG_CYCLES
730 bool "CYCLES"
731 help
732 Use the CYCLES register in the Blackfin exception handler
733 as a stack scratch register. This means you cannot
734 safely use the CYCLES performance registers on a Blackfin
735 board at anytime, but you can debug the system with a JTAG
736 ICE and use the NMI.
737
738 If you are unsure, please select "RETN".
739
740endchoice
741
Bryan Wu1394f032007-05-06 14:50:22 -0700742endmenu
743
744
745menu "Blackfin Kernel Optimizations"
746
Bryan Wu1394f032007-05-06 14:50:22 -0700747comment "Memory Optimizations"
748
749config I_ENTRY_L1
750 bool "Locate interrupt entry code in L1 Memory"
751 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500752 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700753 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200754 If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
755 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700756
757config EXCPT_IRQ_SYSC_L1
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200758 bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
Bryan Wu1394f032007-05-06 14:50:22 -0700759 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500760 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700761 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200762 If enabled, the entire ASM lowlevel exception and interrupt entry code
Michael Hennerichcfefe3c2008-02-09 04:12:37 +0800763 (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200764 (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700765
766config DO_IRQ_L1
767 bool "Locate frequently called do_irq dispatcher function in L1 Memory"
768 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500769 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700770 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200771 If enabled, the frequently called do_irq dispatcher function is linked
772 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700773
774config CORE_TIMER_IRQ_L1
775 bool "Locate frequently called timer_interrupt() function in L1 Memory"
776 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500777 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700778 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200779 If enabled, the frequently called timer_interrupt() function is linked
780 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700781
782config IDLE_L1
783 bool "Locate frequently idle function in L1 Memory"
784 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500785 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700786 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200787 If enabled, the frequently called idle function is linked
788 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700789
790config SCHEDULE_L1
791 bool "Locate kernel schedule function in L1 Memory"
792 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500793 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700794 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200795 If enabled, the frequently called kernel schedule is linked
796 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700797
798config ARITHMETIC_OPS_L1
799 bool "Locate kernel owned arithmetic functions in L1 Memory"
800 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500801 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700802 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200803 If enabled, arithmetic functions are linked
804 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700805
806config ACCESS_OK_L1
807 bool "Locate access_ok function in L1 Memory"
808 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500809 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700810 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200811 If enabled, the access_ok function is linked
812 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700813
814config MEMSET_L1
815 bool "Locate memset function in L1 Memory"
816 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500817 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700818 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200819 If enabled, the memset function is linked
820 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700821
822config MEMCPY_L1
823 bool "Locate memcpy function in L1 Memory"
824 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500825 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700826 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200827 If enabled, the memcpy function is linked
828 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700829
Robin Getz479ba602010-05-03 17:23:20 +0000830config STRCMP_L1
831 bool "locate strcmp function in L1 Memory"
832 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500833 depends on !SMP
Robin Getz479ba602010-05-03 17:23:20 +0000834 help
835 If enabled, the strcmp function is linked
836 into L1 instruction memory (less latency).
837
838config STRNCMP_L1
839 bool "locate strncmp function in L1 Memory"
840 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500841 depends on !SMP
Robin Getz479ba602010-05-03 17:23:20 +0000842 help
843 If enabled, the strncmp function is linked
844 into L1 instruction memory (less latency).
845
846config STRCPY_L1
847 bool "locate strcpy function in L1 Memory"
848 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500849 depends on !SMP
Robin Getz479ba602010-05-03 17:23:20 +0000850 help
851 If enabled, the strcpy function is linked
852 into L1 instruction memory (less latency).
853
854config STRNCPY_L1
855 bool "locate strncpy function in L1 Memory"
856 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500857 depends on !SMP
Robin Getz479ba602010-05-03 17:23:20 +0000858 help
859 If enabled, the strncpy function is linked
860 into L1 instruction memory (less latency).
861
Bryan Wu1394f032007-05-06 14:50:22 -0700862config SYS_BFIN_SPINLOCK_L1
863 bool "Locate sys_bfin_spinlock function in L1 Memory"
864 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500865 depends on !SMP
Bryan Wu1394f032007-05-06 14:50:22 -0700866 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200867 If enabled, sys_bfin_spinlock function is linked
868 into L1 instruction memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700869
Bryan Wu1394f032007-05-06 14:50:22 -0700870config CACHELINE_ALIGNED_L1
871 bool "Locate cacheline_aligned data to L1 Data Memory"
Michael Hennerich157cc5a2007-07-12 16:20:21 +0800872 default y if !BF54x
873 default n if BF54x
Mike Frysinger95fc2d82012-03-28 11:43:02 +0800874 depends on !SMP && !BF531 && !CRC32
Bryan Wu1394f032007-05-06 14:50:22 -0700875 help
Matt LaPlante692105b2009-01-26 11:12:25 +0100876 If enabled, cacheline_aligned data is linked
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200877 into L1 data memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700878
879config SYSCALL_TAB_L1
880 bool "Locate Syscall Table L1 Data Memory"
881 default n
Mike Frysinger820b1272011-02-02 22:31:42 -0500882 depends on !SMP && !BF531
Bryan Wu1394f032007-05-06 14:50:22 -0700883 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200884 If enabled, the Syscall LUT is linked
885 into L1 data memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700886
887config CPLB_SWITCH_TAB_L1
888 bool "Locate CPLB Switch Tables L1 Data Memory"
889 default n
Mike Frysinger820b1272011-02-02 22:31:42 -0500890 depends on !SMP && !BF531
Bryan Wu1394f032007-05-06 14:50:22 -0700891 help
Matt LaPlante01dd2fb2007-10-20 01:34:40 +0200892 If enabled, the CPLB Switch Tables are linked
893 into L1 data memory. (less latency)
Bryan Wu1394f032007-05-06 14:50:22 -0700894
Mike Frysinger820b1272011-02-02 22:31:42 -0500895config ICACHE_FLUSH_L1
896 bool "Locate icache flush funcs in L1 Inst Memory"
Mike Frysinger74181292010-05-27 22:46:46 +0000897 default y
898 help
Mike Frysinger820b1272011-02-02 22:31:42 -0500899 If enabled, the Blackfin icache flushing functions are linked
Mike Frysinger74181292010-05-27 22:46:46 +0000900 into L1 instruction memory.
901
902 Note that this might be required to address anomalies, but
903 these functions are pretty small, so it shouldn't be too bad.
904 If you are using a processor affected by an anomaly, the build
905 system will double check for you and prevent it.
906
Mike Frysinger820b1272011-02-02 22:31:42 -0500907config DCACHE_FLUSH_L1
908 bool "Locate dcache flush funcs in L1 Inst Memory"
909 default y
910 depends on !SMP
911 help
912 If enabled, the Blackfin dcache flushing functions are linked
913 into L1 instruction memory.
914
Graf Yangca87b7a2008-10-08 17:30:01 +0800915config APP_STACK_L1
916 bool "Support locating application stack in L1 Scratch Memory"
917 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500918 depends on !SMP
Graf Yangca87b7a2008-10-08 17:30:01 +0800919 help
920 If enabled the application stack can be located in L1
921 scratch memory (less latency).
922
923 Currently only works with FLAT binaries.
924
Mike Frysinger6ad2b842008-10-28 11:03:09 +0800925config EXCEPTION_L1_SCRATCH
926 bool "Locate exception stack in L1 Scratch Memory"
927 default n
Mike Frysinger820b1272011-02-02 22:31:42 -0500928 depends on !SMP && !APP_STACK_L1
Mike Frysinger6ad2b842008-10-28 11:03:09 +0800929 help
930 Whenever an exception occurs, use the L1 Scratch memory for
931 stack storage. You cannot place the stacks of FLAT binaries
932 in L1 when using this option.
933
934 If you don't use L1 Scratch, then you should say Y here.
935
Robin Getz251383c2008-08-14 15:12:55 +0800936comment "Speed Optimizations"
937config BFIN_INS_LOWOVERHEAD
938 bool "ins[bwl] low overhead, higher interrupt latency"
939 default y
Mike Frysinger820b1272011-02-02 22:31:42 -0500940 depends on !SMP
Robin Getz251383c2008-08-14 15:12:55 +0800941 help
942 Reads on the Blackfin are speculative. In Blackfin terms, this means
943 they can be interrupted at any time (even after they have been issued
944 on to the external bus), and re-issued after the interrupt occurs.
945 For memory - this is not a big deal, since memory does not change if
946 it sees a read.
947
948 If a FIFO is sitting on the end of the read, it will see two reads,
949 when the core only sees one since the FIFO receives both the read
950 which is cancelled (and not delivered to the core) and the one which
951 is re-issued (which is delivered to the core).
952
953 To solve this, interrupts are turned off before reads occur to
954 I/O space. This option controls which the overhead/latency of
955 controlling interrupts during this time
956 "n" turns interrupts off every read
957 (higher overhead, but lower interrupt latency)
958 "y" turns interrupts off every loop
959 (low overhead, but longer interrupt latency)
960
961 default behavior is to leave this set to on (type "Y"). If you are experiencing
962 interrupt latency issues, it is safe and OK to turn this off.
963
Bryan Wu1394f032007-05-06 14:50:22 -0700964endmenu
965
Bryan Wu1394f032007-05-06 14:50:22 -0700966choice
967 prompt "Kernel executes from"
968 help
969 Choose the memory type that the kernel will be running in.
970
971config RAMKERNEL
972 bool "RAM"
973 help
974 The kernel will be resident in RAM when running.
975
976config ROMKERNEL
977 bool "ROM"
978 help
979 The kernel will be resident in FLASH/ROM when running.
980
981endchoice
982
Mike Frysinger56b4f072010-10-16 19:46:21 -0400983# Common code uses "ROMKERNEL" or "XIP_KERNEL", so define both
984config XIP_KERNEL
985 bool
986 default y
987 depends on ROMKERNEL
988
Bryan Wu1394f032007-05-06 14:50:22 -0700989source "mm/Kconfig"
990
Mike Frysinger780431e2007-10-21 23:37:54 +0800991config BFIN_GPTIMERS
992 tristate "Enable Blackfin General Purpose Timers API"
993 default n
994 help
995 Enable support for the General Purpose Timers API. If you
996 are unsure, say N.
997
998 To compile this driver as a module, choose M here: the module
Pavel Machek4737f092009-06-05 00:44:53 +0200999 will be called gptimers.
Mike Frysinger780431e2007-10-21 23:37:54 +08001000
Bryan Wu1394f032007-05-06 14:50:22 -07001001choice
Mike Frysingerd292b002008-10-28 11:15:36 +08001002 prompt "Uncached DMA region"
Bryan Wu1394f032007-05-06 14:50:22 -07001003 default DMA_UNCACHED_1M
Scott Jiangc8d11a02012-05-18 16:27:22 -04001004config DMA_UNCACHED_32M
1005 bool "Enable 32M DMA region"
1006config DMA_UNCACHED_16M
1007 bool "Enable 16M DMA region"
1008config DMA_UNCACHED_8M
1009 bool "Enable 8M DMA region"
Cliff Cai86ad7932008-05-17 16:36:52 +08001010config DMA_UNCACHED_4M
1011 bool "Enable 4M DMA region"
Bryan Wu1394f032007-05-06 14:50:22 -07001012config DMA_UNCACHED_2M
1013 bool "Enable 2M DMA region"
1014config DMA_UNCACHED_1M
1015 bool "Enable 1M DMA region"
Barry Songc45c0652009-12-02 09:13:36 +00001016config DMA_UNCACHED_512K
1017 bool "Enable 512K DMA region"
1018config DMA_UNCACHED_256K
1019 bool "Enable 256K DMA region"
1020config DMA_UNCACHED_128K
1021 bool "Enable 128K DMA region"
Bryan Wu1394f032007-05-06 14:50:22 -07001022config DMA_UNCACHED_NONE
1023 bool "Disable DMA region"
1024endchoice
1025
1026
1027comment "Cache Support"
Jie Zhang41ba6532009-06-16 09:48:33 +00001028
Robin Getz3bebca22007-10-10 23:55:26 +08001029config BFIN_ICACHE
Bryan Wu1394f032007-05-06 14:50:22 -07001030 bool "Enable ICACHE"
Jie Zhang41ba6532009-06-16 09:48:33 +00001031 default y
Jie Zhang41ba6532009-06-16 09:48:33 +00001032config BFIN_EXTMEM_ICACHEABLE
1033 bool "Enable ICACHE for external memory"
1034 depends on BFIN_ICACHE
1035 default y
1036config BFIN_L2_ICACHEABLE
1037 bool "Enable ICACHE for L2 SRAM"
1038 depends on BFIN_ICACHE
Steven Miaob0ce61d2012-06-01 10:29:42 +08001039 depends on (BF54x || BF561 || BF60x) && !SMP
Jie Zhang41ba6532009-06-16 09:48:33 +00001040 default n
1041
Robin Getz3bebca22007-10-10 23:55:26 +08001042config BFIN_DCACHE
Bryan Wu1394f032007-05-06 14:50:22 -07001043 bool "Enable DCACHE"
Jie Zhang41ba6532009-06-16 09:48:33 +00001044 default y
Robin Getz3bebca22007-10-10 23:55:26 +08001045config BFIN_DCACHE_BANKA
Bryan Wu1394f032007-05-06 14:50:22 -07001046 bool "Enable only 16k BankA DCACHE - BankB is SRAM"
Robin Getz3bebca22007-10-10 23:55:26 +08001047 depends on BFIN_DCACHE && !BF531
Bryan Wu1394f032007-05-06 14:50:22 -07001048 default n
Jie Zhang41ba6532009-06-16 09:48:33 +00001049config BFIN_EXTMEM_DCACHEABLE
1050 bool "Enable DCACHE for external memory"
Robin Getz3bebca22007-10-10 23:55:26 +08001051 depends on BFIN_DCACHE
Jie Zhang41ba6532009-06-16 09:48:33 +00001052 default y
Graf Yang5ba76672009-05-07 04:09:15 +00001053choice
Jie Zhang41ba6532009-06-16 09:48:33 +00001054 prompt "External memory DCACHE policy"
1055 depends on BFIN_EXTMEM_DCACHEABLE
1056 default BFIN_EXTMEM_WRITEBACK if !SMP
1057 default BFIN_EXTMEM_WRITETHROUGH if SMP
1058config BFIN_EXTMEM_WRITEBACK
Graf Yang5ba76672009-05-07 04:09:15 +00001059 bool "Write back"
1060 depends on !SMP
Jie Zhang41ba6532009-06-16 09:48:33 +00001061 help
1062 Write Back Policy:
1063 Cached data will be written back to SDRAM only when needed.
1064 This can give a nice increase in performance, but beware of
1065 broken drivers that do not properly invalidate/flush their
1066 cache.
Graf Yang5ba76672009-05-07 04:09:15 +00001067
Jie Zhang41ba6532009-06-16 09:48:33 +00001068 Write Through Policy:
1069 Cached data will always be written back to SDRAM when the
1070 cache is updated. This is a completely safe setting, but
1071 performance is worse than Write Back.
1072
1073 If you are unsure of the options and you want to be safe,
1074 then go with Write Through.
1075
1076config BFIN_EXTMEM_WRITETHROUGH
Graf Yang5ba76672009-05-07 04:09:15 +00001077 bool "Write through"
Jie Zhang41ba6532009-06-16 09:48:33 +00001078 help
1079 Write Back Policy:
1080 Cached data will be written back to SDRAM only when needed.
1081 This can give a nice increase in performance, but beware of
1082 broken drivers that do not properly invalidate/flush their
1083 cache.
Graf Yang5ba76672009-05-07 04:09:15 +00001084
Jie Zhang41ba6532009-06-16 09:48:33 +00001085 Write Through Policy:
1086 Cached data will always be written back to SDRAM when the
1087 cache is updated. This is a completely safe setting, but
1088 performance is worse than Write Back.
1089
1090 If you are unsure of the options and you want to be safe,
1091 then go with Write Through.
Graf Yang5ba76672009-05-07 04:09:15 +00001092
1093endchoice
Sonic Zhangf099f392008-10-09 14:11:57 +08001094
Jie Zhang41ba6532009-06-16 09:48:33 +00001095config BFIN_L2_DCACHEABLE
1096 bool "Enable DCACHE for L2 SRAM"
1097 depends on BFIN_DCACHE
Bob Liub5affb02012-05-16 17:37:24 +08001098 depends on (BF54x || BF561 || BF60x) && !SMP
Jie Zhang41ba6532009-06-16 09:48:33 +00001099 default n
1100choice
1101 prompt "L2 SRAM DCACHE policy"
1102 depends on BFIN_L2_DCACHEABLE
1103 default BFIN_L2_WRITEBACK
1104config BFIN_L2_WRITEBACK
1105 bool "Write back"
Jie Zhang41ba6532009-06-16 09:48:33 +00001106
1107config BFIN_L2_WRITETHROUGH
1108 bool "Write through"
Jie Zhang41ba6532009-06-16 09:48:33 +00001109endchoice
1110
1111
1112comment "Memory Protection Unit"
Bernd Schmidtb97b8a92008-01-27 18:39:16 +08001113config MPU
Kees Cook89a06772013-01-16 18:53:16 -08001114 bool "Enable the memory protection unit"
Bernd Schmidtb97b8a92008-01-27 18:39:16 +08001115 default n
1116 help
1117 Use the processor's MPU to protect applications from accessing
1118 memory they do not own. This comes at a performance penalty
1119 and is recommended only for debugging.
1120
Matt LaPlante692105b2009-01-26 11:12:25 +01001121comment "Asynchronous Memory Configuration"
Bryan Wu1394f032007-05-06 14:50:22 -07001122
Mike Frysingerddf416b2007-10-10 18:06:47 +08001123menu "EBIU_AMGCTL Global Control"
Bob Liub5affb02012-05-16 17:37:24 +08001124 depends on !BF60x
Bryan Wu1394f032007-05-06 14:50:22 -07001125config C_AMCKEN
1126 bool "Enable CLKOUT"
1127 default y
1128
1129config C_CDPRIO
1130 bool "DMA has priority over core for ext. accesses"
1131 default n
1132
1133config C_B0PEN
1134 depends on BF561
1135 bool "Bank 0 16 bit packing enable"
1136 default y
1137
1138config C_B1PEN
1139 depends on BF561
1140 bool "Bank 1 16 bit packing enable"
1141 default y
1142
1143config C_B2PEN
1144 depends on BF561
1145 bool "Bank 2 16 bit packing enable"
1146 default y
1147
1148config C_B3PEN
1149 depends on BF561
1150 bool "Bank 3 16 bit packing enable"
1151 default n
1152
1153choice
Matt LaPlante692105b2009-01-26 11:12:25 +01001154 prompt "Enable Asynchronous Memory Banks"
Bryan Wu1394f032007-05-06 14:50:22 -07001155 default C_AMBEN_ALL
1156
1157config C_AMBEN
1158 bool "Disable All Banks"
1159
1160config C_AMBEN_B0
1161 bool "Enable Bank 0"
1162
1163config C_AMBEN_B0_B1
1164 bool "Enable Bank 0 & 1"
1165
1166config C_AMBEN_B0_B1_B2
1167 bool "Enable Bank 0 & 1 & 2"
1168
1169config C_AMBEN_ALL
1170 bool "Enable All Banks"
1171endchoice
1172endmenu
1173
1174menu "EBIU_AMBCTL Control"
Bob Liub5affb02012-05-16 17:37:24 +08001175 depends on !BF60x
Bryan Wu1394f032007-05-06 14:50:22 -07001176config BANK_0
Mike Frysingerc8342f82009-03-31 00:18:35 +00001177 hex "Bank 0 (AMBCTL0.L)"
Bryan Wu1394f032007-05-06 14:50:22 -07001178 default 0x7BB0
Mike Frysingerc8342f82009-03-31 00:18:35 +00001179 help
1180 These are the low 16 bits of the EBIU_AMBCTL0 MMR which are
1181 used to control the Asynchronous Memory Bank 0 settings.
Bryan Wu1394f032007-05-06 14:50:22 -07001182
1183config BANK_1
Mike Frysingerc8342f82009-03-31 00:18:35 +00001184 hex "Bank 1 (AMBCTL0.H)"
Bryan Wu1394f032007-05-06 14:50:22 -07001185 default 0x7BB0
Michael Hennerich197fba52008-05-07 17:03:27 +08001186 default 0x5558 if BF54x
Mike Frysingerc8342f82009-03-31 00:18:35 +00001187 help
1188 These are the high 16 bits of the EBIU_AMBCTL0 MMR which are
1189 used to control the Asynchronous Memory Bank 1 settings.
Bryan Wu1394f032007-05-06 14:50:22 -07001190
1191config BANK_2
Mike Frysingerc8342f82009-03-31 00:18:35 +00001192 hex "Bank 2 (AMBCTL1.L)"
Bryan Wu1394f032007-05-06 14:50:22 -07001193 default 0x7BB0
Mike Frysingerc8342f82009-03-31 00:18:35 +00001194 help
1195 These are the low 16 bits of the EBIU_AMBCTL1 MMR which are
1196 used to control the Asynchronous Memory Bank 2 settings.
Bryan Wu1394f032007-05-06 14:50:22 -07001197
1198config BANK_3
Mike Frysingerc8342f82009-03-31 00:18:35 +00001199 hex "Bank 3 (AMBCTL1.H)"
Bryan Wu1394f032007-05-06 14:50:22 -07001200 default 0x99B3
Mike Frysingerc8342f82009-03-31 00:18:35 +00001201 help
1202 These are the high 16 bits of the EBIU_AMBCTL1 MMR which are
1203 used to control the Asynchronous Memory Bank 3 settings.
1204
Bryan Wu1394f032007-05-06 14:50:22 -07001205endmenu
1206
Sonic Zhange40540b2007-11-21 23:49:52 +08001207config EBIU_MBSCTLVAL
1208 hex "EBIU Bank Select Control Register"
1209 depends on BF54x
1210 default 0
1211
1212config EBIU_MODEVAL
1213 hex "Flash Memory Mode Control Register"
1214 depends on BF54x
1215 default 1
1216
1217config EBIU_FCTLVAL
1218 hex "Flash Memory Bank Control Register"
1219 depends on BF54x
1220 default 6
Bryan Wu1394f032007-05-06 14:50:22 -07001221endmenu
1222
1223#############################################################################
1224menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1225
1226config PCI
1227 bool "PCI support"
Adrian Bunka95ca3b2008-08-27 10:55:05 +08001228 depends on BROKEN
Bryan Wu1394f032007-05-06 14:50:22 -07001229 help
1230 Support for PCI bus.
1231
1232source "drivers/pci/Kconfig"
1233
Bryan Wu1394f032007-05-06 14:50:22 -07001234source "drivers/pcmcia/Kconfig"
1235
1236source "drivers/pci/hotplug/Kconfig"
1237
1238endmenu
1239
1240menu "Executable file formats"
1241
1242source "fs/Kconfig.binfmt"
1243
1244endmenu
1245
1246menu "Power management options"
Graf Yangad461632009-08-07 03:52:54 +00001247
Bryan Wu1394f032007-05-06 14:50:22 -07001248source "kernel/power/Kconfig"
1249
Johannes Bergf4cb5702007-12-08 02:14:00 +01001250config ARCH_SUSPEND_POSSIBLE
1251 def_bool y
Johannes Bergf4cb5702007-12-08 02:14:00 +01001252
Bryan Wu1394f032007-05-06 14:50:22 -07001253choice
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001254 prompt "Standby Power Saving Mode"
Steven Miao0fbd88c2012-05-17 17:29:54 +08001255 depends on PM && !BF60x
Michael Hennerichcfefe3c2008-02-09 04:12:37 +08001256 default PM_BFIN_SLEEP_DEEPER
1257config PM_BFIN_SLEEP_DEEPER
1258 bool "Sleep Deeper"
Bryan Wu1394f032007-05-06 14:50:22 -07001259 help
Michael Hennerichcfefe3c2008-02-09 04:12:37 +08001260 Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1261 power dissipation by disabling the clock to the processor core (CCLK).
1262 Furthermore, Standby sets the internal power supply voltage (VDDINT)
1263 to 0.85 V to provide the greatest power savings, while preserving the
1264 processor state.
1265 The PLL and system clock (SCLK) continue to operate at a very low
1266 frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1267 the SDRAM is put into Self Refresh Mode. Typically an external event
1268 such as GPIO interrupt or RTC activity wakes up the processor.
1269 Various Peripherals such as UART, SPORT, PPI may not function as
1270 normal during Sleep Deeper, due to the reduced SCLK frequency.
1271 When in the sleep mode, system DMA access to L1 memory is not supported.
Bryan Wu1394f032007-05-06 14:50:22 -07001272
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001273 If unsure, select "Sleep Deeper".
1274
Michael Hennerichcfefe3c2008-02-09 04:12:37 +08001275config PM_BFIN_SLEEP
1276 bool "Sleep"
1277 help
1278 Sleep Mode (High Power Savings) - The sleep mode reduces power
1279 dissipation by disabling the clock to the processor core (CCLK).
1280 The PLL and system clock (SCLK), however, continue to operate in
1281 this mode. Typically an external event or RTC activity will wake
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001282 up the processor. When in the sleep mode, system DMA access to L1
1283 memory is not supported.
1284
1285 If unsure, select "Sleep Deeper".
Bryan Wu1394f032007-05-06 14:50:22 -07001286endchoice
1287
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001288comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1289 depends on PM
1290
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001291config PM_BFIN_WAKE_PH6
1292 bool "Allow Wake-Up from on-chip PHY or PH6 GP"
Bryan Wu2f6f4bc2008-11-18 17:48:21 +08001293 depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001294 default n
1295 help
1296 Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1297
Michael Hennerich1efc80b2008-07-19 16:57:32 +08001298config PM_BFIN_WAKE_GP
1299 bool "Allow Wake-Up from GPIOs"
1300 depends on PM && BF54x
1301 default n
1302 help
1303 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
Michael Hennerich19986282009-03-05 16:45:55 +08001304 (all processors, except ADSP-BF549). This option sets
1305 the general-purpose wake-up enable (GPWE) control bit to enable
1306 wake-up upon detection of an active low signal on the /GPW (PH7) pin.
Masanari Iida59bf8962012-04-18 00:01:21 +09001307 On ADSP-BF549 this option enables the same functionality on the
Michael Hennerich19986282009-03-05 16:45:55 +08001308 /MRXON pin also PH7.
1309
Steven Miao0fbd88c2012-05-17 17:29:54 +08001310config PM_BFIN_WAKE_PA15
1311 bool "Allow Wake-Up from PA15"
1312 depends on PM && BF60x
1313 default n
1314 help
1315 Enable PA15 Wake-Up
1316
1317config PM_BFIN_WAKE_PA15_POL
1318 int "Wake-up priority"
1319 depends on PM_BFIN_WAKE_PA15
1320 default 0
1321 help
1322 Wake-Up priority 0(low) 1(high)
1323
1324config PM_BFIN_WAKE_PB15
1325 bool "Allow Wake-Up from PB15"
1326 depends on PM && BF60x
1327 default n
1328 help
1329 Enable PB15 Wake-Up
1330
1331config PM_BFIN_WAKE_PB15_POL
1332 int "Wake-up priority"
1333 depends on PM_BFIN_WAKE_PB15
1334 default 0
1335 help
1336 Wake-Up priority 0(low) 1(high)
1337
1338config PM_BFIN_WAKE_PC15
1339 bool "Allow Wake-Up from PC15"
1340 depends on PM && BF60x
1341 default n
1342 help
1343 Enable PC15 Wake-Up
1344
1345config PM_BFIN_WAKE_PC15_POL
1346 int "Wake-up priority"
1347 depends on PM_BFIN_WAKE_PC15
1348 default 0
1349 help
1350 Wake-Up priority 0(low) 1(high)
1351
1352config PM_BFIN_WAKE_PD06
1353 bool "Allow Wake-Up from PD06(ETH0_PHYINT)"
1354 depends on PM && BF60x
1355 default n
1356 help
1357 Enable PD06(ETH0_PHYINT) Wake-up
1358
1359config PM_BFIN_WAKE_PD06_POL
1360 int "Wake-up priority"
1361 depends on PM_BFIN_WAKE_PD06
1362 default 0
1363 help
1364 Wake-Up priority 0(low) 1(high)
1365
1366config PM_BFIN_WAKE_PE12
1367 bool "Allow Wake-Up from PE12(ETH1_PHYINT, PUSH BUTTON)"
1368 depends on PM && BF60x
1369 default n
1370 help
1371 Enable PE12(ETH1_PHYINT, PUSH BUTTON) Wake-up
1372
1373config PM_BFIN_WAKE_PE12_POL
1374 int "Wake-up priority"
1375 depends on PM_BFIN_WAKE_PE12
1376 default 0
1377 help
1378 Wake-Up priority 0(low) 1(high)
1379
1380config PM_BFIN_WAKE_PG04
1381 bool "Allow Wake-Up from PG04(CAN0_RX)"
1382 depends on PM && BF60x
1383 default n
1384 help
1385 Enable PG04(CAN0_RX) Wake-up
1386
1387config PM_BFIN_WAKE_PG04_POL
1388 int "Wake-up priority"
1389 depends on PM_BFIN_WAKE_PG04
1390 default 0
1391 help
1392 Wake-Up priority 0(low) 1(high)
1393
1394config PM_BFIN_WAKE_PG13
1395 bool "Allow Wake-Up from PG13"
1396 depends on PM && BF60x
1397 default n
1398 help
1399 Enable PG13 Wake-Up
1400
1401config PM_BFIN_WAKE_PG13_POL
1402 int "Wake-up priority"
1403 depends on PM_BFIN_WAKE_PG13
1404 default 0
1405 help
1406 Wake-Up priority 0(low) 1(high)
1407
1408config PM_BFIN_WAKE_USB
1409 bool "Allow Wake-Up from (USB)"
1410 depends on PM && BF60x
1411 default n
1412 help
1413 Enable (USB) Wake-up
1414
1415config PM_BFIN_WAKE_USB_POL
1416 int "Wake-up priority"
1417 depends on PM_BFIN_WAKE_USB
1418 default 0
1419 help
1420 Wake-Up priority 0(low) 1(high)
1421
Bryan Wu1394f032007-05-06 14:50:22 -07001422endmenu
1423
Bryan Wu1394f032007-05-06 14:50:22 -07001424menu "CPU Frequency scaling"
1425
1426source "drivers/cpufreq/Kconfig"
1427
Michael Hennerich5ad2ca52008-11-18 17:48:22 +08001428config BFIN_CPU_FREQ
1429 bool
1430 depends on CPU_FREQ
Michael Hennerich5ad2ca52008-11-18 17:48:22 +08001431 default y
1432
Michael Hennerich14b03202008-05-07 11:41:26 +08001433config CPU_VOLTAGE
1434 bool "CPU Voltage scaling"
Michael Hennerich14b03202008-05-07 11:41:26 +08001435 depends on CPU_FREQ
1436 default n
1437 help
1438 Say Y here if you want CPU voltage scaling according to the CPU frequency.
1439 This option violates the PLL BYPASS recommendation in the Blackfin Processor
Michael Hennerich73feb5c2009-01-07 23:14:39 +08001440 manuals. There is a theoretical risk that during VDDINT transitions
Michael Hennerich14b03202008-05-07 11:41:26 +08001441 the PLL may unlock.
1442
Bryan Wu1394f032007-05-06 14:50:22 -07001443endmenu
1444
Bryan Wu1394f032007-05-06 14:50:22 -07001445source "net/Kconfig"
1446
1447source "drivers/Kconfig"
1448
Mike Frysinger872d0242009-10-06 04:49:07 +00001449source "drivers/firmware/Kconfig"
1450
Bryan Wu1394f032007-05-06 14:50:22 -07001451source "fs/Kconfig"
1452
Mike Frysinger74ce8322007-11-21 23:50:49 +08001453source "arch/blackfin/Kconfig.debug"
Bryan Wu1394f032007-05-06 14:50:22 -07001454
1455source "security/Kconfig"
1456
1457source "crypto/Kconfig"
1458
1459source "lib/Kconfig"