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