246 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# For a description of the syntax of this configuration file,
 | 
						|
# see Documentation/kbuild/kconfig-language.txt.
 | 
						|
#
 | 
						|
 | 
						|
config 64BIT
 | 
						|
	bool
 | 
						|
 | 
						|
config 32BIT
 | 
						|
	bool
 | 
						|
 | 
						|
config RISCV
 | 
						|
	def_bool y
 | 
						|
	# even on 32-bit, physical (and DMA) addresses are > 32-bits
 | 
						|
	select PHYS_ADDR_T_64BIT
 | 
						|
	select OF
 | 
						|
	select OF_EARLY_FLATTREE
 | 
						|
	select OF_IRQ
 | 
						|
	select ARCH_WANT_FRAME_POINTERS
 | 
						|
	select CLONE_BACKWARDS
 | 
						|
	select COMMON_CLK
 | 
						|
	select DMA_DIRECT_OPS
 | 
						|
	select GENERIC_CLOCKEVENTS
 | 
						|
	select GENERIC_CPU_DEVICES
 | 
						|
	select GENERIC_IRQ_SHOW
 | 
						|
	select GENERIC_PCI_IOMAP
 | 
						|
	select GENERIC_STRNCPY_FROM_USER
 | 
						|
	select GENERIC_STRNLEN_USER
 | 
						|
	select GENERIC_SMP_IDLE_THREAD
 | 
						|
	select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A
 | 
						|
	select HAVE_MEMBLOCK
 | 
						|
	select HAVE_MEMBLOCK_NODE_MAP
 | 
						|
	select HAVE_DMA_CONTIGUOUS
 | 
						|
	select HAVE_GENERIC_DMA_COHERENT
 | 
						|
	select HAVE_PERF_EVENTS
 | 
						|
	select IRQ_DOMAIN
 | 
						|
	select NO_BOOTMEM
 | 
						|
	select RISCV_ISA_A if SMP
 | 
						|
	select SPARSE_IRQ
 | 
						|
	select SYSCTL_EXCEPTION_TRACE
 | 
						|
	select HAVE_ARCH_TRACEHOOK
 | 
						|
	select MODULES_USE_ELF_RELA if MODULES
 | 
						|
	select THREAD_INFO_IN_TASK
 | 
						|
	select RISCV_TIMER
 | 
						|
	select GENERIC_IRQ_MULTI_HANDLER
 | 
						|
	select ARCH_HAS_PTE_SPECIAL
 | 
						|
 | 
						|
config MMU
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config ZONE_DMA32
 | 
						|
	bool
 | 
						|
	default y if 64BIT
 | 
						|
 | 
						|
config PAGE_OFFSET
 | 
						|
	hex
 | 
						|
	default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
 | 
						|
	default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
 | 
						|
	default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
 | 
						|
 | 
						|
config STACKTRACE_SUPPORT
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config TRACE_IRQFLAGS_SUPPORT
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config RWSEM_GENERIC_SPINLOCK
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config GENERIC_BUG
 | 
						|
	def_bool y
 | 
						|
	depends on BUG
 | 
						|
	select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
 | 
						|
 | 
						|
config GENERIC_BUG_RELATIVE_POINTERS
 | 
						|
	bool
 | 
						|
 | 
						|
config GENERIC_CALIBRATE_DELAY
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config GENERIC_CSUM
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config GENERIC_HWEIGHT
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config PGTABLE_LEVELS
 | 
						|
	int
 | 
						|
	default 3 if 64BIT
 | 
						|
	default 2
 | 
						|
 | 
						|
config HAVE_KPROBES
 | 
						|
	def_bool n
 | 
						|
 | 
						|
menu "Platform type"
 | 
						|
 | 
						|
choice
 | 
						|
	prompt "Base ISA"
 | 
						|
	default ARCH_RV64I
 | 
						|
	help
 | 
						|
	  This selects the base ISA that this kernel will traget and must match
 | 
						|
	  the target platform.
 | 
						|
 | 
						|
config ARCH_RV32I
 | 
						|
	bool "RV32I"
 | 
						|
	select 32BIT
 | 
						|
	select GENERIC_LIB_ASHLDI3
 | 
						|
	select GENERIC_LIB_ASHRDI3
 | 
						|
	select GENERIC_LIB_LSHRDI3
 | 
						|
	select GENERIC_LIB_UCMPDI2
 | 
						|
 | 
						|
config ARCH_RV64I
 | 
						|
	bool "RV64I"
 | 
						|
	select 64BIT
 | 
						|
	select HAVE_FUNCTION_TRACER
 | 
						|
	select HAVE_FUNCTION_GRAPH_TRACER
 | 
						|
	select HAVE_FTRACE_MCOUNT_RECORD
 | 
						|
	select HAVE_DYNAMIC_FTRACE
 | 
						|
	select HAVE_DYNAMIC_FTRACE_WITH_REGS
 | 
						|
	select SWIOTLB
 | 
						|
 | 
						|
endchoice
 | 
						|
 | 
						|
# We must be able to map all physical memory into the kernel, but the compiler
 | 
						|
# is still a bit more efficient when generating code if it's setup in a manner
 | 
						|
# such that it can only map 2GiB of memory.
 | 
						|
choice
 | 
						|
	prompt "Kernel Code Model"
 | 
						|
	default CMODEL_MEDLOW if 32BIT
 | 
						|
	default CMODEL_MEDANY if 64BIT
 | 
						|
 | 
						|
	config CMODEL_MEDLOW
 | 
						|
		bool "medium low code model"
 | 
						|
	config CMODEL_MEDANY
 | 
						|
		bool "medium any code model"
 | 
						|
endchoice
 | 
						|
 | 
						|
config MODULE_SECTIONS
 | 
						|
	bool
 | 
						|
	select HAVE_MOD_ARCH_SPECIFIC
 | 
						|
 | 
						|
choice
 | 
						|
	prompt "Maximum Physical Memory"
 | 
						|
	default MAXPHYSMEM_2GB if 32BIT
 | 
						|
	default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
 | 
						|
	default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
 | 
						|
 | 
						|
	config MAXPHYSMEM_2GB
 | 
						|
		bool "2GiB"
 | 
						|
	config MAXPHYSMEM_128GB
 | 
						|
		depends on 64BIT && CMODEL_MEDANY
 | 
						|
		select MODULE_SECTIONS if MODULES
 | 
						|
		bool "128GiB"
 | 
						|
endchoice
 | 
						|
 | 
						|
 | 
						|
config SMP
 | 
						|
	bool "Symmetric Multi-Processing"
 | 
						|
	help
 | 
						|
	  This enables support for systems with more than one CPU.  If
 | 
						|
	  you say N here, the kernel will run on single and
 | 
						|
	  multiprocessor machines, but will use only one CPU of a
 | 
						|
	  multiprocessor machine. If you say Y here, the kernel will run
 | 
						|
	  on many, but not all, single processor machines. On a single
 | 
						|
	  processor machine, the kernel will run faster if you say N
 | 
						|
	  here.
 | 
						|
 | 
						|
	  If you don't know what to do here, say N.
 | 
						|
 | 
						|
config NR_CPUS
 | 
						|
	int "Maximum number of CPUs (2-32)"
 | 
						|
	range 2 32
 | 
						|
	depends on SMP
 | 
						|
	default "8"
 | 
						|
 | 
						|
choice
 | 
						|
	prompt "CPU Tuning"
 | 
						|
	default TUNE_GENERIC
 | 
						|
 | 
						|
config TUNE_GENERIC
 | 
						|
	bool "generic"
 | 
						|
 | 
						|
endchoice
 | 
						|
 | 
						|
config RISCV_ISA_C
 | 
						|
	bool "Emit compressed instructions when building Linux"
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	   Adds "C" to the ISA subsets that the toolchain is allowed to emit
 | 
						|
	   when building Linux, which results in compressed instructions in the
 | 
						|
	   Linux binary.
 | 
						|
 | 
						|
	   If you don't know what to do here, say Y.
 | 
						|
 | 
						|
config RISCV_ISA_A
 | 
						|
	def_bool y
 | 
						|
 | 
						|
menu "supported PMU type"
 | 
						|
	depends on PERF_EVENTS
 | 
						|
 | 
						|
config RISCV_BASE_PMU
 | 
						|
	bool "Base Performance Monitoring Unit"
 | 
						|
	def_bool y
 | 
						|
	help
 | 
						|
	  A base PMU that serves as a reference implementation and has limited
 | 
						|
	  feature of perf.  It can run on any RISC-V machines so serves as the
 | 
						|
	  fallback, but this option can also be disable to reduce kernel size.
 | 
						|
 | 
						|
endmenu
 | 
						|
 | 
						|
endmenu
 | 
						|
 | 
						|
menu "Kernel type"
 | 
						|
 | 
						|
source "kernel/Kconfig.hz"
 | 
						|
 | 
						|
endmenu
 | 
						|
 | 
						|
menu "Bus support"
 | 
						|
 | 
						|
config PCI
 | 
						|
	bool "PCI support"
 | 
						|
	select PCI_MSI
 | 
						|
	help
 | 
						|
	  This feature enables support for PCI bus system. If you say Y
 | 
						|
	  here, the kernel will include drivers and infrastructure code
 | 
						|
	  to support PCI bus devices.
 | 
						|
 | 
						|
	  If you don't know what to do here, say Y.
 | 
						|
 | 
						|
config PCI_DOMAINS
 | 
						|
	def_bool PCI
 | 
						|
 | 
						|
config PCI_DOMAINS_GENERIC
 | 
						|
	def_bool PCI
 | 
						|
 | 
						|
source "drivers/pci/Kconfig"
 | 
						|
 | 
						|
endmenu
 | 
						|
 | 
						|
menu "Power management options"
 | 
						|
 | 
						|
source kernel/power/Kconfig
 | 
						|
 | 
						|
endmenu
 |