449 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			449 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #
 | |
| # Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
 | |
| #
 | |
| # This program is free software; you can redistribute it and/or modify
 | |
| # it under the terms of the GNU General Public License version 2 as
 | |
| # published by the Free Software Foundation.
 | |
| #
 | |
| 
 | |
| config ARC
 | |
| 	def_bool y
 | |
| 	select CLONE_BACKWARDS
 | |
| 	# ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
 | |
| 	select DEVTMPFS if !INITRAMFS_SOURCE=""
 | |
| 	select GENERIC_ATOMIC64
 | |
| 	select GENERIC_CLOCKEVENTS
 | |
| 	select GENERIC_FIND_FIRST_BIT
 | |
| 	# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
 | |
| 	select GENERIC_IRQ_SHOW
 | |
| 	select GENERIC_PENDING_IRQ if SMP
 | |
| 	select GENERIC_SMP_IDLE_THREAD
 | |
| 	select HAVE_ARCH_KGDB
 | |
| 	select HAVE_ARCH_TRACEHOOK
 | |
| 	select HAVE_GENERIC_HARDIRQS
 | |
| 	select HAVE_IOREMAP_PROT
 | |
| 	select HAVE_KPROBES
 | |
| 	select HAVE_KRETPROBES
 | |
| 	select HAVE_MEMBLOCK
 | |
| 	select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND
 | |
| 	select HAVE_OPROFILE
 | |
| 	select HAVE_PERF_EVENTS
 | |
| 	select IRQ_DOMAIN
 | |
| 	select MODULES_USE_ELF_RELA
 | |
| 	select NO_BOOTMEM
 | |
| 	select OF
 | |
| 	select OF_EARLY_FLATTREE
 | |
| 	select PERF_USE_VMALLOC
 | |
| 
 | |
| config SCHED_OMIT_FRAME_POINTER
 | |
| 	def_bool y
 | |
| 
 | |
| config GENERIC_CSUM
 | |
| 	def_bool y
 | |
| 
 | |
| config RWSEM_GENERIC_SPINLOCK
 | |
| 	def_bool y
 | |
| 
 | |
| config ARCH_FLATMEM_ENABLE
 | |
| 	def_bool y
 | |
| 
 | |
| config MMU
 | |
| 	def_bool y
 | |
| 
 | |
| config NO_IOPORT
 | |
| 	def_bool y
 | |
| 
 | |
| config GENERIC_CALIBRATE_DELAY
 | |
| 	def_bool y
 | |
| 
 | |
| config GENERIC_HWEIGHT
 | |
| 	def_bool y
 | |
| 
 | |
| config STACKTRACE_SUPPORT
 | |
| 	def_bool y
 | |
| 	select STACKTRACE
 | |
| 
 | |
| config HAVE_LATENCYTOP_SUPPORT
 | |
| 	def_bool y
 | |
| 
 | |
| config NO_DMA
 | |
| 	def_bool n
 | |
| 
 | |
| source "init/Kconfig"
 | |
| source "kernel/Kconfig.freezer"
 | |
| 
 | |
| menu "ARC Architecture Configuration"
 | |
| 
 | |
| menu "ARC Platform/SoC/Board"
 | |
| 
 | |
| source "arch/arc/plat-arcfpga/Kconfig"
 | |
| source "arch/arc/plat-tb10x/Kconfig"
 | |
| #New platform adds here
 | |
| 
 | |
| endmenu
 | |
| 
 | |
| menu "ARC CPU Configuration"
 | |
| 
 | |
| choice
 | |
| 	prompt "ARC Core"
 | |
| 	default ARC_CPU_770
 | |
| 
 | |
| config ARC_CPU_750D
 | |
| 	bool "ARC750D"
 | |
| 	help
 | |
| 	  Support for ARC750 core
 | |
| 
 | |
| config ARC_CPU_770
 | |
| 	bool "ARC770"
 | |
| 	select ARC_CPU_REL_4_10
 | |
| 	help
 | |
| 	  Support for ARC770 core introduced with Rel 4.10 (Summer 2011)
 | |
| 	  This core has a bunch of cool new features:
 | |
| 	  -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4)
 | |
|                    Shared Address Spaces (for sharing TLB entires in MMU)
 | |
| 	  -Caches: New Prog Model, Region Flush
 | |
| 	  -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| config CPU_BIG_ENDIAN
 | |
| 	bool "Enable Big Endian Mode"
 | |
| 	default n
 | |
| 	help
 | |
| 	  Build kernel for Big Endian Mode of ARC CPU
 | |
| 
 | |
| # If a platform can't work with 0x8000_0000 based dma_addr_t
 | |
| config ARC_PLAT_NEEDS_CPU_TO_DMA
 | |
| 	bool
 | |
| 
 | |
| config SMP
 | |
| 	bool "Symmetric Multi-Processing (Incomplete)"
 | |
| 	default n
 | |
| 	select USE_GENERIC_SMP_HELPERS
 | |
| 	help
 | |
| 	  This enables support for systems with more than one CPU. If you have
 | |
| 	  a system with only one CPU, like most personal computers, say N. If
 | |
| 	  you have a system with more than one CPU, say Y.
 | |
| 
 | |
| if SMP
 | |
| 
 | |
| config ARC_HAS_COH_CACHES
 | |
| 	def_bool n
 | |
| 
 | |
| config ARC_HAS_COH_RTSC
 | |
| 	def_bool n
 | |
| 
 | |
| config ARC_HAS_REENTRANT_IRQ_LV2
 | |
| 	def_bool n
 | |
| 
 | |
| endif
 | |
| 
 | |
| config NR_CPUS
 | |
| 	int "Maximum number of CPUs (2-32)"
 | |
| 	range 2 32
 | |
| 	depends on SMP
 | |
| 	default "2"
 | |
| 
 | |
| menuconfig ARC_CACHE
 | |
| 	bool "Enable Cache Support"
 | |
| 	default y
 | |
| 	# if SMP, cache enabled ONLY if ARC implementation has cache coherency
 | |
| 	depends on !SMP || ARC_HAS_COH_CACHES
 | |
| 
 | |
| if ARC_CACHE
 | |
| 
 | |
| config ARC_CACHE_LINE_SHIFT
 | |
| 	int "Cache Line Length (as power of 2)"
 | |
| 	range 5 7
 | |
| 	default "6"
 | |
| 	help
 | |
| 	  Starting with ARC700 4.9, Cache line length is configurable,
 | |
| 	  This option specifies "N", with Line-len = 2 power N
 | |
| 	  So line lengths of 32, 64, 128 are specified by 5,6,7, respectively
 | |
| 	  Linux only supports same line lengths for I and D caches.
 | |
| 
 | |
| config ARC_HAS_ICACHE
 | |
| 	bool "Use Instruction Cache"
 | |
| 	default y
 | |
| 
 | |
| config ARC_HAS_DCACHE
 | |
| 	bool "Use Data Cache"
 | |
| 	default y
 | |
| 
 | |
| config ARC_CACHE_PAGES
 | |
| 	bool "Per Page Cache Control"
 | |
| 	default y
 | |
| 	depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE
 | |
| 	help
 | |
| 	  This can be used to over-ride the global I/D Cache Enable on a
 | |
| 	  per-page basis (but only for pages accessed via MMU such as
 | |
| 	  Kernel Virtual address or User Virtual Address)
 | |
| 	  TLB entries have a per-page Cache Enable Bit.
 | |
| 	  Note that Global I/D ENABLE + Per Page DISABLE works but corollary
 | |
| 	  Global DISABLE + Per Page ENABLE won't work
 | |
| 
 | |
| config ARC_CACHE_VIPT_ALIASING
 | |
| 	bool "Support VIPT Aliasing D$"
 | |
| 	default n
 | |
| 
 | |
| endif	#ARC_CACHE
 | |
| 
 | |
| config ARC_HAS_ICCM
 | |
| 	bool "Use ICCM"
 | |
| 	help
 | |
| 	  Single Cycle RAMS to store Fast Path Code
 | |
| 	default n
 | |
| 
 | |
| config ARC_ICCM_SZ
 | |
| 	int "ICCM Size in KB"
 | |
| 	default "64"
 | |
| 	depends on ARC_HAS_ICCM
 | |
| 
 | |
| config ARC_HAS_DCCM
 | |
| 	bool "Use DCCM"
 | |
| 	help
 | |
| 	  Single Cycle RAMS to store Fast Path Data
 | |
| 	default n
 | |
| 
 | |
| config ARC_DCCM_SZ
 | |
| 	int "DCCM Size in KB"
 | |
| 	default "64"
 | |
| 	depends on ARC_HAS_DCCM
 | |
| 
 | |
| config ARC_DCCM_BASE
 | |
| 	hex "DCCM map address"
 | |
| 	default "0xA0000000"
 | |
| 	depends on ARC_HAS_DCCM
 | |
| 
 | |
| config ARC_HAS_HW_MPY
 | |
| 	bool "Use Hardware Multiplier (Normal or Faster XMAC)"
 | |
| 	default y
 | |
| 	help
 | |
| 	  Influences how gcc generates code for MPY operations.
 | |
| 	  If enabled, MPYxx insns are generated, provided by Standard/XMAC
 | |
| 	  Multipler. Otherwise software multipy lib is used
 | |
| 
 | |
| choice
 | |
| 	prompt "ARC700 MMU Version"
 | |
| 	default ARC_MMU_V3 if ARC_CPU_770
 | |
| 	default ARC_MMU_V2 if ARC_CPU_750D
 | |
| 
 | |
| config ARC_MMU_V1
 | |
| 	bool "MMU v1"
 | |
| 	help
 | |
| 	  Orig ARC700 MMU
 | |
| 
 | |
| config ARC_MMU_V2
 | |
| 	bool "MMU v2"
 | |
| 	help
 | |
| 	  Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio
 | |
| 	  when 2 D-TLB and 1 I-TLB entries index into same 2way set.
 | |
| 
 | |
| config ARC_MMU_V3
 | |
| 	bool "MMU v3"
 | |
| 	depends on ARC_CPU_770
 | |
| 	help
 | |
| 	  Introduced with ARC700 4.10: New Features
 | |
| 	  Variable Page size (1k-16k), var JTLB size 128 x (2 or 4)
 | |
| 	  Shared Address Spaces (SASID)
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| 
 | |
| choice
 | |
| 	prompt "MMU Page Size"
 | |
| 	default ARC_PAGE_SIZE_8K
 | |
| 
 | |
| config ARC_PAGE_SIZE_8K
 | |
| 	bool "8KB"
 | |
| 	help
 | |
| 	  Choose between 8k vs 16k
 | |
| 
 | |
| config ARC_PAGE_SIZE_16K
 | |
| 	bool "16KB"
 | |
| 	depends on ARC_MMU_V3
 | |
| 
 | |
| config ARC_PAGE_SIZE_4K
 | |
| 	bool "4KB"
 | |
| 	depends on ARC_MMU_V3
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| config ARC_COMPACT_IRQ_LEVELS
 | |
| 	bool "ARCompact IRQ Priorities: High(2)/Low(1)"
 | |
| 	default n
 | |
| 	# Timer HAS to be high priority, for any other high priority config
 | |
| 	select ARC_IRQ3_LV2
 | |
| 	# if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy
 | |
| 	depends on !SMP || ARC_HAS_REENTRANT_IRQ_LV2
 | |
| 
 | |
| if ARC_COMPACT_IRQ_LEVELS
 | |
| 
 | |
| config ARC_IRQ3_LV2
 | |
| 	bool
 | |
| 
 | |
| config ARC_IRQ5_LV2
 | |
| 	bool
 | |
| 
 | |
| config ARC_IRQ6_LV2
 | |
| 	bool
 | |
| 
 | |
| endif
 | |
| 
 | |
| config ARC_FPU_SAVE_RESTORE
 | |
| 	bool "Enable FPU state persistence across context switch"
 | |
| 	default n
 | |
| 	help
 | |
| 	  Double Precision Floating Point unit had dedictaed regs which
 | |
| 	  need to be saved/restored across context-switch.
 | |
| 	  Note that ARC FPU is overly simplistic, unlike say x86, which has
 | |
| 	  hardware pieces to allow software to conditionally save/restore,
 | |
| 	  based on actual usage of FPU by a task. Thus our implemn does
 | |
| 	  this for all tasks in system.
 | |
| 
 | |
| config ARC_CANT_LLSC
 | |
| 	def_bool n
 | |
| 
 | |
| menuconfig ARC_CPU_REL_4_10
 | |
| 	bool "Enable support for Rel 4.10 features"
 | |
| 	default n
 | |
| 	help
 | |
| 	  -ARC770 (and dependent features) enabled
 | |
| 	  -ARC750 also shares some of the new features with 770
 | |
| 
 | |
| config ARC_HAS_LLSC
 | |
| 	bool "Insn: LLOCK/SCOND (efficient atomic ops)"
 | |
| 	default y
 | |
| 	depends on ARC_CPU_770 && !ARC_CANT_LLSC
 | |
| 
 | |
| config ARC_HAS_SWAPE
 | |
| 	bool "Insn: SWAPE (endian-swap)"
 | |
| 	default y
 | |
| 	depends on ARC_CPU_REL_4_10
 | |
| 
 | |
| config ARC_HAS_RTSC
 | |
| 	bool "Insn: RTSC (64-bit r/o cycle counter)"
 | |
| 	default y
 | |
| 	depends on ARC_CPU_REL_4_10
 | |
| 	# if SMP, enable RTSC only if counter is coherent across cores
 | |
| 	depends on !SMP || ARC_HAS_COH_RTSC
 | |
| 
 | |
| endmenu   # "ARC CPU Configuration"
 | |
| 
 | |
| config LINUX_LINK_BASE
 | |
| 	hex "Linux Link Address"
 | |
| 	default "0x80000000"
 | |
| 	help
 | |
| 	  ARC700 divides the 32 bit phy address space into two equal halves
 | |
| 	  -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU
 | |
| 	  -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel
 | |
| 	  Typically Linux kernel is linked at the start of untransalted addr,
 | |
| 	  hence the default value of 0x8zs.
 | |
| 	  However some customers have peripherals mapped at this addr, so
 | |
| 	  Linux needs to be scooted a bit.
 | |
| 	  If you don't know what the above means, leave this setting alone.
 | |
| 
 | |
| config ARC_CURR_IN_REG
 | |
| 	bool "Dedicate Register r25 for current_task pointer"
 | |
| 	default y
 | |
| 	help
 | |
| 	  This reserved Register R25 to point to Current Task in
 | |
| 	  kernel mode. This saves memory access for each such access
 | |
| 
 | |
| 
 | |
| config ARC_MISALIGN_ACCESS
 | |
| 	bool "Emulate unaligned memory access (userspace only)"
 | |
| 	default N
 | |
| 	select SYSCTL_ARCH_UNALIGN_NO_WARN
 | |
| 	select SYSCTL_ARCH_UNALIGN_ALLOW
 | |
| 	help
 | |
| 	  This enables misaligned 16 & 32 bit memory access from user space.
 | |
| 	  Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide
 | |
| 	  potential bugs in code
 | |
| 
 | |
| config ARC_STACK_NONEXEC
 | |
| 	bool "Make stack non-executable"
 | |
| 	default n
 | |
| 	help
 | |
| 	  To disable the execute permissions of stack/heap of processes
 | |
| 	  which are enabled by default.
 | |
| 
 | |
| config HZ
 | |
| 	int "Timer Frequency"
 | |
| 	default 100
 | |
| 
 | |
| config ARC_METAWARE_HLINK
 | |
| 	bool "Support for Metaware debugger assisted Host access"
 | |
| 	default n
 | |
| 	help
 | |
| 	  This options allows a Linux userland apps to directly access
 | |
| 	  host file system (open/creat/read/write etc) with help from
 | |
| 	  Metaware Debugger. This can come in handy for Linux-host communication
 | |
| 	  when there is no real usable peripheral such as EMAC.
 | |
| 
 | |
| menuconfig ARC_DBG
 | |
| 	bool "ARC debugging"
 | |
| 	default y
 | |
| 
 | |
| config ARC_DW2_UNWIND
 | |
| 	bool "Enable DWARF specific kernel stack unwind"
 | |
| 	depends on ARC_DBG
 | |
| 	default y
 | |
| 	select KALLSYMS
 | |
| 	help
 | |
| 	  Compiles the kernel with DWARF unwind information and can be used
 | |
| 	  to get stack backtraces.
 | |
| 
 | |
| 	  If you say Y here the resulting kernel image will be slightly larger
 | |
| 	  but not slower, and it will give very useful debugging information.
 | |
| 	  If you don't debug the kernel, you can say N, but we may not be able
 | |
| 	  to solve problems without frame unwind information
 | |
| 
 | |
| config ARC_DBG_TLB_PARANOIA
 | |
| 	bool "Paranoia Checks in Low Level TLB Handlers"
 | |
| 	depends on ARC_DBG
 | |
| 	default n
 | |
| 
 | |
| config ARC_DBG_TLB_MISS_COUNT
 | |
| 	bool "Profile TLB Misses"
 | |
| 	default n
 | |
| 	select DEBUG_FS
 | |
| 	depends on ARC_DBG
 | |
| 	help
 | |
| 	  Counts number of I and D TLB Misses and exports them via Debugfs
 | |
| 	  The counters can be cleared via Debugfs as well
 | |
| 
 | |
| config CMDLINE_UBOOT
 | |
| 	bool "Support U-boot kernel command line passing"
 | |
| 	default n
 | |
| 	help
 | |
| 	  If you are using U-boot (www.denx.de) and wish to pass the kernel
 | |
| 	  command line from the U-boot environment to the Linux kernel then
 | |
| 	  switch this option on.
 | |
| 	  ARC U-boot will setup the cmdline in RAM/flash and set r2 to point
 | |
| 	  to it. kernel startup code will append this to DeviceTree
 | |
| 	  /bootargs provided cmdline args.
 | |
| 
 | |
| config ARC_BUILTIN_DTB_NAME
 | |
| 	string "Built in DTB"
 | |
| 	help
 | |
| 	  Set the name of the DTB to embed in the vmlinux binary
 | |
| 	  Leaving it blank selects the minimal "skeleton" dtb
 | |
| 
 | |
| source "kernel/Kconfig.preempt"
 | |
| 
 | |
| menu "Executable file formats"
 | |
| source "fs/Kconfig.binfmt"
 | |
| endmenu
 | |
| 
 | |
| endmenu	 # "ARC Architecture Configuration"
 | |
| 
 | |
| source "mm/Kconfig"
 | |
| source "net/Kconfig"
 | |
| source "drivers/Kconfig"
 | |
| source "fs/Kconfig"
 | |
| source "arch/arc/Kconfig.debug"
 | |
| source "security/Kconfig"
 | |
| source "crypto/Kconfig"
 | |
| source "lib/Kconfig"
 |