438 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			438 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # For a description of the syntax of this configuration file,
 | |
| # see Documentation/kbuild/kconfig-language.txt.
 | |
| 
 | |
| config TILE
 | |
| 	def_bool y
 | |
| 	select HAVE_DMA_ATTRS
 | |
| 	select HAVE_DMA_API_DEBUG
 | |
| 	select HAVE_KVM if !TILEGX
 | |
| 	select GENERIC_FIND_FIRST_BIT
 | |
| 	select SYSCTL_EXCEPTION_TRACE
 | |
| 	select USE_GENERIC_SMP_HELPERS
 | |
| 	select CC_OPTIMIZE_FOR_SIZE
 | |
| 	select HAVE_DEBUG_KMEMLEAK
 | |
| 	select HAVE_GENERIC_HARDIRQS
 | |
| 	select GENERIC_IRQ_PROBE
 | |
| 	select GENERIC_PENDING_IRQ if SMP
 | |
| 	select GENERIC_IRQ_SHOW
 | |
| 	select HAVE_DEBUG_BUGVERBOSE
 | |
| 	select VIRT_TO_BUS
 | |
| 	select SYS_HYPERVISOR
 | |
| 	select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
 | |
| 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 | |
| 	select GENERIC_CLOCKEVENTS
 | |
| 	select MODULES_USE_ELF_RELA
 | |
| 	select HAVE_ARCH_TRACEHOOK
 | |
| 	select HAVE_SYSCALL_TRACEPOINTS
 | |
| 	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
 | |
| 
 | |
| # FIXME: investigate whether we need/want these options.
 | |
| #	select HAVE_IOREMAP_PROT
 | |
| #	select HAVE_OPTPROBES
 | |
| #	select HAVE_REGS_AND_STACK_ACCESS_API
 | |
| #	select HAVE_HW_BREAKPOINT
 | |
| #	select PERF_EVENTS
 | |
| #	select HAVE_USER_RETURN_NOTIFIER
 | |
| #	config NO_BOOTMEM
 | |
| #	config ARCH_SUPPORTS_DEBUG_PAGEALLOC
 | |
| #	config HUGETLB_PAGE_SIZE_VARIABLE
 | |
| 
 | |
| 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
 | |
| 
 | |
| # 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
 | |
| 
 | |
| config STRICT_DEVMEM
 | |
| 	def_bool y
 | |
| 
 | |
| # SMP is required for Tilera Linux.
 | |
| config SMP
 | |
| 	def_bool y
 | |
| 
 | |
| config HVC_TILE
 | |
| 	depends on TTY
 | |
| 	select HVC_DRIVER
 | |
| 	def_bool y
 | |
| 
 | |
| config TILEGX
 | |
| 	bool "Building with TILE-Gx (64-bit) compiler and toolchain"
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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.
 | |
| 
 | |
| if TILEGX
 | |
| 
 | |
| 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 this option is TILE-Gx specific; currently
 | |
| 	  TILEPro page size is set by rebuilding the hypervisor.
 | |
| 
 | |
| config PAGE_SIZE_16KB
 | |
| 	bool "16KB"
 | |
| 
 | |
| config PAGE_SIZE_64KB
 | |
| 	bool "64KB"
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| endif
 | |
| 
 | |
| source "kernel/Kconfig.hz"
 | |
| 
 | |
| config KEXEC
 | |
| 	bool "kexec system call"
 | |
| 	---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 SYSVIPC_COMPAT
 | |
| 	def_bool y
 | |
| 	depends on COMPAT && SYSVIPC
 | |
| 
 | |
| # We do not currently support disabling HIGHMEM on tile64 and 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"
 | |
| 
 | |
| 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 0x1000000
 | |
| 
 | |
| 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 ARCH_SUPPORTS_MSI 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
 | |
| 	def_bool !PCI
 | |
| 
 | |
| 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.
 | |
| 
 | |
| source "drivers/pci/hotplug/Kconfig"
 | |
| 
 | |
| 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"
 |