1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 28e1a6dd2SChris Zankelconfig XTENSA 335f9cd08SJohannes Weiner def_bool y 4942fa985SYury Norov select ARCH_32BIT_OFF_T 58690bbcfSMathieu Desnoyers select ARCH_HAS_CPU_CACHE_ALIASING 6aef0f78eSChristoph Hellwig select ARCH_HAS_BINFMT_FLAT if !MMU 792652cf9SKees Cook select ARCH_HAS_CURRENT_STACK_POINTER 8af7a16e5SMax Filippov select ARCH_HAS_DEBUG_VM_PGTABLE 90f665b9eSChristoph Hellwig select ARCH_HAS_DMA_PREP_COHERENT if MMU 100847d167SMax Filippov select ARCH_HAS_GCOV_PROFILE_ALL 11c49731a0SMax Filippov select ARCH_HAS_KCOV 120f665b9eSChristoph Hellwig select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU 130f665b9eSChristoph Hellwig select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU 14fa7e2247SChristoph Hellwig select ARCH_HAS_DMA_SET_UNCACHED if MMU 15e6226997SArnd Bergmann select ARCH_HAS_STRNCPY_FROM_USER if !KASAN 16e6226997SArnd Bergmann select ARCH_HAS_STRNLEN_USER 17e799bef0SPaul E. McKenney select ARCH_NEED_CMPXCHG_1_EMU 18dce44566SAnshuman Khandual select ARCH_USE_MEMTEST 19579afe86SMax Filippov select ARCH_USE_QUEUED_RWLOCKS 20579afe86SMax Filippov select ARCH_USE_QUEUED_SPINLOCKS 21e969161bSMax Filippov select ARCH_WANT_IPC_PARSE_VERSION 2210916706SShile Zhang select BUILDTIME_TABLE_SORT 23*47812144SMasahiro Yamada select GENERIC_BUILTIN_DTB 243e41f9baSAl Viro select CLONE_BACKWARDS 25bda8932dSMax Filippov select COMMON_CLK 26f5ff79fdSChristoph Hellwig select DMA_NONCOHERENT_MMAP if MMU 27920f8a39SMax Filippov select GENERIC_ATOMIC64 28920f8a39SMax Filippov select GENERIC_IRQ_SHOW 2919c5699fSMax Filippov select GENERIC_LIB_CMPDI2 3019c5699fSMax Filippov select GENERIC_LIB_MULDI3 3119c5699fSMax Filippov select GENERIC_LIB_UCMPDI2 32920f8a39SMax Filippov select GENERIC_PCI_IOMAP 33920f8a39SMax Filippov select GENERIC_SCHED_CLOCK 34ca6c1af3SBaoquan He select GENERIC_IOREMAP if MMU 35ef1a935cSMax Filippov select HAVE_ARCH_AUDITSYSCALL 367af710d9SMax Filippov select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 377af710d9SMax Filippov select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL 38725aea87SMax Filippov select HAVE_ARCH_KCSAN 39da94a40fSMax Filippov select HAVE_ARCH_SECCOMP_FILTER 409f24f3c1SMax Filippov select HAVE_ARCH_TRACEHOOK 41338d9150SMax Filippov select HAVE_ASM_MODVERSIONS 4224a9c541SFrederic Weisbecker select HAVE_CONTEXT_TRACKING_USER 430e46c111SMax Filippov select HAVE_DEBUG_KMEMLEAK 449d2ffe5cSMax Filippov select HAVE_DMA_CONTIGUOUS 455f56a5dfSJiri Slaby select HAVE_EXIT_THREAD 46920f8a39SMax Filippov select HAVE_FUNCTION_TRACER 477dc0eb0bSMax Filippov select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000 48c91e02bdSMax Filippov select HAVE_HW_BREAKPOINT if PERF_EVENTS 49920f8a39SMax Filippov select HAVE_IRQ_TIME_ACCOUNTING 505394f1e9SArnd Bergmann select HAVE_PAGE_SIZE_4KB 51eb01d42aSChristoph Hellwig select HAVE_PCI 52920f8a39SMax Filippov select HAVE_PERF_EVENTS 53d148eac0SMasahiro Yamada select HAVE_STACKPROTECTOR 54af5395c2SMax Filippov select HAVE_SYSCALL_TRACEPOINTS 5550718569SMax Filippov select HAVE_VIRT_CPU_ACCOUNTING_GEN 56920f8a39SMax Filippov select IRQ_DOMAIN 57a050ba1eSLinus Torvalds select LOCK_MM_AND_FIND_VMA 58920f8a39SMax Filippov select MODULES_USE_ELF_RELA 59db8165f5SMax Filippov select PERF_USE_VMALLOC 604aae683fSMasahiro Yamada select TRACE_IRQFLAGS_SUPPORT 618e1a6dd2SChris Zankel help 628e1a6dd2SChris Zankel Xtensa processors are 32-bit RISC machines designed by Tensilica 638e1a6dd2SChris Zankel primarily for embedded systems. These processors are both 648e1a6dd2SChris Zankel configurable and extensible. The Linux port to the Xtensa 658e1a6dd2SChris Zankel architecture supports all processor configurations and extensions, 668e1a6dd2SChris Zankel with reasonable minimum requirements. The Xtensa Linux project has 670ada4490SMasanari Iida a home page at <http://www.linux-xtensa.org/>. 688e1a6dd2SChris Zankel 69d4337aa5SAkinobu Mitaconfig GENERIC_HWEIGHT 7035f9cd08SJohannes Weiner def_bool y 71d4337aa5SAkinobu Mita 72f0d1b0b3SDavid Howellsconfig ARCH_HAS_ILOG2_U32 7335f9cd08SJohannes Weiner def_bool n 74f0d1b0b3SDavid Howells 75f0d1b0b3SDavid Howellsconfig ARCH_HAS_ILOG2_U64 7635f9cd08SJohannes Weiner def_bool n 77f0d1b0b3SDavid Howells 7803ce34cfSMax Filippovconfig ARCH_MTD_XIP 7903ce34cfSMax Filippov def_bool y 8003ce34cfSMax Filippov 81ce816fa8SUwe Kleine-Königconfig NO_IOPORT_MAP 82d046f77eSMax Filippov def_bool n 835ea81769SAl Viro 84bdc80787SH. Peter Anvinconfig HZ 85bdc80787SH. Peter Anvin int 86bdc80787SH. Peter Anvin default 100 87bdc80787SH. Peter Anvin 888f371c75SMax Filippovconfig LOCKDEP_SUPPORT 898f371c75SMax Filippov def_bool y 908f371c75SMax Filippov 913e4196a5SMax Filippovconfig STACKTRACE_SUPPORT 923e4196a5SMax Filippov def_bool y 933e4196a5SMax Filippov 9435f9cd08SJohannes Weinerconfig MMU 95de7c1c78SMax Filippov def_bool n 96a8f0c31fSMax Filippov select PFAULT 9735f9cd08SJohannes Weiner 98a1a2bdecSBaruch Siachconfig HAVE_XTENSA_GPIO32 99a1a2bdecSBaruch Siach def_bool n 100a1a2bdecSBaruch Siach 101c633544aSMax Filippovconfig KASAN_SHADOW_OFFSET 102c633544aSMax Filippov hex 103c633544aSMax Filippov default 0x6e400000 104c633544aSMax Filippov 105c425c546SMasahiro Yamadaconfig CPU_BIG_ENDIAN 106c425c546SMasahiro Yamada def_bool $(success,test "$(shell,echo __XTENSA_EB__ | $(CC) -E -P -)" = 1) 107c425c546SMasahiro Yamada 108c425c546SMasahiro Yamadaconfig CPU_LITTLE_ENDIAN 109c425c546SMasahiro Yamada def_bool !CPU_BIG_ENDIAN 110c425c546SMasahiro Yamada 111c20e1117SMax Filippovconfig CC_HAVE_CALL0_ABI 112c20e1117SMax Filippov def_bool $(success,test "$(shell,echo __XTENSA_CALL0_ABI__ | $(CC) -mabi=call0 -E -P - 2>/dev/null)" = 1) 113c20e1117SMax Filippov 1148e1a6dd2SChris Zankelmenu "Processor type and features" 1158e1a6dd2SChris Zankel 1168e1a6dd2SChris Zankelchoice 1178e1a6dd2SChris Zankel prompt "Xtensa Processor Configuration" 118173d6681SChris Zankel default XTENSA_VARIANT_FSF 1198e1a6dd2SChris Zankel 120173d6681SChris Zankelconfig XTENSA_VARIANT_FSF 1210025427eSChris Zankel bool "fsf - default (not generic) configuration" 12235f9cd08SJohannes Weiner select MMU 1230025427eSChris Zankel 1240025427eSChris Zankelconfig XTENSA_VARIANT_DC232B 1250025427eSChris Zankel bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" 12635f9cd08SJohannes Weiner select MMU 127a1a2bdecSBaruch Siach select HAVE_XTENSA_GPIO32 1280025427eSChris Zankel help 1290025427eSChris Zankel This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). 130000af2c5SJohannes Weiner 131d0b73b48SPete Delaneyconfig XTENSA_VARIANT_DC233C 132d0b73b48SPete Delaney bool "dc233c - Diamond 233L Standard Core Rev.C (LE)" 133d0b73b48SPete Delaney select MMU 134a1a2bdecSBaruch Siach select HAVE_XTENSA_GPIO32 135d0b73b48SPete Delaney help 136d0b73b48SPete Delaney This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE). 137d0b73b48SPete Delaney 138420ae951SMax Filippovconfig XTENSA_VARIANT_CUSTOM 139420ae951SMax Filippov bool "Custom Xtensa processor configuration" 140420ae951SMax Filippov select HAVE_XTENSA_GPIO32 141420ae951SMax Filippov help 142420ae951SMax Filippov Select this variant to use a custom Xtensa processor configuration. 143420ae951SMax Filippov You will be prompted for a processor variant CORENAME. 1448e1a6dd2SChris Zankelendchoice 1458e1a6dd2SChris Zankel 146420ae951SMax Filippovconfig XTENSA_VARIANT_CUSTOM_NAME 147420ae951SMax Filippov string "Xtensa Processor Custom Core Variant Name" 148420ae951SMax Filippov depends on XTENSA_VARIANT_CUSTOM 149420ae951SMax Filippov help 150420ae951SMax Filippov Provide the name of a custom Xtensa processor variant. 1514ea6babbSYujie Liu This CORENAME selects arch/xtensa/variants/CORENAME. 15270cbddb9SHu Haowen Don't forget you have to select MMU if you have one. 153420ae951SMax Filippov 154420ae951SMax Filippovconfig XTENSA_VARIANT_NAME 155420ae951SMax Filippov string 156420ae951SMax Filippov default "dc232b" if XTENSA_VARIANT_DC232B 157420ae951SMax Filippov default "dc233c" if XTENSA_VARIANT_DC233C 158420ae951SMax Filippov default "fsf" if XTENSA_VARIANT_FSF 159420ae951SMax Filippov default XTENSA_VARIANT_CUSTOM_NAME if XTENSA_VARIANT_CUSTOM 160420ae951SMax Filippov 161420ae951SMax Filippovconfig XTENSA_VARIANT_MMU 162420ae951SMax Filippov bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)" 163420ae951SMax Filippov depends on XTENSA_VARIANT_CUSTOM 164420ae951SMax Filippov default y 165de7c1c78SMax Filippov select MMU 166420ae951SMax Filippov help 167420ae951SMax Filippov Build a Conventional Kernel with full MMU support, 168420ae951SMax Filippov ie: it supports a TLB with auto-loading, page protection. 169420ae951SMax Filippov 1709bd46da4SMax Filippovconfig XTENSA_VARIANT_HAVE_PERF_EVENTS 1719bd46da4SMax Filippov bool "Core variant has Performance Monitor Module" 1729bd46da4SMax Filippov depends on XTENSA_VARIANT_CUSTOM 1739bd46da4SMax Filippov default n 1749bd46da4SMax Filippov help 1759bd46da4SMax Filippov Enable if core variant has Performance Monitor Module with 1769bd46da4SMax Filippov External Registers Interface. 1779bd46da4SMax Filippov 1789bd46da4SMax Filippov If unsure, say N. 1799bd46da4SMax Filippov 180e4629194SMax Filippovconfig XTENSA_FAKE_NMI 181e4629194SMax Filippov bool "Treat PMM IRQ as NMI" 182e4629194SMax Filippov depends on XTENSA_VARIANT_HAVE_PERF_EVENTS 183e4629194SMax Filippov default n 184e4629194SMax Filippov help 185e4629194SMax Filippov If PMM IRQ is the only IRQ at EXCM level it is safe to 186e4629194SMax Filippov treat it as NMI, which improves accuracy of profiling. 187e4629194SMax Filippov 188e4629194SMax Filippov If there are other interrupts at or above PMM IRQ priority level 189e4629194SMax Filippov but not above the EXCM level, PMM IRQ still may be treated as NMI, 190e4629194SMax Filippov but only if these IRQs are not used. There will be a build warning 191e4629194SMax Filippov saying that this is not safe, and a bugcheck if one of these IRQs 192e4629194SMax Filippov actually fire. 193e4629194SMax Filippov 194e4629194SMax Filippov If unsure, say N. 195e4629194SMax Filippov 196a8f0c31fSMax Filippovconfig PFAULT 197a8f0c31fSMax Filippov bool "Handle protection faults" if EXPERT && !MMU 198a8f0c31fSMax Filippov default y 199a8f0c31fSMax Filippov help 200a8f0c31fSMax Filippov Handle protection faults. MMU configurations must enable it. 201a8f0c31fSMax Filippov noMMU configurations may disable it if used memory map never 202a8f0c31fSMax Filippov generates protection faults or faults are always fatal. 203a8f0c31fSMax Filippov 204a8f0c31fSMax Filippov If unsure, say Y. 205a8f0c31fSMax Filippov 2068e1a6dd2SChris Zankelconfig XTENSA_UNALIGNED_USER 207ad33cc80SCorentin Labbe bool "Unaligned memory access in user space" 20835f9cd08SJohannes Weiner help 2098e1a6dd2SChris Zankel The Xtensa architecture currently does not handle unaligned 2108e1a6dd2SChris Zankel memory accesses in hardware but through an exception handler. 2118e1a6dd2SChris Zankel Per default, unaligned memory accesses are disabled in user space. 2128e1a6dd2SChris Zankel 2138e1a6dd2SChris Zankel Say Y here to enable unaligned memory access in user space. 2148e1a6dd2SChris Zankel 215f29cf776SMax Filippovconfig XTENSA_LOAD_STORE 216f29cf776SMax Filippov bool "Load/store exception handler for memory only readable with l32" 217f29cf776SMax Filippov help 218f29cf776SMax Filippov The Xtensa architecture only allows reading memory attached to its 219f29cf776SMax Filippov instruction bus with l32r and l32i instructions, all other 220f29cf776SMax Filippov instructions raise an exception with the LoadStoreErrorCause code. 221f29cf776SMax Filippov This makes it hard to use some configurations, e.g. store string 222f29cf776SMax Filippov literals in FLASH memory attached to the instruction bus. 223f29cf776SMax Filippov 224f29cf776SMax Filippov Say Y here to enable exception handler that allows transparent 225f29cf776SMax Filippov byte and 2-byte access to memory attached to instruction bus. 226f29cf776SMax Filippov 227f615136cSMax Filippovconfig HAVE_SMP 228f615136cSMax Filippov bool "System Supports SMP (MX)" 229de7c1c78SMax Filippov depends on XTENSA_VARIANT_CUSTOM 230f615136cSMax Filippov select XTENSA_MX 231f615136cSMax Filippov help 23258bc6c69SRandy Dunlap This option is used to indicate that the system-on-a-chip (SOC) 233f615136cSMax Filippov supports Multiprocessing. Multiprocessor support implemented above 234f615136cSMax Filippov the CPU core definition and currently needs to be selected manually. 235f615136cSMax Filippov 23658bc6c69SRandy Dunlap Multiprocessor support is implemented with external cache and 237769a12a9SMasanari Iida interrupt controllers. 238f615136cSMax Filippov 239f615136cSMax Filippov The MX interrupt distributer adds Interprocessor Interrupts 240f615136cSMax Filippov and causes the IRQ numbers to be increased by 4 for devices 241f615136cSMax Filippov like the open cores ethernet driver and the serial interface. 242f615136cSMax Filippov 243f615136cSMax Filippov You still have to select "Enable SMP" to enable SMP on this SOC. 244f615136cSMax Filippov 245f615136cSMax Filippovconfig SMP 246f615136cSMax Filippov bool "Enable Symmetric multi-processing support" 247f615136cSMax Filippov depends on HAVE_SMP 248f615136cSMax Filippov select GENERIC_SMP_IDLE_THREAD 249f615136cSMax Filippov help 250f615136cSMax Filippov Enabled SMP Software; allows more than one CPU/CORE 251f615136cSMax Filippov to be activated during startup. 252f615136cSMax Filippov 253f615136cSMax Filippovconfig NR_CPUS 254f615136cSMax Filippov depends on SMP 255f615136cSMax Filippov int "Maximum number of CPUs (2-32)" 256f615136cSMax Filippov range 2 32 257f615136cSMax Filippov default "4" 258f615136cSMax Filippov 25949b424feSMax Filippovconfig HOTPLUG_CPU 26049b424feSMax Filippov bool "Enable CPU hotplug support" 26149b424feSMax Filippov depends on SMP 26249b424feSMax Filippov help 26349b424feSMax Filippov Say Y here to allow turning CPUs off and on. CPUs can be 26449b424feSMax Filippov controlled through /sys/devices/system/cpu. 26549b424feSMax Filippov 26649b424feSMax Filippov Say N if you want to disable CPU hotplug. 26749b424feSMax Filippov 26889b184f9SMax Filippovconfig SECONDARY_RESET_VECTOR 26989b184f9SMax Filippov bool "Secondary cores use alternative reset vector" 27089b184f9SMax Filippov default y 27189b184f9SMax Filippov depends on HAVE_SMP 27289b184f9SMax Filippov help 27389b184f9SMax Filippov Secondary cores may be configured to use alternative reset vector, 27489b184f9SMax Filippov or all cores may use primary reset vector. 27589b184f9SMax Filippov Say Y here to supply handler for the alternative reset location. 27689b184f9SMax Filippov 2779184289cSMax Filippovconfig FAST_SYSCALL_XTENSA 2789184289cSMax Filippov bool "Enable fast atomic syscalls" 2799184289cSMax Filippov default n 2809184289cSMax Filippov help 2819184289cSMax Filippov fast_syscall_xtensa is a syscall that can make atomic operations 2829184289cSMax Filippov on UP kernel when processor has no s32c1i support. 2839184289cSMax Filippov 2849184289cSMax Filippov This syscall is deprecated. It may have issues when called with 2859184289cSMax Filippov invalid arguments. It is provided only for backwards compatibility. 2869184289cSMax Filippov Only enable it if your userspace software requires it. 2879184289cSMax Filippov 2889184289cSMax Filippov If unsure, say N. 2899184289cSMax Filippov 2909184289cSMax Filippovconfig FAST_SYSCALL_SPILL_REGISTERS 2919184289cSMax Filippov bool "Enable spill registers syscall" 2929184289cSMax Filippov default n 2939184289cSMax Filippov help 2949184289cSMax Filippov fast_syscall_spill_registers is a syscall that spills all active 2959184289cSMax Filippov register windows of a calling userspace task onto its stack. 2969184289cSMax Filippov 2979184289cSMax Filippov This syscall is deprecated. It may have issues when called with 2989184289cSMax Filippov invalid arguments. It is provided only for backwards compatibility. 2999184289cSMax Filippov Only enable it if your userspace software requires it. 3009184289cSMax Filippov 3019184289cSMax Filippov If unsure, say N. 3029184289cSMax Filippov 303c20e1117SMax Filippovchoice 304c20e1117SMax Filippov prompt "Kernel ABI" 305c20e1117SMax Filippov default KERNEL_ABI_DEFAULT 306c20e1117SMax Filippov help 307c20e1117SMax Filippov Select ABI for the kernel code. This ABI is independent of the 308c20e1117SMax Filippov supported userspace ABI and any combination of the 309c20e1117SMax Filippov kernel/userspace ABI is possible and should work. 310c20e1117SMax Filippov 311c20e1117SMax Filippov In case both kernel and userspace support only call0 ABI 312c20e1117SMax Filippov all register windows support code will be omitted from the 313c20e1117SMax Filippov build. 314c20e1117SMax Filippov 315c20e1117SMax Filippov If unsure, choose the default ABI. 316c20e1117SMax Filippov 317c20e1117SMax Filippovconfig KERNEL_ABI_DEFAULT 318c20e1117SMax Filippov bool "Default ABI" 319c20e1117SMax Filippov help 320c20e1117SMax Filippov Select this option to compile kernel code with the default ABI 321c20e1117SMax Filippov selected for the toolchain. 322c20e1117SMax Filippov Normally cores with windowed registers option use windowed ABI and 323c20e1117SMax Filippov cores without it use call0 ABI. 324c20e1117SMax Filippov 325c20e1117SMax Filippovconfig KERNEL_ABI_CALL0 326c20e1117SMax Filippov bool "Call0 ABI" if CC_HAVE_CALL0_ABI 327c20e1117SMax Filippov help 328c20e1117SMax Filippov Select this option to compile kernel code with call0 ABI even with 329c20e1117SMax Filippov toolchain that defaults to windowed ABI. 330c20e1117SMax Filippov When this option is not selected the default toolchain ABI will 331c20e1117SMax Filippov be used for the kernel code. 332c20e1117SMax Filippov 333c20e1117SMax Filippovendchoice 334c20e1117SMax Filippov 33509f8a6dbSMax Filippovconfig USER_ABI_CALL0 33609f8a6dbSMax Filippov bool 33709f8a6dbSMax Filippov 33809f8a6dbSMax Filippovchoice 33909f8a6dbSMax Filippov prompt "Userspace ABI" 34009f8a6dbSMax Filippov default USER_ABI_DEFAULT 34109f8a6dbSMax Filippov help 34209f8a6dbSMax Filippov Select supported userspace ABI. 34309f8a6dbSMax Filippov 34409f8a6dbSMax Filippov If unsure, choose the default ABI. 34509f8a6dbSMax Filippov 34609f8a6dbSMax Filippovconfig USER_ABI_DEFAULT 34709f8a6dbSMax Filippov bool "Default ABI only" 34809f8a6dbSMax Filippov help 34909f8a6dbSMax Filippov Assume default userspace ABI. For XEA2 cores it is windowed ABI. 35009f8a6dbSMax Filippov call0 ABI binaries may be run on such kernel, but signal delivery 35109f8a6dbSMax Filippov will not work correctly for them. 35209f8a6dbSMax Filippov 35309f8a6dbSMax Filippovconfig USER_ABI_CALL0_ONLY 35409f8a6dbSMax Filippov bool "Call0 ABI only" 35509f8a6dbSMax Filippov select USER_ABI_CALL0 35609f8a6dbSMax Filippov help 35709f8a6dbSMax Filippov Select this option to support only call0 ABI in userspace. 35809f8a6dbSMax Filippov Windowed ABI binaries will crash with a segfault caused by 35909f8a6dbSMax Filippov an illegal instruction exception on the first 'entry' opcode. 36009f8a6dbSMax Filippov 36109f8a6dbSMax Filippov Choose this option if you're planning to run only user code 36209f8a6dbSMax Filippov built with call0 ABI. 36309f8a6dbSMax Filippov 36409f8a6dbSMax Filippovconfig USER_ABI_CALL0_PROBE 36509f8a6dbSMax Filippov bool "Support both windowed and call0 ABI by probing" 36609f8a6dbSMax Filippov select USER_ABI_CALL0 36709f8a6dbSMax Filippov help 36809f8a6dbSMax Filippov Select this option to support both windowed and call0 userspace 36909f8a6dbSMax Filippov ABIs. When enabled all processes are started with PS.WOE disabled 37009f8a6dbSMax Filippov and a fast user exception handler for an illegal instruction is 37109f8a6dbSMax Filippov used to turn on PS.WOE bit on the first 'entry' opcode executed by 37209f8a6dbSMax Filippov the userspace. 37309f8a6dbSMax Filippov 37409f8a6dbSMax Filippov This option should be enabled for the kernel that must support 37509f8a6dbSMax Filippov both call0 and windowed ABIs in userspace at the same time. 37609f8a6dbSMax Filippov 37709f8a6dbSMax Filippov Note that Xtensa ISA does not guarantee that entry opcode will 37809f8a6dbSMax Filippov raise an illegal instruction exception on cores with XEA2 when 37909f8a6dbSMax Filippov PS.WOE is disabled, check whether the target core supports it. 38009f8a6dbSMax Filippov 38109f8a6dbSMax Filippovendchoice 38209f8a6dbSMax Filippov 3838e1a6dd2SChris Zankelendmenu 3848e1a6dd2SChris Zankel 38535f9cd08SJohannes Weinerconfig XTENSA_CALIBRATE_CCOUNT 38635f9cd08SJohannes Weiner def_bool n 38735f9cd08SJohannes Weiner help 38835f9cd08SJohannes Weiner On some platforms (XT2000, for example), the CPU clock rate can 38935f9cd08SJohannes Weiner vary. The frequency can be determined, however, by measuring 39035f9cd08SJohannes Weiner against a well known, fixed frequency, such as an UART oscillator. 39135f9cd08SJohannes Weiner 39235f9cd08SJohannes Weinerconfig SERIAL_CONSOLE 39335f9cd08SJohannes Weiner def_bool n 39435f9cd08SJohannes Weiner 3957af710d9SMax Filippovconfig PLATFORM_HAVE_XIP 3967af710d9SMax Filippov def_bool n 3977af710d9SMax Filippov 3988e1a6dd2SChris Zankelmenu "Platform options" 3998e1a6dd2SChris Zankel 4008e1a6dd2SChris Zankelchoice 4018e1a6dd2SChris Zankel prompt "Xtensa System Type" 4028e1a6dd2SChris Zankel default XTENSA_PLATFORM_ISS 4038e1a6dd2SChris Zankel 4048e1a6dd2SChris Zankelconfig XTENSA_PLATFORM_ISS 4058e1a6dd2SChris Zankel bool "ISS" 40635f9cd08SJohannes Weiner select XTENSA_CALIBRATE_CCOUNT 40735f9cd08SJohannes Weiner select SERIAL_CONSOLE 4088e1a6dd2SChris Zankel help 4098e1a6dd2SChris Zankel ISS is an acronym for Tensilica's Instruction Set Simulator. 4108e1a6dd2SChris Zankel 4118e1a6dd2SChris Zankelconfig XTENSA_PLATFORM_XT2000 4128e1a6dd2SChris Zankel bool "XT2000" 4138e1a6dd2SChris Zankel help 4148e1a6dd2SChris Zankel XT2000 is the name of Tensilica's feature-rich emulation platform. 4158e1a6dd2SChris Zankel This hardware is capable of running a full Linux distribution. 4168e1a6dd2SChris Zankel 4170d456badSMax Filippovconfig XTENSA_PLATFORM_XTFPGA 4180d456badSMax Filippov bool "XTFPGA" 41961e47e9bSMax Filippov select ETHOC if ETHERNET 4203de00482SMax Filippov select PLATFORM_WANT_DEFAULT_MEM if !MMU 4210d456badSMax Filippov select SERIAL_CONSOLE 4220d456badSMax Filippov select XTENSA_CALIBRATE_CCOUNT 4237af710d9SMax Filippov select PLATFORM_HAVE_XIP 4240d456badSMax Filippov help 4250d456badSMax Filippov XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 4260d456badSMax Filippov This hardware is capable of running a full Linux distribution. 4270d456badSMax Filippov 4288e1a6dd2SChris Zankelendchoice 4298e1a6dd2SChris Zankel 430994fa1c8SMax Filippovconfig PLATFORM_NR_IRQS 431994fa1c8SMax Filippov int 432994fa1c8SMax Filippov default 3 if XTENSA_PLATFORM_XT2000 433994fa1c8SMax Filippov default 0 4348e1a6dd2SChris Zankel 4358e1a6dd2SChris Zankelconfig XTENSA_CPU_CLOCK 4368e1a6dd2SChris Zankel int "CPU clock rate [MHz]" 4378e1a6dd2SChris Zankel depends on !XTENSA_CALIBRATE_CCOUNT 43835f9cd08SJohannes Weiner default 16 4398e1a6dd2SChris Zankel 4408e1a6dd2SChris Zankelconfig GENERIC_CALIBRATE_DELAY 4418e1a6dd2SChris Zankel bool "Auto calibration of the BogoMIPS value" 44235f9cd08SJohannes Weiner help 44382300bf4SChris Zankel The BogoMIPS value can easily be derived from the CPU frequency. 4448e1a6dd2SChris Zankel 4458e1a6dd2SChris Zankelconfig CMDLINE_BOOL 4468e1a6dd2SChris Zankel bool "Default bootloader kernel arguments" 4478e1a6dd2SChris Zankel 4488e1a6dd2SChris Zankelconfig CMDLINE 4498e1a6dd2SChris Zankel string "Initial kernel command string" 4508e1a6dd2SChris Zankel depends on CMDLINE_BOOL 4518e1a6dd2SChris Zankel default "console=ttyS0,38400 root=/dev/ram" 4528e1a6dd2SChris Zankel help 4538e1a6dd2SChris Zankel On some architectures (EBSA110 and CATS), there is currently no way 4548e1a6dd2SChris Zankel for the boot loader to pass arguments to the kernel. For these 4558e1a6dd2SChris Zankel architectures, you should supply some command-line options at build 4568e1a6dd2SChris Zankel time by entering them here. As a minimum, you should specify the 4578e1a6dd2SChris Zankel memory size and the root device (e.g., mem=64M root=/dev/nfs). 4588e1a6dd2SChris Zankel 459da844a81SMax Filippovconfig USE_OF 460da844a81SMax Filippov bool "Flattened Device Tree support" 461da844a81SMax Filippov select OF 462da844a81SMax Filippov select OF_EARLY_FLATTREE 463da844a81SMax Filippov help 464da844a81SMax Filippov Include support for flattened device tree machine descriptions. 465da844a81SMax Filippov 466*47812144SMasahiro Yamadaconfig BUILTIN_DTB_NAME 467da844a81SMax Filippov string "DTB to build into the kernel image" 468da844a81SMax Filippov depends on OF 469da844a81SMax Filippov 470baac1d36SMax Filippovconfig PARSE_BOOTPARAM 471baac1d36SMax Filippov bool "Parse bootparam block" 472baac1d36SMax Filippov default y 473baac1d36SMax Filippov help 474baac1d36SMax Filippov Parse parameters passed to the kernel from the bootloader. It may 475baac1d36SMax Filippov be disabled if the kernel is known to run without the bootloader. 476baac1d36SMax Filippov 477baac1d36SMax Filippov If unsure, say Y. 478baac1d36SMax Filippov 4796a8eb99eSMax Filippovchoice 4806a8eb99eSMax Filippov prompt "Semihosting interface" 4816a8eb99eSMax Filippov default XTENSA_SIMCALL_ISS 4826a8eb99eSMax Filippov depends on XTENSA_PLATFORM_ISS 4836a8eb99eSMax Filippov help 4846a8eb99eSMax Filippov Choose semihosting interface that will be used for serial port, 4856a8eb99eSMax Filippov block device and networking. 4866a8eb99eSMax Filippov 4876a8eb99eSMax Filippovconfig XTENSA_SIMCALL_ISS 4886a8eb99eSMax Filippov bool "simcall" 4896a8eb99eSMax Filippov help 4906a8eb99eSMax Filippov Use simcall instruction. simcall is only available on simulators, 4916a8eb99eSMax Filippov it does nothing on hardware. 4926a8eb99eSMax Filippov 4936a8eb99eSMax Filippovconfig XTENSA_SIMCALL_GDBIO 4946a8eb99eSMax Filippov bool "GDBIO" 4956a8eb99eSMax Filippov help 4966a8eb99eSMax Filippov Use break instruction. It is available on real hardware when GDB 4976a8eb99eSMax Filippov is attached to it via JTAG. 4986a8eb99eSMax Filippov 4996a8eb99eSMax Filippovendchoice 5006a8eb99eSMax Filippov 501b6c7e873SVictor Prupisconfig BLK_DEV_SIMDISK 502b6c7e873SVictor Prupis tristate "Host file-based simulated block device support" 503b6c7e873SVictor Prupis default n 5047a0684cdSMax Filippov depends on XTENSA_PLATFORM_ISS && BLOCK 505b6c7e873SVictor Prupis help 506b6c7e873SVictor Prupis Create block devices that map to files in the host file system. 507b6c7e873SVictor Prupis Device binding to host file may be changed at runtime via proc 508b6c7e873SVictor Prupis interface provided the device is not in use. 509b6c7e873SVictor Prupis 510b6c7e873SVictor Prupisconfig BLK_DEV_SIMDISK_COUNT 511b6c7e873SVictor Prupis int "Number of host file-based simulated block devices" 512b6c7e873SVictor Prupis range 1 10 513b6c7e873SVictor Prupis depends on BLK_DEV_SIMDISK 514b6c7e873SVictor Prupis default 2 515b6c7e873SVictor Prupis help 516b6c7e873SVictor Prupis This is the default minimal number of created block devices. 517b6c7e873SVictor Prupis Kernel/module parameter 'simdisk_count' may be used to change this 518b6c7e873SVictor Prupis value at runtime. More file names (but no more than 10) may be 519b6c7e873SVictor Prupis specified as parameters, simdisk_count grows accordingly. 520b6c7e873SVictor Prupis 521b6c7e873SVictor Prupisconfig SIMDISK0_FILENAME 522b6c7e873SVictor Prupis string "Host filename for the first simulated device" 523b6c7e873SVictor Prupis depends on BLK_DEV_SIMDISK = y 524b6c7e873SVictor Prupis default "" 525b6c7e873SVictor Prupis help 526b6c7e873SVictor Prupis Attach a first simdisk to a host file. Conventionally, this file 527b6c7e873SVictor Prupis contains a root file system. 528b6c7e873SVictor Prupis 529b6c7e873SVictor Prupisconfig SIMDISK1_FILENAME 530b6c7e873SVictor Prupis string "Host filename for the second simulated device" 531b6c7e873SVictor Prupis depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 532b6c7e873SVictor Prupis default "" 533b6c7e873SVictor Prupis help 534b6c7e873SVictor Prupis Another simulated disk in a host file for a buildroot-independent 535b6c7e873SVictor Prupis storage. 536b6c7e873SVictor Prupis 5374949009eSMax Filippovconfig XTFPGA_LCD 5384949009eSMax Filippov bool "Enable XTFPGA LCD driver" 5394949009eSMax Filippov depends on XTENSA_PLATFORM_XTFPGA 5404949009eSMax Filippov default n 5414949009eSMax Filippov help 5424949009eSMax Filippov There's a 2x16 LCD on most of XTFPGA boards, kernel may output 5434949009eSMax Filippov progress messages there during bootup/shutdown. It may be useful 5444949009eSMax Filippov during board bringup. 5454949009eSMax Filippov 5464949009eSMax Filippov If unsure, say N. 5474949009eSMax Filippov 5484949009eSMax Filippovconfig XTFPGA_LCD_BASE_ADDR 5494949009eSMax Filippov hex "XTFPGA LCD base address" 5504949009eSMax Filippov depends on XTFPGA_LCD 5514949009eSMax Filippov default "0x0d0c0000" 5524949009eSMax Filippov help 5534949009eSMax Filippov Base address of the LCD controller inside KIO region. 5544949009eSMax Filippov Different boards from XTFPGA family have LCD controller at different 5554949009eSMax Filippov addresses. Please consult prototyping user guide for your board for 5564949009eSMax Filippov the correct address. Wrong address here may lead to hardware lockup. 5574949009eSMax Filippov 5584949009eSMax Filippovconfig XTFPGA_LCD_8BIT_ACCESS 5594949009eSMax Filippov bool "Use 8-bit access to XTFPGA LCD" 5604949009eSMax Filippov depends on XTFPGA_LCD 5614949009eSMax Filippov default n 5624949009eSMax Filippov help 5634949009eSMax Filippov LCD may be connected with 4- or 8-bit interface, 8-bit access may 5644949009eSMax Filippov only be used with 8-bit interface. Please consult prototyping user 5654949009eSMax Filippov guide for your board for the correct interface width. 5664949009eSMax Filippov 56776743c0eSMax Filippovcomment "Kernel memory layout" 56876743c0eSMax Filippov 56976743c0eSMax Filippovconfig INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 57076743c0eSMax Filippov bool "Initialize Xtensa MMU inside the Linux kernel code" 57176743c0eSMax Filippov depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B 57276743c0eSMax Filippov default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM 57376743c0eSMax Filippov help 57476743c0eSMax Filippov Earlier version initialized the MMU in the exception vector 57576743c0eSMax Filippov before jumping to _startup in head.S and had an advantage that 57676743c0eSMax Filippov it was possible to place a software breakpoint at 'reset' and 57776743c0eSMax Filippov then enter your normal kernel breakpoints once the MMU was mapped 57876743c0eSMax Filippov to the kernel mappings (0XC0000000). 57976743c0eSMax Filippov 5808a128bc3SColin Ian King This unfortunately won't work for U-Boot and likely also won't 58176743c0eSMax Filippov work for using KEXEC to have a hot kernel ready for doing a 58276743c0eSMax Filippov KDUMP. 58376743c0eSMax Filippov 58476743c0eSMax Filippov So now the MMU is initialized in head.S but it's necessary to 58576743c0eSMax Filippov use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 58676743c0eSMax Filippov xt-gdb can't place a Software Breakpoint in the 0XD region prior 58776743c0eSMax Filippov to mapping the MMU and after mapping even if the area of low memory 58876743c0eSMax Filippov was mapped gdb wouldn't remove the breakpoint on hitting it as the 58976743c0eSMax Filippov PC wouldn't match. Since Hardware Breakpoints are recommended for 59076743c0eSMax Filippov Linux configurations it seems reasonable to just assume they exist 59176743c0eSMax Filippov and leave this older mechanism for unfortunate souls that choose 59276743c0eSMax Filippov not to follow Tensilica's recommendation. 59376743c0eSMax Filippov 59476743c0eSMax Filippov Selecting this will cause U-Boot to set the KERNEL Load and Entry 59576743c0eSMax Filippov address at 0x00003000 instead of the mapped std of 0xD0003000. 59676743c0eSMax Filippov 59776743c0eSMax Filippov If in doubt, say Y. 59876743c0eSMax Filippov 5997af710d9SMax Filippovconfig XIP_KERNEL 6007af710d9SMax Filippov bool "Kernel Execute-In-Place from ROM" 6017af710d9SMax Filippov depends on PLATFORM_HAVE_XIP 6027af710d9SMax Filippov help 6037af710d9SMax Filippov Execute-In-Place allows the kernel to run from non-volatile storage 6047af710d9SMax Filippov directly addressable by the CPU, such as NOR flash. This saves RAM 6057af710d9SMax Filippov space since the text section of the kernel is not loaded from flash 6067af710d9SMax Filippov to RAM. Read-write sections, such as the data section and stack, 6077af710d9SMax Filippov are still copied to RAM. The XIP kernel is not compressed since 6087af710d9SMax Filippov it has to run directly from flash, so it will take more space to 6097af710d9SMax Filippov store it. The flash address used to link the kernel object files, 6107af710d9SMax Filippov and for storing it, is configuration dependent. Therefore, if you 6117af710d9SMax Filippov say Y here, you must know the proper physical address where to 6127af710d9SMax Filippov store the kernel image depending on your own flash memory usage. 6137af710d9SMax Filippov 6147af710d9SMax Filippov Also note that the make target becomes "make xipImage" rather than 6157af710d9SMax Filippov "make Image" or "make uImage". The final kernel binary to put in 6167af710d9SMax Filippov ROM memory will be arch/xtensa/boot/xipImage. 6177af710d9SMax Filippov 6187af710d9SMax Filippov If unsure, say N. 6197af710d9SMax Filippov 62076743c0eSMax Filippovconfig MEMMAP_CACHEATTR 62176743c0eSMax Filippov hex "Cache attributes for the memory address space" 62276743c0eSMax Filippov depends on !MMU 62376743c0eSMax Filippov default 0x22222222 62476743c0eSMax Filippov help 62576743c0eSMax Filippov These cache attributes are set up for noMMU systems. Each hex digit 62676743c0eSMax Filippov specifies cache attributes for the corresponding 512MB memory 62776743c0eSMax Filippov region: bits 0..3 -- for addresses 0x00000000..0x1fffffff, 62876743c0eSMax Filippov bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on. 62976743c0eSMax Filippov 63076743c0eSMax Filippov Cache attribute values are specific for the MMU type. 63176743c0eSMax Filippov For region protection MMUs: 63276743c0eSMax Filippov 1: WT cached, 63376743c0eSMax Filippov 2: cache bypass, 63476743c0eSMax Filippov 4: WB cached, 63576743c0eSMax Filippov f: illegal. 6362a9b29b2SRandy Dunlap For full MMU: 63776743c0eSMax Filippov bit 0: executable, 63876743c0eSMax Filippov bit 1: writable, 63976743c0eSMax Filippov bits 2..3: 64076743c0eSMax Filippov 0: cache bypass, 64176743c0eSMax Filippov 1: WB cache, 64276743c0eSMax Filippov 2: WT cache, 64376743c0eSMax Filippov 3: special (c and e are illegal, f is reserved). 64476743c0eSMax Filippov For MPU: 64576743c0eSMax Filippov 0: illegal, 64676743c0eSMax Filippov 1: WB cache, 64776743c0eSMax Filippov 2: WB, no-write-allocate cache, 64876743c0eSMax Filippov 3: WT cache, 64976743c0eSMax Filippov 4: cache bypass. 65076743c0eSMax Filippov 65176743c0eSMax Filippovconfig KSEG_PADDR 65276743c0eSMax Filippov hex "Physical address of the KSEG mapping" 65376743c0eSMax Filippov depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU 65476743c0eSMax Filippov default 0x00000000 65576743c0eSMax Filippov help 65676743c0eSMax Filippov This is the physical address where KSEG is mapped. Please refer to 65776743c0eSMax Filippov the chosen KSEG layout help for the required address alignment. 65876743c0eSMax Filippov Unpacked kernel image (including vectors) must be located completely 65976743c0eSMax Filippov within KSEG. 66076743c0eSMax Filippov Physical memory below this address is not available to linux. 66176743c0eSMax Filippov 66276743c0eSMax Filippov If unsure, leave the default value here. 66376743c0eSMax Filippov 6647af710d9SMax Filippovconfig KERNEL_VIRTUAL_ADDRESS 6657af710d9SMax Filippov hex "Kernel virtual address" 6667af710d9SMax Filippov depends on MMU && XIP_KERNEL 6677af710d9SMax Filippov default 0xd0003000 6687af710d9SMax Filippov help 6697af710d9SMax Filippov This is the virtual address where the XIP kernel is mapped. 6707af710d9SMax Filippov XIP kernel may be mapped into KSEG or KIO region, virtual address 6717af710d9SMax Filippov provided here must match kernel load address provided in 6727af710d9SMax Filippov KERNEL_LOAD_ADDRESS. 6737af710d9SMax Filippov 67476743c0eSMax Filippovconfig KERNEL_LOAD_ADDRESS 67576743c0eSMax Filippov hex "Kernel load address" 67676743c0eSMax Filippov default 0x60003000 if !MMU 67776743c0eSMax Filippov default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 67876743c0eSMax Filippov default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 67976743c0eSMax Filippov help 68076743c0eSMax Filippov This is the address where the kernel is loaded. 68176743c0eSMax Filippov It is virtual address for MMUv2 configurations and physical address 68276743c0eSMax Filippov for all other configurations. 68376743c0eSMax Filippov 68476743c0eSMax Filippov If unsure, leave the default value here. 68576743c0eSMax Filippov 6865e4417f9SMax Filippovchoice 6875e4417f9SMax Filippov prompt "Relocatable vectors location" 6885e4417f9SMax Filippov default XTENSA_VECTORS_IN_TEXT 68976743c0eSMax Filippov help 6905e4417f9SMax Filippov Choose whether relocatable vectors are merged into the kernel .text 6915e4417f9SMax Filippov or placed separately at runtime. This option does not affect 6925e4417f9SMax Filippov configurations without VECBASE register where vectors are always 6935e4417f9SMax Filippov placed at their hardware-defined locations. 69476743c0eSMax Filippov 6955e4417f9SMax Filippovconfig XTENSA_VECTORS_IN_TEXT 6965e4417f9SMax Filippov bool "Merge relocatable vectors into kernel text" 6975e4417f9SMax Filippov depends on !MTD_XIP 6985e4417f9SMax Filippov help 6995e4417f9SMax Filippov This option puts relocatable vectors into the kernel .text section 7005e4417f9SMax Filippov with proper alignment. 7015e4417f9SMax Filippov This is a safe choice for most configurations. 7025e4417f9SMax Filippov 7035e4417f9SMax Filippovconfig XTENSA_VECTORS_SEPARATE 7045e4417f9SMax Filippov bool "Put relocatable vectors at fixed address" 7055e4417f9SMax Filippov help 7065e4417f9SMax Filippov This option puts relocatable vectors at specific virtual address. 7075e4417f9SMax Filippov Vectors are merged with the .init data in the kernel image and 7085e4417f9SMax Filippov are copied into their designated location during kernel startup. 7095e4417f9SMax Filippov Use it to put vectors into IRAM or out of FLASH on kernels with 7105e4417f9SMax Filippov XIP-aware MTD support. 7115e4417f9SMax Filippov 7125e4417f9SMax Filippovendchoice 7135e4417f9SMax Filippov 7145e4417f9SMax Filippovconfig VECTORS_ADDR 7155e4417f9SMax Filippov hex "Kernel vectors virtual address" 7165e4417f9SMax Filippov default 0x00000000 7175e4417f9SMax Filippov depends on XTENSA_VECTORS_SEPARATE 7185e4417f9SMax Filippov help 7195e4417f9SMax Filippov This is the virtual address of the (relocatable) vectors base. 7205e4417f9SMax Filippov It must be within KSEG if MMU is used. 72176743c0eSMax Filippov 7227af710d9SMax Filippovconfig XIP_DATA_ADDR 7237af710d9SMax Filippov hex "XIP kernel data virtual address" 7247af710d9SMax Filippov depends on XIP_KERNEL 7257af710d9SMax Filippov default 0x00000000 7267af710d9SMax Filippov help 7277af710d9SMax Filippov This is the virtual address where XIP kernel data is copied. 7287af710d9SMax Filippov It must be within KSEG if MMU is used. 7297af710d9SMax Filippov 73076743c0eSMax Filippovconfig PLATFORM_WANT_DEFAULT_MEM 73176743c0eSMax Filippov def_bool n 73276743c0eSMax Filippov 73376743c0eSMax Filippovconfig DEFAULT_MEM_START 73476743c0eSMax Filippov hex 73576743c0eSMax Filippov prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM 73676743c0eSMax Filippov default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM 73776743c0eSMax Filippov default 0x00000000 73876743c0eSMax Filippov help 73976743c0eSMax Filippov This is the base address used for both PAGE_OFFSET and PHYS_OFFSET 74076743c0eSMax Filippov in noMMU configurations. 74176743c0eSMax Filippov 74276743c0eSMax Filippov If unsure, leave the default value here. 74376743c0eSMax Filippov 74476743c0eSMax Filippovchoice 74576743c0eSMax Filippov prompt "KSEG layout" 74676743c0eSMax Filippov depends on MMU 74776743c0eSMax Filippov default XTENSA_KSEG_MMU_V2 74876743c0eSMax Filippov 74976743c0eSMax Filippovconfig XTENSA_KSEG_MMU_V2 75076743c0eSMax Filippov bool "MMUv2: 128MB cached + 128MB uncached" 75176743c0eSMax Filippov help 75276743c0eSMax Filippov MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting 75376743c0eSMax Filippov at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000 75476743c0eSMax Filippov without cache. 75576743c0eSMax Filippov KSEG_PADDR must be aligned to 128MB. 75676743c0eSMax Filippov 75776743c0eSMax Filippovconfig XTENSA_KSEG_256M 75876743c0eSMax Filippov bool "256MB cached + 256MB uncached" 75976743c0eSMax Filippov depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 76076743c0eSMax Filippov help 76176743c0eSMax Filippov TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000 76276743c0eSMax Filippov with cache and to 0xc0000000 without cache. 76376743c0eSMax Filippov KSEG_PADDR must be aligned to 256MB. 76476743c0eSMax Filippov 76576743c0eSMax Filippovconfig XTENSA_KSEG_512M 76676743c0eSMax Filippov bool "512MB cached + 512MB uncached" 76776743c0eSMax Filippov depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 76876743c0eSMax Filippov help 76976743c0eSMax Filippov TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000 77076743c0eSMax Filippov with cache and to 0xc0000000 without cache. 77176743c0eSMax Filippov KSEG_PADDR must be aligned to 256MB. 77276743c0eSMax Filippov 77376743c0eSMax Filippovendchoice 77476743c0eSMax Filippov 77576743c0eSMax Filippovconfig HIGHMEM 77676743c0eSMax Filippov bool "High Memory Support" 77776743c0eSMax Filippov depends on MMU 778629ed3f7SThomas Gleixner select KMAP_LOCAL 77976743c0eSMax Filippov help 78076743c0eSMax Filippov Linux can use the full amount of RAM in the system by 78176743c0eSMax Filippov default. However, the default MMUv2 setup only maps the 78276743c0eSMax Filippov lowermost 128 MB of memory linearly to the areas starting 78376743c0eSMax Filippov at 0xd0000000 (cached) and 0xd8000000 (uncached). 78476743c0eSMax Filippov When there are more than 128 MB memory in the system not 78576743c0eSMax Filippov all of it can be "permanently mapped" by the kernel. 78676743c0eSMax Filippov The physical memory that's not permanently mapped is called 78776743c0eSMax Filippov "high memory". 78876743c0eSMax Filippov 78976743c0eSMax Filippov If you are compiling a kernel which will never run on a 79076743c0eSMax Filippov machine with more than 128 MB total physical RAM, answer 79176743c0eSMax Filippov N here. 79276743c0eSMax Filippov 79376743c0eSMax Filippov If unsure, say Y. 79476743c0eSMax Filippov 7950192445cSZi Yanconfig ARCH_FORCE_MAX_ORDER 7964519a254SMike Rapoport (IBM) int "Order of maximal physically contiguous allocations" 79723baf831SKirill A. Shutemov default "10" 79876743c0eSMax Filippov help 7994519a254SMike Rapoport (IBM) The kernel page allocator limits the size of maximal physically 8005e0a760bSKirill A. Shutemov contiguous allocations. The limit is called MAX_PAGE_ORDER and it 8014519a254SMike Rapoport (IBM) defines the maximal power of two of number of pages that can be 8024519a254SMike Rapoport (IBM) allocated as a single contiguous block. This option allows 8034519a254SMike Rapoport (IBM) overriding the default setting when ability to allocate very 8044519a254SMike Rapoport (IBM) large blocks of physically contiguous memory is required. 8054519a254SMike Rapoport (IBM) 8064519a254SMike Rapoport (IBM) Don't change if unsure. 80776743c0eSMax Filippov 8088e1a6dd2SChris Zankelendmenu 8098e1a6dd2SChris Zankel 810e00d8b2fSMax Filippovmenu "Power management options" 811e00d8b2fSMax Filippov 812733f5c28SMax Filippovconfig ARCH_HIBERNATION_POSSIBLE 813733f5c28SMax Filippov def_bool y 814733f5c28SMax Filippov 815e00d8b2fSMax Filippovsource "kernel/power/Kconfig" 816e00d8b2fSMax Filippov 817e00d8b2fSMax Filippovendmenu 818