| # |
| # 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 |