^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) config NIOS2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) select ARCH_32BIT_OFF_T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) select ARCH_HAS_DMA_PREP_COHERENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) select ARCH_HAS_SYNC_DMA_FOR_CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) select ARCH_HAS_SYNC_DMA_FOR_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) select ARCH_HAS_DMA_SET_UNCACHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) select ARCH_NO_SWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) select TIMER_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) select GENERIC_ATOMIC64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) select GENERIC_CPU_DEVICES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) select GENERIC_IRQ_PROBE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) select GENERIC_IRQ_SHOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) select GENERIC_STRNCPY_FROM_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) select GENERIC_STRNLEN_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) select HAVE_ARCH_TRACEHOOK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) select HAVE_ARCH_KGDB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) select MODULES_USE_ELF_RELA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) select OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) select OF_EARLY_FLATTREE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) select SOC_BUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) select USB_ARCH_HAS_HCD if USB_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) select CPU_NO_EFFICIENT_FFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) select MMU_GATHER_NO_RANGE if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) select SET_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) config GENERIC_CSUM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) config GENERIC_HWEIGHT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) config GENERIC_CALIBRATE_DELAY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) config NO_IOPORT_MAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) config FPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) config TRACE_IRQFLAGS_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) menu "Kernel features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) source "kernel/Kconfig.hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) config FORCE_MAX_ZONEORDER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) int "Maximum zone order"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) range 9 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) default "11"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) The kernel memory allocator divides physically contiguous memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) blocks into "zones", where each zone is a power of two number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) pages. This option selects the largest power of two that the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) keeps in the memory allocator. If you need to allocate very large
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) blocks of physically contiguous memory, then you may need to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) increase this value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) This config option is actually maximum order plus one. For example,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) a value of 11 means that the largest free memory block is 2^10 pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) source "arch/nios2/platform/Kconfig.platform"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) menu "Processor type and features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) config MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) config NR_CPUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) default "1"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) config NIOS2_ALIGNMENT_TRAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) bool "Catch alignment trap"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) Nios II CPUs cannot fetch/store data which is not bus aligned,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) i.e., a 2 or 4 byte fetch must start at an address divisible by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) 2 or 4. Any non-aligned load/store instructions will be trapped and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) emulated in software if you say Y here, which has a performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) impact.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) comment "Boot options"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) config CMDLINE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) bool "Default bootloader kernel arguments"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) config CMDLINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) string "Default kernel command string"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) default ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) depends on CMDLINE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) On some platforms, there is currently no way for the boot loader to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) pass arguments to the kernel. For these platforms, you can supply
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) some command-line options at build time by entering them here. In
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) other cases you can specify kernel args so that you don't have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) to set them up in board prom initialization routines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) config CMDLINE_FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) bool "Force default kernel command string"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) depends on CMDLINE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) Set this to have arguments from the default kernel command string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) override those passed by the boot loader.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) config NIOS2_CMDLINE_IGNORE_DTB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) bool "Ignore kernel command string from DTB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) depends on CMDLINE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) depends on !CMDLINE_FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) Set this to ignore the bootargs property from the devicetree's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) chosen node and fall back to CMDLINE if nothing is passed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) config NIOS2_PASS_CMDLINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) bool "Passed kernel command line from u-boot"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) Use bootargs env variable from u-boot for kernel command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) will override "Default kernel command string".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) Say N if you are unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) config NIOS2_BOOT_LINK_OFFSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) hex "Link address offset for booting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) default "0x00500000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) This option allows you to set the link address offset of the zImage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) This can be useful if you are on a board which has a small amount of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) menu "Advanced setup"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) config ADVANCED_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) bool "Prompt for advanced kernel configuration options"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) comment "Default settings for advanced configuration options are used"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) depends on !ADVANCED_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) config NIOS2_KERNEL_MMU_REGION_BASE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) bool "Set custom kernel MMU region base address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) depends on ADVANCED_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) This option allows you to set the virtual address of the kernel MMU region.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) Say N here unless you know what you are doing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) config NIOS2_KERNEL_MMU_REGION_BASE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) hex "Virtual base address of the kernel MMU region " if NIOS2_KERNEL_MMU_REGION_BASE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) default "0x80000000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) This option allows you to set the virtual base address of the kernel MMU region.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) config NIOS2_KERNEL_REGION_BASE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) bool "Set custom kernel region base address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) depends on ADVANCED_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) This option allows you to set the virtual address of the kernel region.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) Say N here unless you know what you are doing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) config NIOS2_KERNEL_REGION_BASE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) hex "Virtual base address of the kernel region " if NIOS2_KERNEL_REGION_BASE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) default "0xc0000000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) config NIOS2_IO_REGION_BASE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) bool "Set custom I/O region base address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) depends on ADVANCED_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) This option allows you to set the virtual address of the I/O region.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) Say N here unless you know what you are doing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) config NIOS2_IO_REGION_BASE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) hex "Virtual base address of the I/O region" if NIOS2_IO_REGION_BASE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) default "0xe0000000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) endmenu