|
@@ -0,0 +1,310 @@
|
|
|
+#
|
|
|
+# For a description of the syntax of this configuration file,
|
|
|
+# see Documentation/kbuild/kconfig-language.txt.
|
|
|
+#
|
|
|
+
|
|
|
+config RISCV
|
|
|
+ def_bool y
|
|
|
+ select OF
|
|
|
+ select OF_EARLY_FLATTREE
|
|
|
+ select OF_IRQ
|
|
|
+ select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
|
|
+ select ARCH_WANT_FRAME_POINTERS
|
|
|
+ select CLONE_BACKWARDS
|
|
|
+ select COMMON_CLK
|
|
|
+ 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 ARCH_WANT_OPTIONAL_GPIOLIB
|
|
|
+ select HAVE_MEMBLOCK
|
|
|
+ select HAVE_DMA_API_DEBUG
|
|
|
+ select HAVE_DMA_CONTIGUOUS
|
|
|
+ select HAVE_GENERIC_DMA_COHERENT
|
|
|
+ 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_IRQ_INTC
|
|
|
+ select RISCV_TIMER
|
|
|
+
|
|
|
+config MMU
|
|
|
+ def_bool y
|
|
|
+
|
|
|
+# even on 32-bit, physical (and DMA) addresses are > 32-bits
|
|
|
+config ARCH_PHYS_ADDR_T_64BIT
|
|
|
+ def_bool y
|
|
|
+
|
|
|
+config ARCH_DMA_ADDR_T_64BIT
|
|
|
+ def_bool y
|
|
|
+
|
|
|
+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 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
|
|
|
+
|
|
|
+config DMA_NOOP_OPS
|
|
|
+ def_bool y
|
|
|
+
|
|
|
+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 CPU_SUPPORTS_32BIT_KERNEL
|
|
|
+ select 32BIT
|
|
|
+ select GENERIC_ASHLDI3
|
|
|
+ select GENERIC_ASHRDI3
|
|
|
+ select GENERIC_LSHRDI3
|
|
|
+
|
|
|
+config ARCH_RV64I
|
|
|
+ bool "RV64I"
|
|
|
+ select CPU_SUPPORTS_64BIT_KERNEL
|
|
|
+ select 64BIT
|
|
|
+
|
|
|
+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
|
|
|
+
|
|
|
+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
|
|
|
+ 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"
|
|
|
+
|
|
|
+config CPU_SUPPORTS_32BIT_KERNEL
|
|
|
+ bool
|
|
|
+config CPU_SUPPORTS_64BIT_KERNEL
|
|
|
+ bool
|
|
|
+
|
|
|
+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
|
|
|
+
|
|
|
+endmenu
|
|
|
+
|
|
|
+menu "Kernel type"
|
|
|
+
|
|
|
+choice
|
|
|
+ prompt "Kernel code model"
|
|
|
+ default 64BIT
|
|
|
+
|
|
|
+config 32BIT
|
|
|
+ bool "32-bit kernel"
|
|
|
+ depends on CPU_SUPPORTS_32BIT_KERNEL
|
|
|
+ help
|
|
|
+ Select this option to build a 32-bit kernel.
|
|
|
+
|
|
|
+config 64BIT
|
|
|
+ bool "64-bit kernel"
|
|
|
+ depends on CPU_SUPPORTS_64BIT_KERNEL
|
|
|
+ help
|
|
|
+ Select this option to build a 64-bit kernel.
|
|
|
+
|
|
|
+endchoice
|
|
|
+
|
|
|
+source "mm/Kconfig"
|
|
|
+
|
|
|
+source "kernel/Kconfig.preempt"
|
|
|
+
|
|
|
+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
|
|
|
+
|
|
|
+source "init/Kconfig"
|
|
|
+
|
|
|
+source "kernel/Kconfig.freezer"
|
|
|
+
|
|
|
+menu "Executable file formats"
|
|
|
+
|
|
|
+source "fs/Kconfig.binfmt"
|
|
|
+
|
|
|
+endmenu
|
|
|
+
|
|
|
+menu "Power management options"
|
|
|
+
|
|
|
+source kernel/power/Kconfig
|
|
|
+
|
|
|
+endmenu
|
|
|
+
|
|
|
+source "net/Kconfig"
|
|
|
+
|
|
|
+source "drivers/Kconfig"
|
|
|
+
|
|
|
+source "fs/Kconfig"
|
|
|
+
|
|
|
+menu "Kernel hacking"
|
|
|
+
|
|
|
+config CMDLINE_BOOL
|
|
|
+ bool "Built-in kernel command line"
|
|
|
+ help
|
|
|
+ For most platforms, it is firmware or second stage bootloader
|
|
|
+ that by default specifies the kernel command line options.
|
|
|
+ However, it might be necessary or advantageous to either override
|
|
|
+ the default kernel command line or add a few extra options to it.
|
|
|
+ For such cases, this option allows hardcoding command line options
|
|
|
+ directly into the kernel.
|
|
|
+
|
|
|
+ For that, choose 'Y' here and fill in the extra boot parameters
|
|
|
+ in CONFIG_CMDLINE.
|
|
|
+
|
|
|
+ The built-in options will be concatenated to the default command
|
|
|
+ line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default
|
|
|
+ command line will be ignored and replaced by the built-in string.
|
|
|
+
|
|
|
+config CMDLINE
|
|
|
+ string "Built-in kernel command string"
|
|
|
+ depends on CMDLINE_BOOL
|
|
|
+ default ""
|
|
|
+ help
|
|
|
+ Supply command-line options at build time by entering them here.
|
|
|
+
|
|
|
+config CMDLINE_OVERRIDE
|
|
|
+ bool "Built-in command line overrides bootloader arguments"
|
|
|
+ depends on CMDLINE_BOOL
|
|
|
+ help
|
|
|
+ Set this option to 'Y' to have the kernel ignore the bootloader
|
|
|
+ or firmware command line. Instead, the built-in command line
|
|
|
+ will be used exclusively.
|
|
|
+
|
|
|
+ If you don't know what to do here, say N.
|
|
|
+
|
|
|
+config EARLY_PRINTK
|
|
|
+ def_bool y
|
|
|
+
|
|
|
+source "lib/Kconfig.debug"
|
|
|
+
|
|
|
+config CMDLINE_BOOL
|
|
|
+ bool
|
|
|
+endmenu
|
|
|
+
|
|
|
+source "security/Kconfig"
|
|
|
+
|
|
|
+source "crypto/Kconfig"
|
|
|
+
|
|
|
+source "lib/Kconfig"
|