linux/arch/blackfin/Kconfig
<<
>>
Prefs
   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