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