123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480 |
- # For a description of the syntax of this configuration file,
- # see Documentation/kbuild/kconfig-language.txt.
- config TILE
- def_bool y
- select ARCH_HAS_DEVMEM_IS_ALLOWED
- select ARCH_HAVE_NMI_SAFE_CMPXCHG
- select ARCH_WANT_FRAME_POINTERS
- select CC_OPTIMIZE_FOR_SIZE
- select EDAC_SUPPORT
- select GENERIC_CLOCKEVENTS
- select GENERIC_FIND_FIRST_BIT
- select GENERIC_IRQ_PROBE
- select GENERIC_IRQ_SHOW
- select GENERIC_PENDING_IRQ if SMP
- select GENERIC_STRNCPY_FROM_USER
- select GENERIC_STRNLEN_USER
- select HAVE_ARCH_SECCOMP_FILTER
- select HAVE_ARCH_TRACEHOOK
- select HAVE_CONTEXT_TRACKING
- select HAVE_DEBUG_BUGVERBOSE
- select HAVE_DEBUG_KMEMLEAK
- select HAVE_DEBUG_STACKOVERFLOW
- select HAVE_DMA_API_DEBUG
- select HAVE_EXIT_THREAD
- select HAVE_KVM if !TILEGX
- select HAVE_NMI if USE_PMC
- select HAVE_PERF_EVENTS
- select HAVE_SYSCALL_TRACEPOINTS
- select MODULES_USE_ELF_RELA
- select SYSCTL_EXCEPTION_TRACE
- select SYS_HYPERVISOR
- select USER_STACKTRACE_SUPPORT
- select USE_PMC if PERF_EVENTS
- select VIRT_TO_BUS
- config MMU
- def_bool y
- config GENERIC_CSUM
- def_bool y
- config HAVE_ARCH_ALLOC_REMAP
- def_bool y
- config HAVE_SETUP_PER_CPU_AREA
- def_bool y
- config NEED_PER_CPU_PAGE_FIRST_CHUNK
- def_bool y
- config SYS_SUPPORTS_HUGETLBFS
- def_bool y
- # Support for additional huge page sizes besides HPAGE_SIZE.
- # The software support is currently only present in the TILE-Gx
- # hypervisor. TILEPro in any case does not support page sizes
- # larger than the default HPAGE_SIZE.
- config HUGETLB_SUPER_PAGES
- depends on HUGETLB_PAGE && TILEGX
- def_bool y
- config GENERIC_TIME_VSYSCALL
- def_bool y
- # Enable PMC if PERF_EVENTS, OPROFILE, or WATCHPOINTS are enabled.
- config USE_PMC
- bool
- # FIXME: tilegx can implement a more efficient rwsem.
- config RWSEM_GENERIC_SPINLOCK
- def_bool y
- # We only support gcc 4.4 and above, so this should work.
- config ARCH_SUPPORTS_OPTIMIZED_INLINING
- def_bool y
- config ARCH_PHYS_ADDR_T_64BIT
- def_bool y
- config ARCH_DMA_ADDR_T_64BIT
- def_bool y
- config NEED_DMA_MAP_STATE
- def_bool y
- config ARCH_HAS_DMA_SET_COHERENT_MASK
- bool
- config LOCKDEP_SUPPORT
- def_bool y
- config STACKTRACE_SUPPORT
- def_bool y
- select STACKTRACE
- # We use discontigmem for now; at some point we may want to switch
- # to sparsemem (Tilera bug 7996).
- config ARCH_DISCONTIGMEM_ENABLE
- def_bool y
- config ARCH_DISCONTIGMEM_DEFAULT
- def_bool y
- config TRACE_IRQFLAGS_SUPPORT
- def_bool y
- # SMP is required for Tilera Linux.
- config SMP
- def_bool y
- config HVC_TILE
- depends on TTY
- select HVC_DRIVER
- select HVC_IRQ if TILEGX
- def_bool y
- # Building with ARCH=tilegx (or ARCH=tile) implies using the
- # 64-bit TILE-Gx toolchain, so force CONFIG_TILEGX on.
- config TILEGX
- def_bool ARCH != "tilepro"
- select ARCH_SUPPORTS_ATOMIC_RMW
- select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
- select HAVE_ARCH_JUMP_LABEL
- select HAVE_ARCH_KGDB
- select HAVE_DYNAMIC_FTRACE
- select HAVE_FTRACE_MCOUNT_RECORD
- select HAVE_FUNCTION_GRAPH_TRACER
- select HAVE_FUNCTION_TRACER
- select HAVE_KPROBES
- select HAVE_KRETPROBES
- select SPARSE_IRQ
- config TILEPRO
- def_bool !TILEGX
- config 64BIT
- def_bool TILEGX
- config ARCH_DEFCONFIG
- string
- default "arch/tile/configs/tilepro_defconfig" if !TILEGX
- default "arch/tile/configs/tilegx_defconfig" if TILEGX
- config PGTABLE_LEVELS
- int
- default 3 if 64BIT
- default 2
- source "init/Kconfig"
- source "kernel/Kconfig.freezer"
- menu "Tilera-specific configuration"
- config NR_CPUS
- int "Maximum number of tiles (2-255)"
- range 2 255
- depends on SMP
- default "64"
- ---help---
- Building with 64 is the recommended value, but a slightly
- smaller kernel memory footprint results from using a smaller
- value on chips with fewer tiles.
- choice
- prompt "Kernel page size"
- default PAGE_SIZE_64KB
- help
- This lets you select the page size of the kernel. For best
- performance on memory-intensive applications, a page size of 64KB
- is recommended. For workloads involving many small files, many
- connections, etc., it may be better to select 16KB, which uses
- memory more efficiently at some cost in TLB performance.
- Note that for TILEPro, you must also rebuild the hypervisor
- with a matching page size.
- config PAGE_SIZE_4KB
- bool "4KB" if TILEPRO
- config PAGE_SIZE_16KB
- bool "16KB"
- config PAGE_SIZE_64KB
- bool "64KB"
- endchoice
- source "kernel/Kconfig.hz"
- config KEXEC
- bool "kexec system call"
- select KEXEC_CORE
- ---help---
- kexec is a system call that implements the ability to shutdown your
- current kernel, and to start another kernel. It is like a reboot
- but it is independent of the system firmware. It is used
- to implement the "mboot" Tilera booter.
- The name comes from the similarity to the exec system call.
- config COMPAT
- bool "Support 32-bit TILE-Gx binaries in addition to 64-bit"
- depends on TILEGX
- select COMPAT_BINFMT_ELF
- default y
- ---help---
- If enabled, the kernel will support running TILE-Gx binaries
- that were built with the -m32 option.
- config SECCOMP
- bool "Enable seccomp to safely compute untrusted bytecode"
- depends on PROC_FS
- help
- This kernel feature is useful for number crunching applications
- that may need to compute untrusted bytecode during their
- execution. By using pipes or other transports made available to
- the process as file descriptors supporting the read/write
- syscalls, it's possible to isolate those applications in
- their own address space using seccomp. Once seccomp is
- enabled via prctl, it cannot be disabled and the task is only
- allowed to execute a few safe syscalls defined by each seccomp
- mode.
- If unsure, say N.
- config SYSVIPC_COMPAT
- def_bool y
- depends on COMPAT && SYSVIPC
- # We do not currently support disabling HIGHMEM on tilepro.
- config HIGHMEM
- bool # "Support for more than 512 MB of RAM"
- default !TILEGX
- ---help---
- Linux can use the full amount of RAM in the system by
- default. However, the address space of TILE processors is
- only 4 Gigabytes large. That means that, if you have a large
- amount of physical memory, not all of it can be "permanently
- mapped" by the kernel. The physical memory that's not
- permanently mapped is called "high memory".
- If you are compiling a kernel which will never run on a
- machine with more than 512 MB total physical RAM, answer
- "false" here. This will result in the kernel mapping all of
- physical memory into the top 1 GB of virtual memory space.
- If unsure, say "true".
- config ZONE_DMA
- def_bool y
- config IOMMU_HELPER
- bool
- config NEED_SG_DMA_LENGTH
- bool
- config SWIOTLB
- bool
- default TILEGX
- select IOMMU_HELPER
- select NEED_SG_DMA_LENGTH
- select ARCH_HAS_DMA_SET_COHERENT_MASK
- # We do not currently support disabling NUMA.
- config NUMA
- bool # "NUMA Memory Allocation and Scheduler Support"
- depends on SMP && DISCONTIGMEM
- default y
- ---help---
- NUMA memory allocation is required for TILE processors
- unless booting with memory striping enabled in the
- hypervisor, or with only a single memory controller.
- It is recommended that this option always be enabled.
- config NODES_SHIFT
- int "Log base 2 of the max number of memory controllers"
- default 2
- depends on NEED_MULTIPLE_NODES
- ---help---
- By default, 2, i.e. 2^2 == 4 DDR2 controllers.
- In a system with more controllers, this value should be raised.
- choice
- depends on !TILEGX
- prompt "Memory split" if EXPERT
- default VMSPLIT_3G
- ---help---
- Select the desired split between kernel and user memory.
- If the address range available to the kernel is less than the
- physical memory installed, the remaining memory will be available
- as "high memory". Accessing high memory is a little more costly
- than low memory, as it needs to be mapped into the kernel first.
- Note that increasing the kernel address space limits the range
- available to user programs, making the address space there
- tighter. Selecting anything other than the default 3G/1G split
- will also likely make your kernel incompatible with binary-only
- kernel modules.
- If you are not absolutely sure what you are doing, leave this
- option alone!
- config VMSPLIT_3_75G
- bool "3.75G/0.25G user/kernel split (no kernel networking)"
- config VMSPLIT_3_5G
- bool "3.5G/0.5G user/kernel split"
- config VMSPLIT_3G
- bool "3G/1G user/kernel split"
- config VMSPLIT_2_75G
- bool "2.75G/1.25G user/kernel split (for full 1G low memory)"
- config VMSPLIT_2_5G
- bool "2.5G/1.5G user/kernel split"
- config VMSPLIT_2_25G
- bool "2.25G/1.75G user/kernel split"
- config VMSPLIT_2G
- bool "2G/2G user/kernel split"
- config VMSPLIT_1G
- bool "1G/3G user/kernel split"
- endchoice
- config PAGE_OFFSET
- hex
- depends on !64BIT
- default 0xF0000000 if VMSPLIT_3_75G
- default 0xE0000000 if VMSPLIT_3_5G
- default 0xB0000000 if VMSPLIT_2_75G
- default 0xA0000000 if VMSPLIT_2_5G
- default 0x90000000 if VMSPLIT_2_25G
- default 0x80000000 if VMSPLIT_2G
- default 0x40000000 if VMSPLIT_1G
- default 0xC0000000
- source "mm/Kconfig"
- source "kernel/Kconfig.preempt"
- config CMDLINE_BOOL
- bool "Built-in kernel command line"
- default n
- ---help---
- Allow for specifying boot arguments to the kernel at
- build time. On some systems (e.g. embedded ones), it is
- necessary or convenient to provide some or all of the
- kernel boot arguments with the kernel itself (that is,
- to not rely on the boot loader to provide them.)
- To compile command line arguments into the kernel,
- set this option to 'Y', then fill in the
- the boot arguments in CONFIG_CMDLINE.
- Systems with fully functional boot loaders (e.g. mboot, or
- if booting over PCI) should leave this option set to 'N'.
- config CMDLINE
- string "Built-in kernel command string"
- depends on CMDLINE_BOOL
- default ""
- ---help---
- Enter arguments here that should be compiled into the kernel
- image and used at boot time. If the boot loader provides a
- command line at boot time, it is appended to this string to
- form the full kernel command line, when the system boots.
- However, you can use the CONFIG_CMDLINE_OVERRIDE option to
- change this behavior.
- In most cases, the command line (whether built-in or provided
- by the boot loader) should specify the device for the root
- file system.
- config CMDLINE_OVERRIDE
- bool "Built-in command line overrides boot loader arguments"
- default n
- depends on CMDLINE_BOOL
- ---help---
- Set this option to 'Y' to have the kernel ignore the boot loader
- command line, and use ONLY the built-in command line.
- This is used to work around broken boot loaders. This should
- be set to 'N' under normal conditions.
- config VMALLOC_RESERVE
- hex
- default 0x2000000
- config HARDWALL
- bool "Hardwall support to allow access to user dynamic network"
- default y
- config KERNEL_PL
- int "Processor protection level for kernel"
- range 1 2
- default 2 if TILEGX
- default 1 if !TILEGX
- ---help---
- Since MDE 4.2, the Tilera hypervisor runs the kernel
- at PL2 by default. If running under an older hypervisor,
- or as a KVM guest, you must run at PL1. (The current
- hypervisor may also be recompiled with "make HV_PL=2" to
- allow it to run a kernel at PL1, but clients running at PL1
- are not expected to be supported indefinitely.)
- If you're not sure, don't change the default.
- source "arch/tile/gxio/Kconfig"
- endmenu # Tilera-specific configuration
- menu "Bus options"
- config PCI
- bool "PCI support"
- default y
- select PCI_DOMAINS
- select GENERIC_PCI_IOMAP
- select TILE_GXIO_TRIO if TILEGX
- select PCI_MSI if TILEGX
- ---help---
- Enable PCI root complex support, so PCIe endpoint devices can
- be attached to the Tile chip. Many, but not all, PCI devices
- are supported under Tilera's root complex driver.
- config PCI_DOMAINS
- bool
- config NO_IOMEM
- def_bool !PCI
- config NO_IOPORT_MAP
- def_bool !PCI
- config TILE_PCI_IO
- bool "PCI I/O space support"
- default n
- depends on PCI
- depends on TILEGX
- ---help---
- Enable PCI I/O space support on TILEGx. Since the PCI I/O space
- is used by few modern PCIe endpoint devices, its support is disabled
- by default to save the TRIO PIO Region resource for other purposes.
- source "drivers/pci/Kconfig"
- config TILE_USB
- tristate "Tilera USB host adapter support"
- default y
- depends on USB
- depends on TILEGX
- select TILE_GXIO_USB_HOST
- ---help---
- Provides USB host adapter support for the built-in EHCI and OHCI
- interfaces on TILE-Gx chips.
- endmenu
- menu "Executable file formats"
- source "fs/Kconfig.binfmt"
- endmenu
- source "net/Kconfig"
- source "drivers/Kconfig"
- source "fs/Kconfig"
- source "arch/tile/Kconfig.debug"
- source "security/Kconfig"
- source "crypto/Kconfig"
- source "lib/Kconfig"
- source "arch/tile/kvm/Kconfig"
|