linux/arch/xtensa/Kconfig
<<
>>
Prefs
   1config ZONE_DMA
   2        def_bool y
   3
   4config XTENSA
   5        def_bool y
   6        select ARCH_WANT_FRAME_POINTERS
   7        select ARCH_WANT_IPC_PARSE_VERSION
   8        select ARCH_WANT_OPTIONAL_GPIOLIB
   9        select BUILDTIME_EXTABLE_SORT
  10        select CLONE_BACKWARDS
  11        select COMMON_CLK
  12        select GENERIC_ATOMIC64
  13        select GENERIC_CLOCKEVENTS
  14        select GENERIC_IRQ_SHOW
  15        select GENERIC_PCI_IOMAP
  16        select GENERIC_SCHED_CLOCK
  17        select HAVE_DMA_API_DEBUG
  18        select HAVE_FUNCTION_TRACER
  19        select HAVE_FUTEX_CMPXCHG if !MMU
  20        select HAVE_HW_BREAKPOINT if PERF_EVENTS
  21        select HAVE_IRQ_TIME_ACCOUNTING
  22        select HAVE_OPROFILE
  23        select HAVE_PERF_EVENTS
  24        select IRQ_DOMAIN
  25        select MODULES_USE_ELF_RELA
  26        select PERF_USE_VMALLOC
  27        select VIRT_TO_BUS
  28        help
  29          Xtensa processors are 32-bit RISC machines designed by Tensilica
  30          primarily for embedded systems.  These processors are both
  31          configurable and extensible.  The Linux port to the Xtensa
  32          architecture supports all processor configurations and extensions,
  33          with reasonable minimum requirements.  The Xtensa Linux project has
  34          a home page at <http://www.linux-xtensa.org/>.
  35
  36config RWSEM_XCHGADD_ALGORITHM
  37        def_bool y
  38
  39config GENERIC_HWEIGHT
  40        def_bool y
  41
  42config ARCH_HAS_ILOG2_U32
  43        def_bool n
  44
  45config ARCH_HAS_ILOG2_U64
  46        def_bool n
  47
  48config NO_IOPORT_MAP
  49        def_bool n
  50
  51config HZ
  52        int
  53        default 100
  54
  55source "init/Kconfig"
  56source "kernel/Kconfig.freezer"
  57
  58config LOCKDEP_SUPPORT
  59        def_bool y
  60
  61config STACKTRACE_SUPPORT
  62        def_bool y
  63
  64config TRACE_IRQFLAGS_SUPPORT
  65        def_bool y
  66
  67config MMU
  68        def_bool n
  69
  70config VARIANT_IRQ_SWITCH
  71        def_bool n
  72
  73config HAVE_XTENSA_GPIO32
  74        def_bool n
  75
  76menu "Processor type and features"
  77
  78choice
  79        prompt "Xtensa Processor Configuration"
  80        default XTENSA_VARIANT_FSF
  81
  82config XTENSA_VARIANT_FSF
  83        bool "fsf - default (not generic) configuration"
  84        select MMU
  85
  86config XTENSA_VARIANT_DC232B
  87        bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
  88        select MMU
  89        select HAVE_XTENSA_GPIO32
  90        help
  91          This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE).
  92
  93config XTENSA_VARIANT_DC233C
  94        bool "dc233c - Diamond 233L Standard Core Rev.C (LE)"
  95        select MMU
  96        select HAVE_XTENSA_GPIO32
  97        help
  98          This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE).
  99
 100config XTENSA_VARIANT_CUSTOM
 101        bool "Custom Xtensa processor configuration"
 102        select HAVE_XTENSA_GPIO32
 103        help
 104          Select this variant to use a custom Xtensa processor configuration.
 105          You will be prompted for a processor variant CORENAME.
 106endchoice
 107
 108config XTENSA_VARIANT_CUSTOM_NAME
 109        string "Xtensa Processor Custom Core Variant Name"
 110        depends on XTENSA_VARIANT_CUSTOM
 111        help
 112          Provide the name of a custom Xtensa processor variant.
 113          This CORENAME selects arch/xtensa/variant/CORENAME.
 114          Dont forget you have to select MMU if you have one.
 115
 116config XTENSA_VARIANT_NAME
 117        string
 118        default "dc232b"                        if XTENSA_VARIANT_DC232B
 119        default "dc233c"                        if XTENSA_VARIANT_DC233C
 120        default "fsf"                           if XTENSA_VARIANT_FSF
 121        default XTENSA_VARIANT_CUSTOM_NAME      if XTENSA_VARIANT_CUSTOM
 122
 123config XTENSA_VARIANT_MMU
 124        bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)"
 125        depends on XTENSA_VARIANT_CUSTOM
 126        default y
 127        select MMU
 128        help
 129          Build a Conventional Kernel with full MMU support,
 130          ie: it supports a TLB with auto-loading, page protection.
 131
 132config XTENSA_VARIANT_HAVE_PERF_EVENTS
 133        bool "Core variant has Performance Monitor Module"
 134        depends on XTENSA_VARIANT_CUSTOM
 135        default n
 136        help
 137          Enable if core variant has Performance Monitor Module with
 138          External Registers Interface.
 139
 140          If unsure, say N.
 141
 142config XTENSA_FAKE_NMI
 143        bool "Treat PMM IRQ as NMI"
 144        depends on XTENSA_VARIANT_HAVE_PERF_EVENTS
 145        default n
 146        help
 147          If PMM IRQ is the only IRQ at EXCM level it is safe to
 148          treat it as NMI, which improves accuracy of profiling.
 149
 150          If there are other interrupts at or above PMM IRQ priority level
 151          but not above the EXCM level, PMM IRQ still may be treated as NMI,
 152          but only if these IRQs are not used. There will be a build warning
 153          saying that this is not safe, and a bugcheck if one of these IRQs
 154          actually fire.
 155
 156          If unsure, say N.
 157
 158config XTENSA_UNALIGNED_USER
 159        bool "Unaligned memory access in use space"
 160        help
 161          The Xtensa architecture currently does not handle unaligned
 162          memory accesses in hardware but through an exception handler.
 163          Per default, unaligned memory accesses are disabled in user space.
 164
 165          Say Y here to enable unaligned memory access in user space.
 166
 167source "kernel/Kconfig.preempt"
 168
 169config HAVE_SMP
 170        bool "System Supports SMP (MX)"
 171        depends on XTENSA_VARIANT_CUSTOM
 172        select XTENSA_MX
 173        help
 174          This option is use to indicate that the system-on-a-chip (SOC)
 175          supports Multiprocessing. Multiprocessor support implemented above
 176          the CPU core definition and currently needs to be selected manually.
 177
 178          Multiprocessor support in implemented with external cache and
 179          interrupt controllers.
 180
 181          The MX interrupt distributer adds Interprocessor Interrupts
 182          and causes the IRQ numbers to be increased by 4 for devices
 183          like the open cores ethernet driver and the serial interface.
 184
 185          You still have to select "Enable SMP" to enable SMP on this SOC.
 186
 187config SMP
 188        bool "Enable Symmetric multi-processing support"
 189        depends on HAVE_SMP
 190        select GENERIC_SMP_IDLE_THREAD
 191        help
 192          Enabled SMP Software; allows more than one CPU/CORE
 193          to be activated during startup.
 194
 195config NR_CPUS
 196        depends on SMP
 197        int "Maximum number of CPUs (2-32)"
 198        range 2 32
 199        default "4"
 200
 201config HOTPLUG_CPU
 202        bool "Enable CPU hotplug support"
 203        depends on SMP
 204        help
 205          Say Y here to allow turning CPUs off and on. CPUs can be
 206          controlled through /sys/devices/system/cpu.
 207
 208          Say N if you want to disable CPU hotplug.
 209
 210config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
 211        bool "Initialize Xtensa MMU inside the Linux kernel code"
 212        default y
 213        help
 214          Earlier version initialized the MMU in the exception vector
 215          before jumping to _startup in head.S and had an advantage that
 216          it was possible to place a software breakpoint at 'reset' and
 217          then enter your normal kernel breakpoints once the MMU was mapped
 218          to the kernel mappings (0XC0000000).
 219
 220          This unfortunately doesn't work for U-Boot and likley also wont
 221          work for using KEXEC to have a hot kernel ready for doing a
 222          KDUMP.
 223
 224          So now the MMU is initialized in head.S but it's necessary to
 225          use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup.
 226          xt-gdb can't place a Software Breakpoint in the  0XD region prior
 227          to mapping the MMU and after mapping even if the area of low memory
 228          was mapped gdb wouldn't remove the breakpoint on hitting it as the
 229          PC wouldn't match. Since Hardware Breakpoints are recommended for
 230          Linux configurations it seems reasonable to just assume they exist
 231          and leave this older mechanism for unfortunate souls that choose
 232          not to follow Tensilica's recommendation.
 233
 234          Selecting this will cause U-Boot to set the KERNEL Load and Entry
 235          address at 0x00003000 instead of the mapped std of 0xD0003000.
 236
 237          If in doubt, say Y.
 238
 239config HIGHMEM
 240        bool "High Memory Support"
 241        depends on MMU
 242        help
 243          Linux can use the full amount of RAM in the system by
 244          default. However, the default MMUv2 setup only maps the
 245          lowermost 128 MB of memory linearly to the areas starting
 246          at 0xd0000000 (cached) and 0xd8000000 (uncached).
 247          When there are more than 128 MB memory in the system not
 248          all of it can be "permanently mapped" by the kernel.
 249          The physical memory that's not permanently mapped is called
 250          "high memory".
 251
 252          If you are compiling a kernel which will never run on a
 253          machine with more than 128 MB total physical RAM, answer
 254          N here.
 255
 256          If unsure, say Y.
 257
 258config FAST_SYSCALL_XTENSA
 259        bool "Enable fast atomic syscalls"
 260        default n
 261        help
 262          fast_syscall_xtensa is a syscall that can make atomic operations
 263          on UP kernel when processor has no s32c1i support.
 264
 265          This syscall is deprecated. It may have issues when called with
 266          invalid arguments. It is provided only for backwards compatibility.
 267          Only enable it if your userspace software requires it.
 268
 269          If unsure, say N.
 270
 271config FAST_SYSCALL_SPILL_REGISTERS
 272        bool "Enable spill registers syscall"
 273        default n
 274        help
 275          fast_syscall_spill_registers is a syscall that spills all active
 276          register windows of a calling userspace task onto its stack.
 277
 278          This syscall is deprecated. It may have issues when called with
 279          invalid arguments. It is provided only for backwards compatibility.
 280          Only enable it if your userspace software requires it.
 281
 282          If unsure, say N.
 283
 284endmenu
 285
 286config XTENSA_CALIBRATE_CCOUNT
 287        def_bool n
 288        help
 289          On some platforms (XT2000, for example), the CPU clock rate can
 290          vary.  The frequency can be determined, however, by measuring
 291          against a well known, fixed frequency, such as an UART oscillator.
 292
 293config SERIAL_CONSOLE
 294        def_bool n
 295
 296menu "Bus options"
 297
 298config PCI
 299        bool "PCI support"
 300        default y
 301        help
 302          Find out whether you have a PCI motherboard. PCI is the name of a
 303          bus system, i.e. the way the CPU talks to the other stuff inside
 304          your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
 305          VESA. If you have PCI, say Y, otherwise N.
 306
 307source "drivers/pci/Kconfig"
 308
 309endmenu
 310
 311menu "Platform options"
 312
 313choice
 314        prompt "Xtensa System Type"
 315        default XTENSA_PLATFORM_ISS
 316
 317config XTENSA_PLATFORM_ISS
 318        bool "ISS"
 319        select XTENSA_CALIBRATE_CCOUNT
 320        select SERIAL_CONSOLE
 321        help
 322          ISS is an acronym for Tensilica's Instruction Set Simulator.
 323
 324config XTENSA_PLATFORM_XT2000
 325        bool "XT2000"
 326        select HAVE_IDE
 327        help
 328          XT2000 is the name of Tensilica's feature-rich emulation platform.
 329          This hardware is capable of running a full Linux distribution.
 330
 331config XTENSA_PLATFORM_XTFPGA
 332        bool "XTFPGA"
 333        select ETHOC if ETHERNET
 334        select PLATFORM_WANT_DEFAULT_MEM
 335        select SERIAL_CONSOLE
 336        select XTENSA_CALIBRATE_CCOUNT
 337        help
 338          XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605).
 339          This hardware is capable of running a full Linux distribution.
 340
 341endchoice
 342
 343
 344config XTENSA_CPU_CLOCK
 345        int "CPU clock rate [MHz]"
 346        depends on !XTENSA_CALIBRATE_CCOUNT
 347        default 16
 348
 349config GENERIC_CALIBRATE_DELAY
 350        bool "Auto calibration of the BogoMIPS value"
 351        help
 352          The BogoMIPS value can easily be derived from the CPU frequency.
 353
 354config CMDLINE_BOOL
 355        bool "Default bootloader kernel arguments"
 356
 357config CMDLINE
 358        string "Initial kernel command string"
 359        depends on CMDLINE_BOOL
 360        default "console=ttyS0,38400 root=/dev/ram"
 361        help
 362          On some architectures (EBSA110 and CATS), there is currently no way
 363          for the boot loader to pass arguments to the kernel. For these
 364          architectures, you should supply some command-line options at build
 365          time by entering them here. As a minimum, you should specify the
 366          memory size and the root device (e.g., mem=64M root=/dev/nfs).
 367
 368config USE_OF
 369        bool "Flattened Device Tree support"
 370        select OF
 371        select OF_EARLY_FLATTREE
 372        help
 373          Include support for flattened device tree machine descriptions.
 374
 375config BUILTIN_DTB
 376        string "DTB to build into the kernel image"
 377        depends on OF
 378
 379config BLK_DEV_SIMDISK
 380        tristate "Host file-based simulated block device support"
 381        default n
 382        depends on XTENSA_PLATFORM_ISS && BLOCK
 383        help
 384          Create block devices that map to files in the host file system.
 385          Device binding to host file may be changed at runtime via proc
 386          interface provided the device is not in use.
 387
 388config BLK_DEV_SIMDISK_COUNT
 389        int "Number of host file-based simulated block devices"
 390        range 1 10
 391        depends on BLK_DEV_SIMDISK
 392        default 2
 393        help
 394          This is the default minimal number of created block devices.
 395          Kernel/module parameter 'simdisk_count' may be used to change this
 396          value at runtime. More file names (but no more than 10) may be
 397          specified as parameters, simdisk_count grows accordingly.
 398
 399config SIMDISK0_FILENAME
 400        string "Host filename for the first simulated device"
 401        depends on BLK_DEV_SIMDISK = y
 402        default ""
 403        help
 404          Attach a first simdisk to a host file. Conventionally, this file
 405          contains a root file system.
 406
 407config SIMDISK1_FILENAME
 408        string "Host filename for the second simulated device"
 409        depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1
 410        default ""
 411        help
 412          Another simulated disk in a host file for a buildroot-independent
 413          storage.
 414
 415source "mm/Kconfig"
 416
 417config FORCE_MAX_ZONEORDER
 418        int "Maximum zone order"
 419        default "11"
 420        help
 421          The kernel memory allocator divides physically contiguous memory
 422          blocks into "zones", where each zone is a power of two number of
 423          pages.  This option selects the largest power of two that the kernel
 424          keeps in the memory allocator.  If you need to allocate very large
 425          blocks of physically contiguous memory, then you may need to
 426          increase this value.
 427
 428          This config option is actually maximum order plus one. For example,
 429          a value of 11 means that the largest free memory block is 2^10 pages.
 430
 431source "drivers/pcmcia/Kconfig"
 432
 433config PLATFORM_WANT_DEFAULT_MEM
 434        def_bool n
 435
 436config DEFAULT_MEM_START
 437        hex "Physical address of the default memory area start"
 438        depends on PLATFORM_WANT_DEFAULT_MEM
 439        default 0x00000000 if MMU
 440        default 0x60000000 if !MMU
 441        help
 442          This is a fallback start address of the default memory area, it is
 443          used when no physical memory size is passed through DTB or through
 444          boot parameter from bootloader.
 445
 446          In noMMU configuration the following parameters are derived from it:
 447          - kernel load address;
 448          - kernel entry point address;
 449          - relocatable vectors base address;
 450          - uBoot load address;
 451          - TASK_SIZE.
 452
 453          If unsure, leave the default value here.
 454
 455config DEFAULT_MEM_SIZE
 456        hex "Maximal size of the default memory area"
 457        depends on PLATFORM_WANT_DEFAULT_MEM
 458        default 0x04000000
 459        help
 460          This is a fallback size of the default memory area, it is used when
 461          no physical memory size is passed through DTB or through boot
 462          parameter from bootloader.
 463
 464          It's also used for TASK_SIZE calculation in noMMU configuration.
 465
 466          If unsure, leave the default value here.
 467
 468config XTFPGA_LCD
 469        bool "Enable XTFPGA LCD driver"
 470        depends on XTENSA_PLATFORM_XTFPGA
 471        default n
 472        help
 473          There's a 2x16 LCD on most of XTFPGA boards, kernel may output
 474          progress messages there during bootup/shutdown. It may be useful
 475          during board bringup.
 476
 477          If unsure, say N.
 478
 479config XTFPGA_LCD_BASE_ADDR
 480        hex "XTFPGA LCD base address"
 481        depends on XTFPGA_LCD
 482        default "0x0d0c0000"
 483        help
 484          Base address of the LCD controller inside KIO region.
 485          Different boards from XTFPGA family have LCD controller at different
 486          addresses. Please consult prototyping user guide for your board for
 487          the correct address. Wrong address here may lead to hardware lockup.
 488
 489config XTFPGA_LCD_8BIT_ACCESS
 490        bool "Use 8-bit access to XTFPGA LCD"
 491        depends on XTFPGA_LCD
 492        default n
 493        help
 494          LCD may be connected with 4- or 8-bit interface, 8-bit access may
 495          only be used with 8-bit interface. Please consult prototyping user
 496          guide for your board for the correct interface width.
 497
 498endmenu
 499
 500menu "Executable file formats"
 501
 502source "fs/Kconfig.binfmt"
 503
 504endmenu
 505
 506menu "Power management options"
 507
 508source "kernel/power/Kconfig"
 509
 510endmenu
 511
 512source "net/Kconfig"
 513
 514source "drivers/Kconfig"
 515
 516source "fs/Kconfig"
 517
 518source "arch/xtensa/Kconfig.debug"
 519
 520source "security/Kconfig"
 521
 522source "crypto/Kconfig"
 523
 524source "lib/Kconfig"
 525
 526
 527