1config MMU 2 def_bool n 3 4config FPU 5 def_bool n 6 7config RWSEM_GENERIC_SPINLOCK 8 def_bool y 9 10config RWSEM_XCHGADD_ALGORITHM 11 def_bool n 12 13config BLACKFIN 14 def_bool y 15 select HAVE_ARCH_KGDB 16 select HAVE_ARCH_TRACEHOOK 17 select HAVE_DYNAMIC_FTRACE 18 select HAVE_FTRACE_MCOUNT_RECORD 19 select HAVE_FUNCTION_GRAPH_TRACER 20 select HAVE_FUNCTION_TRACER 21 select HAVE_IDE 22 select HAVE_KERNEL_GZIP if RAMKERNEL 23 select HAVE_KERNEL_BZIP2 if RAMKERNEL 24 select HAVE_KERNEL_LZMA if RAMKERNEL 25 select HAVE_KERNEL_LZO if RAMKERNEL 26 select HAVE_OPROFILE 27 select HAVE_PERF_EVENTS 28 select ARCH_HAVE_CUSTOM_GPIO_H 29 select ARCH_REQUIRE_GPIOLIB 30 select HAVE_UID16 31 select HAVE_UNDERSCORE_SYMBOL_PREFIX 32 select VIRT_TO_BUS 33 select ARCH_WANT_IPC_PARSE_VERSION 34 select GENERIC_ATOMIC64 35 select GENERIC_IRQ_PROBE 36 select GENERIC_IRQ_SHOW 37 select HAVE_NMI_WATCHDOG if NMI_WATCHDOG 38 select GENERIC_SMP_IDLE_THREAD 39 select ARCH_USES_GETTIMEOFFSET if !GENERIC_CLOCKEVENTS 40 select HAVE_MOD_ARCH_SPECIFIC 41 select MODULES_USE_ELF_RELA 42 select HAVE_DEBUG_STACKOVERFLOW 43 44config GENERIC_CSUM 45 def_bool y 46 47config GENERIC_BUG 48 def_bool y 49 depends on BUG 50 51config ZONE_DMA 52 def_bool y 53 54config FORCE_MAX_ZONEORDER 55 int 56 default "14" 57 58config GENERIC_CALIBRATE_DELAY 59 def_bool y 60 61config LOCKDEP_SUPPORT 62 def_bool y 63 64config STACKTRACE_SUPPORT 65 def_bool y 66 67config TRACE_IRQFLAGS_SUPPORT 68 def_bool y 69 70source "init/Kconfig" 71 72source "kernel/Kconfig.preempt" 73 74source "kernel/Kconfig.freezer" 75 76menu "Blackfin Processor Options" 77 78comment "Processor and Board Settings" 79 80choice 81 prompt "CPU" 82 default BF533 83 84config 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 104config BF522 105 bool "BF522" 106 help 107 BF522 Processor Support. 108 109config BF523 110 bool "BF523" 111 help 112 BF523 Processor Support. 113 114config BF524 115 bool "BF524" 116 help 117 BF524 Processor Support. 118 119config BF525 120 bool "BF525" 121 help 122 BF525 Processor Support. 123 124config BF526 125 bool "BF526" 126 help 127 BF526 Processor Support. 128 129config BF527 130 bool "BF527" 131 help 132 BF527 Processor Support. 133 134config 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 164config BF538 165 bool "BF538" 166 help 167 BF538 Processor Support. 168 169config BF539 170 bool "BF539" 171 help 172 BF539 Processor Support. 173 174config BF542_std 175 bool "BF542" 176 help 177 BF542 Processor Support. 178 179config BF542M 180 bool "BF542m" 181 help 182 BF542 Processor Support. 183 184config BF544_std 185 bool "BF544" 186 help 187 BF544 Processor Support. 188 189config BF544M 190 bool "BF544m" 191 help 192 BF544 Processor Support. 193 194config BF547_std 195 bool "BF547" 196 help 197 BF547 Processor Support. 198 199config BF547M 200 bool "BF547m" 201 help 202 BF547 Processor Support. 203 204config BF548_std 205 bool "BF548" 206 help 207 BF548 Processor Support. 208 209config BF548M 210 bool "BF548m" 211 help 212 BF548 Processor Support. 213 214config BF549_std 215 bool "BF549" 216 help 217 BF549 Processor Support. 218 219config BF549M 220 bool "BF549m" 221 help 222 BF549 Processor Support. 223 224config BF561 225 bool "BF561" 226 help 227 BF561 Processor Support. 228 229config BF609 230 bool "BF609" 231 select CLKDEV_LOOKUP 232 help 233 BF609 Processor Support. 234 235endchoice 236 237config SMP 238 depends on BF561 239 select TICKSOURCE_CORETMR 240 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 253config HOTPLUG_CPU 254 bool "Support for hot-pluggable CPUs" 255 depends on SMP 256 default y 257 258config BF_REV_MIN 259 int 260 default 0 if (BF51x || BF52x || (BF54x && !BF54xM)) || BF60x 261 default 2 if (BF537 || BF536 || BF534) 262 default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM) 263 default 4 if (BF538 || BF539) 264 265config BF_REV_MAX 266 int 267 default 2 if (BF51x || BF52x || (BF54x && !BF54xM)) || BF60x 268 default 3 if (BF537 || BF536 || BF534 || BF54xM) 269 default 5 if (BF561 || BF538 || BF539) 270 default 6 if (BF533 || BF532 || BF531) 271 272choice 273 prompt "Silicon Rev" 274 default BF_REV_0_0 if (BF51x || BF52x || BF60x) 275 default BF_REV_0_2 if (BF534 || BF536 || BF537 || (BF54x && !BF54xM)) 276 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561) 277 278config BF_REV_0_0 279 bool "0.0" 280 depends on (BF51x || BF52x || (BF54x && !BF54xM) || BF60x) 281 282config BF_REV_0_1 283 bool "0.1" 284 depends on (BF51x || BF52x || (BF54x && !BF54xM) || BF60x) 285 286config BF_REV_0_2 287 bool "0.2" 288 depends on (BF51x || BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM)) 289 290config BF_REV_0_3 291 bool "0.3" 292 depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531) 293 294config BF_REV_0_4 295 bool "0.4" 296 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539 || BF54x) 297 298config BF_REV_0_5 299 bool "0.5" 300 depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539) 301 302config BF_REV_0_6 303 bool "0.6" 304 depends on (BF533 || BF532 || BF531) 305 306config BF_REV_ANY 307 bool "any" 308 309config BF_REV_NONE 310 bool "none" 311 312endchoice 313 314config BF53x 315 bool 316 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537) 317 default y 318 319config GPIO_ADI 320 def_bool y 321 depends on (BF51x || BF52x || BF53x || BF538 || BF539 || BF561) 322 323config PINCTRL 324 def_bool y 325 depends on BF54x || BF60x 326 327config 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 \ 335 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM_E \ 336 || BFIN537_BLUETECHNIX_CM_U || H8606_HVSISTEMAS \ 337 || BFIN527_BLUETECHNIX_CM) 338 default y 339 340config MEM_MT48LC32M8A2_75 341 bool 342 depends on (BFIN518F_EZBRD || BFIN537_STAMP || PNAV10 || BFIN538_EZKIT) 343 default y 344 345config MEM_MT48LC8M32B2B5_7 346 bool 347 depends on (BFIN561_BLUETECHNIX_CM) 348 default y 349 350config MEM_MT48LC32M16A2TG_75 351 bool 352 depends on (BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN532_IP0X || BLACKSTAMP || BFIN527_AD7160EVAL) 353 default y 354 355config MEM_MT48H32M16LFCJ_75 356 bool 357 depends on (BFIN526_EZBRD) 358 default y 359 360config MEM_MT47H64M16 361 bool 362 depends on (BFIN609_EZKIT) 363 default y 364 365source "arch/blackfin/mach-bf518/Kconfig" 366source "arch/blackfin/mach-bf527/Kconfig" 367source "arch/blackfin/mach-bf533/Kconfig" 368source "arch/blackfin/mach-bf561/Kconfig" 369source "arch/blackfin/mach-bf537/Kconfig" 370source "arch/blackfin/mach-bf538/Kconfig" 371source "arch/blackfin/mach-bf548/Kconfig" 372source "arch/blackfin/mach-bf609/Kconfig" 373 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 388config 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 402config PHY_RAM_BASE_ADDRESS 403 hex "Physical RAM Base" 404 default 0x0 405 help 406 set BF609 FPGA physical SRAM base address 407 408config ROM_BASE 409 hex "Kernel ROM Base" 410 depends on ROMKERNEL 411 default "0x20040040" 412 range 0x20000000 0x20400000 if !(BF54x || BF561 || BF60x) 413 range 0x20000000 0x30000000 if (BF54x || BF561) 414 range 0xB0000000 0xC0000000 if (BF60x) 415 help 416 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. 424 425comment "Clock/PLL Setup" 426 427config CLKIN_HZ 428 int "Frequency of the crystal on the board in Hz" 429 default "10000000" if BFIN532_IP0X 430 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 435 default "24000000" if BFIN527_AD7160EVAL 436 help 437 The frequency of CLKIN crystal oscillator on the board in Hz. 438 Warning: This value should match the crystal on the board. Otherwise, 439 peripherals won't work properly. 440 441config 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 451 bool "Bypass PLL" 452 depends on BFIN_KERNEL_CLOCK && (!BF60x) 453 default n 454 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 468 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT) 469 default "22" if BFIN533_BLUETECHNIX_CM 470 default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM) 471 default "20" if (BFIN561_EZKIT || BF609) 472 default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD) 473 default "25" if BFIN527_AD7160EVAL 474 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 503 default 4 504 help 505 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. 508 This can be between 1 and 15 509 System Clock = (PLL frequency) / (this setting) 510 511config 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 542choice 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 555choice 556 prompt "DDR/SDRAM Timing" 557 depends on BFIN_KERNEL_CLOCK && !BF60x 558 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 565 bool "Calculate Timings" 566 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 609# 610# Max & Min Speeds for various Chips 611# 612config MAX_VCO_HZ 613 int 614 default 400000000 if BF512 615 default 400000000 if BF514 616 default 400000000 if BF516 617 default 400000000 if BF518 618 default 400000000 if BF522 619 default 600000000 if BF523 620 default 400000000 if BF524 621 default 600000000 if BF525 622 default 400000000 if BF526 623 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 630 default 533333333 if BF538 631 default 533333333 if BF539 632 default 600000000 if BF542 633 default 533333333 if BF544 634 default 600000000 if BF547 635 default 600000000 if BF548 636 default 533333333 if BF549 637 default 600000000 if BF561 638 default 800000000 if BF609 639 640config MIN_VCO_HZ 641 int 642 default 50000000 643 644config MAX_SCLK_HZ 645 int 646 default 200000000 if BF609 647 default 133333333 648 649config MIN_SCLK_HZ 650 int 651 default 27000000 652 653comment "Kernel Timer/Scheduler" 654 655source kernel/Kconfig.hz 656 657config SET_GENERIC_CLOCKEVENTS 658 bool "Generic clock events" 659 default y 660 select GENERIC_CLOCKEVENTS 661 662menu "Clock event device" 663 depends on GENERIC_CLOCKEVENTS 664config TICKSOURCE_GPTMR0 665 bool "GPTimer0" 666 depends on !SMP 667 select BFIN_GPTIMERS 668 669config TICKSOURCE_CORETMR 670 bool "Core timer" 671 default y 672endmenu 673 674menu "Clock source" 675 depends on GENERIC_CLOCKEVENTS 676config CYCLES_CLOCKSOURCE 677 bool "CYCLES" 678 default y 679 depends on !BFIN_SCRATCH_REG_CYCLES 680 depends on !SMP 681 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 688config GPTMR0_CLOCKSOURCE 689 bool "GPTimer0" 690 select BFIN_GPTIMERS 691 depends on !TICKSOURCE_GPTMR0 692endmenu 693 694comment "Misc" 695 696choice 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 742endmenu 743 744 745menu "Blackfin Kernel Optimizations" 746 747comment "Memory Optimizations" 748 749config I_ENTRY_L1 750 bool "Locate interrupt entry code in L1 Memory" 751 default y 752 depends on !SMP 753 help 754 If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked 755 into L1 instruction memory. (less latency) 756 757config EXCPT_IRQ_SYSC_L1 758 bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory" 759 default y 760 depends on !SMP 761 help 762 If enabled, the entire ASM lowlevel exception and interrupt entry code 763 (STORE/RESTORE CONTEXT) is linked into L1 instruction memory. 764 (less latency) 765 766config DO_IRQ_L1 767 bool "Locate frequently called do_irq dispatcher function in L1 Memory" 768 default y 769 depends on !SMP 770 help 771 If enabled, the frequently called do_irq dispatcher function is linked 772 into L1 instruction memory. (less latency) 773 774config CORE_TIMER_IRQ_L1 775 bool "Locate frequently called timer_interrupt() function in L1 Memory" 776 default y 777 depends on !SMP 778 help 779 If enabled, the frequently called timer_interrupt() function is linked 780 into L1 instruction memory. (less latency) 781 782config IDLE_L1 783 bool "Locate frequently idle function in L1 Memory" 784 default y 785 depends on !SMP 786 help 787 If enabled, the frequently called idle function is linked 788 into L1 instruction memory. (less latency) 789 790config SCHEDULE_L1 791 bool "Locate kernel schedule function in L1 Memory" 792 default y 793 depends on !SMP 794 help 795 If enabled, the frequently called kernel schedule is linked 796 into L1 instruction memory. (less latency) 797 798config ARITHMETIC_OPS_L1 799 bool "Locate kernel owned arithmetic functions in L1 Memory" 800 default y 801 depends on !SMP 802 help 803 If enabled, arithmetic functions are linked 804 into L1 instruction memory. (less latency) 805 806config ACCESS_OK_L1 807 bool "Locate access_ok function in L1 Memory" 808 default y 809 depends on !SMP 810 help 811 If enabled, the access_ok function is linked 812 into L1 instruction memory. (less latency) 813 814config MEMSET_L1 815 bool "Locate memset function in L1 Memory" 816 default y 817 depends on !SMP 818 help 819 If enabled, the memset function is linked 820 into L1 instruction memory. (less latency) 821 822config MEMCPY_L1 823 bool "Locate memcpy function in L1 Memory" 824 default y 825 depends on !SMP 826 help 827 If enabled, the memcpy function is linked 828 into L1 instruction memory. (less latency) 829 830config STRCMP_L1 831 bool "locate strcmp function in L1 Memory" 832 default y 833 depends on !SMP 834 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 841 depends on !SMP 842 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 849 depends on !SMP 850 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 857 depends on !SMP 858 help 859 If enabled, the strncpy function is linked 860 into L1 instruction memory (less latency). 861 862config SYS_BFIN_SPINLOCK_L1 863 bool "Locate sys_bfin_spinlock function in L1 Memory" 864 default y 865 depends on !SMP 866 help 867 If enabled, sys_bfin_spinlock function is linked 868 into L1 instruction memory. (less latency) 869 870config CACHELINE_ALIGNED_L1 871 bool "Locate cacheline_aligned data to L1 Data Memory" 872 default y if !BF54x 873 default n if BF54x 874 depends on !SMP && !BF531 && !CRC32 875 help 876 If enabled, cacheline_aligned data is linked 877 into L1 data memory. (less latency) 878 879config SYSCALL_TAB_L1 880 bool "Locate Syscall Table L1 Data Memory" 881 default n 882 depends on !SMP && !BF531 883 help 884 If enabled, the Syscall LUT is linked 885 into L1 data memory. (less latency) 886 887config CPLB_SWITCH_TAB_L1 888 bool "Locate CPLB Switch Tables L1 Data Memory" 889 default n 890 depends on !SMP && !BF531 891 help 892 If enabled, the CPLB Switch Tables are linked 893 into L1 data memory. (less latency) 894 895config ICACHE_FLUSH_L1 896 bool "Locate icache flush funcs in L1 Inst Memory" 897 default y 898 help 899 If enabled, the Blackfin icache flushing functions are linked 900 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 907config 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 915config APP_STACK_L1 916 bool "Support locating application stack in L1 Scratch Memory" 917 default y 918 depends on !SMP 919 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 925config EXCEPTION_L1_SCRATCH 926 bool "Locate exception stack in L1 Scratch Memory" 927 default n 928 depends on !SMP && !APP_STACK_L1 929 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 936comment "Speed Optimizations" 937config BFIN_INS_LOWOVERHEAD 938 bool "ins[bwl] low overhead, higher interrupt latency" 939 default y 940 depends on !SMP 941 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 964endmenu 965 966choice 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 983# Common code uses "ROMKERNEL" or "XIP_KERNEL", so define both 984config XIP_KERNEL 985 bool 986 default y 987 depends on ROMKERNEL 988 989source "mm/Kconfig" 990 991config 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 999 will be called gptimers. 1000 1001choice 1002 prompt "Uncached DMA region" 1003 default DMA_UNCACHED_1M 1004config 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" 1010config DMA_UNCACHED_4M 1011 bool "Enable 4M DMA region" 1012config DMA_UNCACHED_2M 1013 bool "Enable 2M DMA region" 1014config DMA_UNCACHED_1M 1015 bool "Enable 1M DMA region" 1016config 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" 1022config DMA_UNCACHED_NONE 1023 bool "Disable DMA region" 1024endchoice 1025 1026 1027comment "Cache Support" 1028 1029config BFIN_ICACHE 1030 bool "Enable ICACHE" 1031 default y 1032config 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 1039 depends on (BF54x || BF561 || BF60x) && !SMP 1040 default n 1041 1042config BFIN_DCACHE 1043 bool "Enable DCACHE" 1044 default y 1045config BFIN_DCACHE_BANKA 1046 bool "Enable only 16k BankA DCACHE - BankB is SRAM" 1047 depends on BFIN_DCACHE && !BF531 1048 default n 1049config BFIN_EXTMEM_DCACHEABLE 1050 bool "Enable DCACHE for external memory" 1051 depends on BFIN_DCACHE 1052 default y 1053choice 1054 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 1059 bool "Write back" 1060 depends on !SMP 1061 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. 1067 1068 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 1077 bool "Write through" 1078 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. 1084 1085 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. 1092 1093endchoice 1094 1095config BFIN_L2_DCACHEABLE 1096 bool "Enable DCACHE for L2 SRAM" 1097 depends on BFIN_DCACHE 1098 depends on (BF54x || BF561 || BF60x) && !SMP 1099 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" 1106 1107config BFIN_L2_WRITETHROUGH 1108 bool "Write through" 1109endchoice 1110 1111 1112comment "Memory Protection Unit" 1113config MPU 1114 bool "Enable the memory protection unit" 1115 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 1121comment "Asynchronous Memory Configuration" 1122 1123menu "EBIU_AMGCTL Global Control" 1124 depends on !BF60x 1125config 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 1154 prompt "Enable Asynchronous Memory Banks" 1155 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" 1175 depends on !BF60x 1176config BANK_0 1177 hex "Bank 0 (AMBCTL0.L)" 1178 default 0x7BB0 1179 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. 1182 1183config BANK_1 1184 hex "Bank 1 (AMBCTL0.H)" 1185 default 0x7BB0 1186 default 0x5558 if BF54x 1187 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. 1190 1191config BANK_2 1192 hex "Bank 2 (AMBCTL1.L)" 1193 default 0x7BB0 1194 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. 1197 1198config BANK_3 1199 hex "Bank 3 (AMBCTL1.H)" 1200 default 0x99B3 1201 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 1205endmenu 1206 1207config 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 1221endmenu 1222 1223############################################################################# 1224menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" 1225 1226config PCI 1227 bool "PCI support" 1228 depends on BROKEN 1229 help 1230 Support for PCI bus. 1231 1232source "drivers/pci/Kconfig" 1233 1234source "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" 1247 1248source "kernel/power/Kconfig" 1249 1250config ARCH_SUSPEND_POSSIBLE 1251 def_bool y 1252 1253choice 1254 prompt "Standby Power Saving Mode" 1255 depends on PM && !BF60x 1256 default PM_BFIN_SLEEP_DEEPER 1257config PM_BFIN_SLEEP_DEEPER 1258 bool "Sleep Deeper" 1259 help 1260 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. 1272 1273 If unsure, select "Sleep Deeper". 1274 1275config 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 1282 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". 1286endchoice 1287 1288comment "Possible Suspend Mem / Hibernate Wake-Up Sources" 1289 depends on PM 1290 1291config PM_BFIN_WAKE_PH6 1292 bool "Allow Wake-Up from on-chip PHY or PH6 GP" 1293 depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537) 1294 default n 1295 help 1296 Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up) 1297 1298config 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) 1304 (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. 1307 On ADSP-BF549 this option enables the same functionality on the 1308 /MRXON pin also PH7. 1309 1310config 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 1422endmenu 1423 1424menu "CPU Frequency scaling" 1425 1426source "drivers/cpufreq/Kconfig" 1427 1428config BFIN_CPU_FREQ 1429 bool 1430 depends on CPU_FREQ 1431 default y 1432 1433config CPU_VOLTAGE 1434 bool "CPU Voltage scaling" 1435 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 1440 manuals. There is a theoretical risk that during VDDINT transitions 1441 the PLL may unlock. 1442 1443endmenu 1444 1445source "net/Kconfig" 1446 1447source "drivers/Kconfig" 1448 1449source "drivers/firmware/Kconfig" 1450 1451source "fs/Kconfig" 1452 1453source "arch/blackfin/Kconfig.debug" 1454 1455source "security/Kconfig" 1456 1457source "crypto/Kconfig" 1458 1459source "lib/Kconfig" 1460