Kconfig 28 KB

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