1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 28e1a6dd2SChris Zankelconfig XTENSA 335f9cd08SJohannes Weiner def_bool y 4942fa985SYury Norov select ARCH_32BIT_OFF_T 5aef0f78eSChristoph Hellwig select ARCH_HAS_BINFMT_FLAT if !MMU 692652cf9SKees Cook select ARCH_HAS_CURRENT_STACK_POINTER 7af7a16e5SMax Filippov select ARCH_HAS_DEBUG_VM_PGTABLE 80f665b9eSChristoph Hellwig select ARCH_HAS_DMA_PREP_COHERENT if MMU 90847d167SMax Filippov select ARCH_HAS_GCOV_PROFILE_ALL 10c49731a0SMax Filippov select ARCH_HAS_KCOV 110f665b9eSChristoph Hellwig select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU 120f665b9eSChristoph Hellwig select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU 13fa7e2247SChristoph Hellwig select ARCH_HAS_DMA_SET_UNCACHED if MMU 14e6226997SArnd Bergmann select ARCH_HAS_STRNCPY_FROM_USER if !KASAN 15e6226997SArnd Bergmann select ARCH_HAS_STRNLEN_USER 16dce44566SAnshuman Khandual select ARCH_USE_MEMTEST 17579afe86SMax Filippov select ARCH_USE_QUEUED_RWLOCKS 18579afe86SMax Filippov select ARCH_USE_QUEUED_SPINLOCKS 19e969161bSMax Filippov select ARCH_WANT_IPC_PARSE_VERSION 2010916706SShile Zhang select BUILDTIME_TABLE_SORT 213e41f9baSAl Viro select CLONE_BACKWARDS 22bda8932dSMax Filippov select COMMON_CLK 23f5ff79fdSChristoph Hellwig select DMA_NONCOHERENT_MMAP if MMU 24920f8a39SMax Filippov select GENERIC_ATOMIC64 25920f8a39SMax Filippov select GENERIC_IRQ_SHOW 2619c5699fSMax Filippov select GENERIC_LIB_CMPDI2 2719c5699fSMax Filippov select GENERIC_LIB_MULDI3 2819c5699fSMax Filippov select GENERIC_LIB_UCMPDI2 29920f8a39SMax Filippov select GENERIC_PCI_IOMAP 30920f8a39SMax Filippov select GENERIC_SCHED_CLOCK 31ca6c1af3SBaoquan He select GENERIC_IOREMAP if MMU 32ef1a935cSMax Filippov select HAVE_ARCH_AUDITSYSCALL 337af710d9SMax Filippov select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 347af710d9SMax Filippov select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL 35725aea87SMax Filippov select HAVE_ARCH_KCSAN 36da94a40fSMax Filippov select HAVE_ARCH_SECCOMP_FILTER 379f24f3c1SMax Filippov select HAVE_ARCH_TRACEHOOK 38338d9150SMax Filippov select HAVE_ASM_MODVERSIONS 3924a9c541SFrederic Weisbecker select HAVE_CONTEXT_TRACKING_USER 400e46c111SMax Filippov select HAVE_DEBUG_KMEMLEAK 419d2ffe5cSMax Filippov select HAVE_DMA_CONTIGUOUS 425f56a5dfSJiri Slaby select HAVE_EXIT_THREAD 43920f8a39SMax Filippov select HAVE_FUNCTION_TRACER 447dc0eb0bSMax Filippov select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000 45c91e02bdSMax Filippov select HAVE_HW_BREAKPOINT if PERF_EVENTS 46920f8a39SMax Filippov select HAVE_IRQ_TIME_ACCOUNTING 47eb01d42aSChristoph Hellwig select HAVE_PCI 48920f8a39SMax Filippov select HAVE_PERF_EVENTS 49d148eac0SMasahiro Yamada select HAVE_STACKPROTECTOR 50af5395c2SMax Filippov select HAVE_SYSCALL_TRACEPOINTS 5150718569SMax Filippov select HAVE_VIRT_CPU_ACCOUNTING_GEN 52920f8a39SMax Filippov select IRQ_DOMAIN 53a050ba1eSLinus Torvalds select LOCK_MM_AND_FIND_VMA 54920f8a39SMax Filippov select MODULES_USE_ELF_RELA 55db8165f5SMax Filippov select PERF_USE_VMALLOC 564aae683fSMasahiro Yamada select TRACE_IRQFLAGS_SUPPORT 578e1a6dd2SChris Zankel help 588e1a6dd2SChris Zankel Xtensa processors are 32-bit RISC machines designed by Tensilica 598e1a6dd2SChris Zankel primarily for embedded systems. These processors are both 608e1a6dd2SChris Zankel configurable and extensible. The Linux port to the Xtensa 618e1a6dd2SChris Zankel architecture supports all processor configurations and extensions, 628e1a6dd2SChris Zankel with reasonable minimum requirements. The Xtensa Linux project has 630ada4490SMasanari Iida a home page at <http://www.linux-xtensa.org/>. 648e1a6dd2SChris Zankel 65d4337aa5SAkinobu Mitaconfig GENERIC_HWEIGHT 6635f9cd08SJohannes Weiner def_bool y 67d4337aa5SAkinobu Mita 68f0d1b0b3SDavid Howellsconfig ARCH_HAS_ILOG2_U32 6935f9cd08SJohannes Weiner def_bool n 70f0d1b0b3SDavid Howells 71f0d1b0b3SDavid Howellsconfig ARCH_HAS_ILOG2_U64 7235f9cd08SJohannes Weiner def_bool n 73f0d1b0b3SDavid Howells 74*03ce34cfSMax Filippovconfig ARCH_MTD_XIP 75*03ce34cfSMax Filippov def_bool y 76*03ce34cfSMax Filippov 77ce816fa8SUwe Kleine-Königconfig NO_IOPORT_MAP 78d046f77eSMax Filippov def_bool n 795ea81769SAl Viro 80bdc80787SH. Peter Anvinconfig HZ 81bdc80787SH. Peter Anvin int 82bdc80787SH. Peter Anvin default 100 83bdc80787SH. Peter Anvin 848f371c75SMax Filippovconfig LOCKDEP_SUPPORT 858f371c75SMax Filippov def_bool y 868f371c75SMax Filippov 873e4196a5SMax Filippovconfig STACKTRACE_SUPPORT 883e4196a5SMax Filippov def_bool y 893e4196a5SMax Filippov 9035f9cd08SJohannes Weinerconfig MMU 91de7c1c78SMax Filippov def_bool n 92a8f0c31fSMax Filippov select PFAULT 9335f9cd08SJohannes Weiner 94a1a2bdecSBaruch Siachconfig HAVE_XTENSA_GPIO32 95a1a2bdecSBaruch Siach def_bool n 96a1a2bdecSBaruch Siach 97c633544aSMax Filippovconfig KASAN_SHADOW_OFFSET 98c633544aSMax Filippov hex 99c633544aSMax Filippov default 0x6e400000 100c633544aSMax Filippov 101c425c546SMasahiro Yamadaconfig CPU_BIG_ENDIAN 102c425c546SMasahiro Yamada def_bool $(success,test "$(shell,echo __XTENSA_EB__ | $(CC) -E -P -)" = 1) 103c425c546SMasahiro Yamada 104c425c546SMasahiro Yamadaconfig CPU_LITTLE_ENDIAN 105c425c546SMasahiro Yamada def_bool !CPU_BIG_ENDIAN 106c425c546SMasahiro Yamada 107c20e1117SMax Filippovconfig CC_HAVE_CALL0_ABI 108c20e1117SMax Filippov def_bool $(success,test "$(shell,echo __XTENSA_CALL0_ABI__ | $(CC) -mabi=call0 -E -P - 2>/dev/null)" = 1) 109c20e1117SMax Filippov 1108e1a6dd2SChris Zankelmenu "Processor type and features" 1118e1a6dd2SChris Zankel 1128e1a6dd2SChris Zankelchoice 1138e1a6dd2SChris Zankel prompt "Xtensa Processor Configuration" 114173d6681SChris Zankel default XTENSA_VARIANT_FSF 1158e1a6dd2SChris Zankel 116173d6681SChris Zankelconfig XTENSA_VARIANT_FSF 1170025427eSChris Zankel bool "fsf - default (not generic) configuration" 11835f9cd08SJohannes Weiner select MMU 1190025427eSChris Zankel 1200025427eSChris Zankelconfig XTENSA_VARIANT_DC232B 1210025427eSChris Zankel bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" 12235f9cd08SJohannes Weiner select MMU 123a1a2bdecSBaruch Siach select HAVE_XTENSA_GPIO32 1240025427eSChris Zankel help 1250025427eSChris Zankel This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). 126000af2c5SJohannes Weiner 127d0b73b48SPete Delaneyconfig XTENSA_VARIANT_DC233C 128d0b73b48SPete Delaney bool "dc233c - Diamond 233L Standard Core Rev.C (LE)" 129d0b73b48SPete Delaney select MMU 130a1a2bdecSBaruch Siach select HAVE_XTENSA_GPIO32 131d0b73b48SPete Delaney help 132d0b73b48SPete Delaney This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE). 133d0b73b48SPete Delaney 134420ae951SMax Filippovconfig XTENSA_VARIANT_CUSTOM 135420ae951SMax Filippov bool "Custom Xtensa processor configuration" 136420ae951SMax Filippov select HAVE_XTENSA_GPIO32 137420ae951SMax Filippov help 138420ae951SMax Filippov Select this variant to use a custom Xtensa processor configuration. 139420ae951SMax Filippov You will be prompted for a processor variant CORENAME. 1408e1a6dd2SChris Zankelendchoice 1418e1a6dd2SChris Zankel 142420ae951SMax Filippovconfig XTENSA_VARIANT_CUSTOM_NAME 143420ae951SMax Filippov string "Xtensa Processor Custom Core Variant Name" 144420ae951SMax Filippov depends on XTENSA_VARIANT_CUSTOM 145420ae951SMax Filippov help 146420ae951SMax Filippov Provide the name of a custom Xtensa processor variant. 147420ae951SMax Filippov This CORENAME selects arch/xtensa/variant/CORENAME. 14870cbddb9SHu Haowen Don't forget you have to select MMU if you have one. 149420ae951SMax Filippov 150420ae951SMax Filippovconfig XTENSA_VARIANT_NAME 151420ae951SMax Filippov string 152420ae951SMax Filippov default "dc232b" if XTENSA_VARIANT_DC232B 153420ae951SMax Filippov default "dc233c" if XTENSA_VARIANT_DC233C 154420ae951SMax Filippov default "fsf" if XTENSA_VARIANT_FSF 155420ae951SMax Filippov default XTENSA_VARIANT_CUSTOM_NAME if XTENSA_VARIANT_CUSTOM 156420ae951SMax Filippov 157420ae951SMax Filippovconfig XTENSA_VARIANT_MMU 158420ae951SMax Filippov bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)" 159420ae951SMax Filippov depends on XTENSA_VARIANT_CUSTOM 160420ae951SMax Filippov default y 161de7c1c78SMax Filippov select MMU 162420ae951SMax Filippov help 163420ae951SMax Filippov Build a Conventional Kernel with full MMU support, 164420ae951SMax Filippov ie: it supports a TLB with auto-loading, page protection. 165420ae951SMax Filippov 1669bd46da4SMax Filippovconfig XTENSA_VARIANT_HAVE_PERF_EVENTS 1679bd46da4SMax Filippov bool "Core variant has Performance Monitor Module" 1689bd46da4SMax Filippov depends on XTENSA_VARIANT_CUSTOM 1699bd46da4SMax Filippov default n 1709bd46da4SMax Filippov help 1719bd46da4SMax Filippov Enable if core variant has Performance Monitor Module with 1729bd46da4SMax Filippov External Registers Interface. 1739bd46da4SMax Filippov 1749bd46da4SMax Filippov If unsure, say N. 1759bd46da4SMax Filippov 176e4629194SMax Filippovconfig XTENSA_FAKE_NMI 177e4629194SMax Filippov bool "Treat PMM IRQ as NMI" 178e4629194SMax Filippov depends on XTENSA_VARIANT_HAVE_PERF_EVENTS 179e4629194SMax Filippov default n 180e4629194SMax Filippov help 181e4629194SMax Filippov If PMM IRQ is the only IRQ at EXCM level it is safe to 182e4629194SMax Filippov treat it as NMI, which improves accuracy of profiling. 183e4629194SMax Filippov 184e4629194SMax Filippov If there are other interrupts at or above PMM IRQ priority level 185e4629194SMax Filippov but not above the EXCM level, PMM IRQ still may be treated as NMI, 186e4629194SMax Filippov but only if these IRQs are not used. There will be a build warning 187e4629194SMax Filippov saying that this is not safe, and a bugcheck if one of these IRQs 188e4629194SMax Filippov actually fire. 189e4629194SMax Filippov 190e4629194SMax Filippov If unsure, say N. 191e4629194SMax Filippov 192a8f0c31fSMax Filippovconfig PFAULT 193a8f0c31fSMax Filippov bool "Handle protection faults" if EXPERT && !MMU 194a8f0c31fSMax Filippov default y 195a8f0c31fSMax Filippov help 196a8f0c31fSMax Filippov Handle protection faults. MMU configurations must enable it. 197a8f0c31fSMax Filippov noMMU configurations may disable it if used memory map never 198a8f0c31fSMax Filippov generates protection faults or faults are always fatal. 199a8f0c31fSMax Filippov 200a8f0c31fSMax Filippov If unsure, say Y. 201a8f0c31fSMax Filippov 2028e1a6dd2SChris Zankelconfig XTENSA_UNALIGNED_USER 203ad33cc80SCorentin Labbe bool "Unaligned memory access in user space" 20435f9cd08SJohannes Weiner help 2058e1a6dd2SChris Zankel The Xtensa architecture currently does not handle unaligned 2068e1a6dd2SChris Zankel memory accesses in hardware but through an exception handler. 2078e1a6dd2SChris Zankel Per default, unaligned memory accesses are disabled in user space. 2088e1a6dd2SChris Zankel 2098e1a6dd2SChris Zankel Say Y here to enable unaligned memory access in user space. 2108e1a6dd2SChris Zankel 211f29cf776SMax Filippovconfig XTENSA_LOAD_STORE 212f29cf776SMax Filippov bool "Load/store exception handler for memory only readable with l32" 213f29cf776SMax Filippov help 214f29cf776SMax Filippov The Xtensa architecture only allows reading memory attached to its 215f29cf776SMax Filippov instruction bus with l32r and l32i instructions, all other 216f29cf776SMax Filippov instructions raise an exception with the LoadStoreErrorCause code. 217f29cf776SMax Filippov This makes it hard to use some configurations, e.g. store string 218f29cf776SMax Filippov literals in FLASH memory attached to the instruction bus. 219f29cf776SMax Filippov 220f29cf776SMax Filippov Say Y here to enable exception handler that allows transparent 221f29cf776SMax Filippov byte and 2-byte access to memory attached to instruction bus. 222f29cf776SMax Filippov 223f615136cSMax Filippovconfig HAVE_SMP 224f615136cSMax Filippov bool "System Supports SMP (MX)" 225de7c1c78SMax Filippov depends on XTENSA_VARIANT_CUSTOM 226f615136cSMax Filippov select XTENSA_MX 227f615136cSMax Filippov help 22858bc6c69SRandy Dunlap This option is used to indicate that the system-on-a-chip (SOC) 229f615136cSMax Filippov supports Multiprocessing. Multiprocessor support implemented above 230f615136cSMax Filippov the CPU core definition and currently needs to be selected manually. 231f615136cSMax Filippov 23258bc6c69SRandy Dunlap Multiprocessor support is implemented with external cache and 233769a12a9SMasanari Iida interrupt controllers. 234f615136cSMax Filippov 235f615136cSMax Filippov The MX interrupt distributer adds Interprocessor Interrupts 236f615136cSMax Filippov and causes the IRQ numbers to be increased by 4 for devices 237f615136cSMax Filippov like the open cores ethernet driver and the serial interface. 238f615136cSMax Filippov 239f615136cSMax Filippov You still have to select "Enable SMP" to enable SMP on this SOC. 240f615136cSMax Filippov 241f615136cSMax Filippovconfig SMP 242f615136cSMax Filippov bool "Enable Symmetric multi-processing support" 243f615136cSMax Filippov depends on HAVE_SMP 244f615136cSMax Filippov select GENERIC_SMP_IDLE_THREAD 245f615136cSMax Filippov help 246f615136cSMax Filippov Enabled SMP Software; allows more than one CPU/CORE 247f615136cSMax Filippov to be activated during startup. 248f615136cSMax Filippov 249f615136cSMax Filippovconfig NR_CPUS 250f615136cSMax Filippov depends on SMP 251f615136cSMax Filippov int "Maximum number of CPUs (2-32)" 252f615136cSMax Filippov range 2 32 253f615136cSMax Filippov default "4" 254f615136cSMax Filippov 25549b424feSMax Filippovconfig HOTPLUG_CPU 25649b424feSMax Filippov bool "Enable CPU hotplug support" 25749b424feSMax Filippov depends on SMP 25849b424feSMax Filippov help 25949b424feSMax Filippov Say Y here to allow turning CPUs off and on. CPUs can be 26049b424feSMax Filippov controlled through /sys/devices/system/cpu. 26149b424feSMax Filippov 26249b424feSMax Filippov Say N if you want to disable CPU hotplug. 26349b424feSMax Filippov 26489b184f9SMax Filippovconfig SECONDARY_RESET_VECTOR 26589b184f9SMax Filippov bool "Secondary cores use alternative reset vector" 26689b184f9SMax Filippov default y 26789b184f9SMax Filippov depends on HAVE_SMP 26889b184f9SMax Filippov help 26989b184f9SMax Filippov Secondary cores may be configured to use alternative reset vector, 27089b184f9SMax Filippov or all cores may use primary reset vector. 27189b184f9SMax Filippov Say Y here to supply handler for the alternative reset location. 27289b184f9SMax Filippov 2739184289cSMax Filippovconfig FAST_SYSCALL_XTENSA 2749184289cSMax Filippov bool "Enable fast atomic syscalls" 2759184289cSMax Filippov default n 2769184289cSMax Filippov help 2779184289cSMax Filippov fast_syscall_xtensa is a syscall that can make atomic operations 2789184289cSMax Filippov on UP kernel when processor has no s32c1i support. 2799184289cSMax Filippov 2809184289cSMax Filippov This syscall is deprecated. It may have issues when called with 2819184289cSMax Filippov invalid arguments. It is provided only for backwards compatibility. 2829184289cSMax Filippov Only enable it if your userspace software requires it. 2839184289cSMax Filippov 2849184289cSMax Filippov If unsure, say N. 2859184289cSMax Filippov 2869184289cSMax Filippovconfig FAST_SYSCALL_SPILL_REGISTERS 2879184289cSMax Filippov bool "Enable spill registers syscall" 2889184289cSMax Filippov default n 2899184289cSMax Filippov help 2909184289cSMax Filippov fast_syscall_spill_registers is a syscall that spills all active 2919184289cSMax Filippov register windows of a calling userspace task onto its stack. 2929184289cSMax Filippov 2939184289cSMax Filippov This syscall is deprecated. It may have issues when called with 2949184289cSMax Filippov invalid arguments. It is provided only for backwards compatibility. 2959184289cSMax Filippov Only enable it if your userspace software requires it. 2969184289cSMax Filippov 2979184289cSMax Filippov If unsure, say N. 2989184289cSMax Filippov 299c20e1117SMax Filippovchoice 300c20e1117SMax Filippov prompt "Kernel ABI" 301c20e1117SMax Filippov default KERNEL_ABI_DEFAULT 302c20e1117SMax Filippov help 303c20e1117SMax Filippov Select ABI for the kernel code. This ABI is independent of the 304c20e1117SMax Filippov supported userspace ABI and any combination of the 305c20e1117SMax Filippov kernel/userspace ABI is possible and should work. 306c20e1117SMax Filippov 307c20e1117SMax Filippov In case both kernel and userspace support only call0 ABI 308c20e1117SMax Filippov all register windows support code will be omitted from the 309c20e1117SMax Filippov build. 310c20e1117SMax Filippov 311c20e1117SMax Filippov If unsure, choose the default ABI. 312c20e1117SMax Filippov 313c20e1117SMax Filippovconfig KERNEL_ABI_DEFAULT 314c20e1117SMax Filippov bool "Default ABI" 315c20e1117SMax Filippov help 316c20e1117SMax Filippov Select this option to compile kernel code with the default ABI 317c20e1117SMax Filippov selected for the toolchain. 318c20e1117SMax Filippov Normally cores with windowed registers option use windowed ABI and 319c20e1117SMax Filippov cores without it use call0 ABI. 320c20e1117SMax Filippov 321c20e1117SMax Filippovconfig KERNEL_ABI_CALL0 322c20e1117SMax Filippov bool "Call0 ABI" if CC_HAVE_CALL0_ABI 323c20e1117SMax Filippov help 324c20e1117SMax Filippov Select this option to compile kernel code with call0 ABI even with 325c20e1117SMax Filippov toolchain that defaults to windowed ABI. 326c20e1117SMax Filippov When this option is not selected the default toolchain ABI will 327c20e1117SMax Filippov be used for the kernel code. 328c20e1117SMax Filippov 329c20e1117SMax Filippovendchoice 330c20e1117SMax Filippov 33109f8a6dbSMax Filippovconfig USER_ABI_CALL0 33209f8a6dbSMax Filippov bool 33309f8a6dbSMax Filippov 33409f8a6dbSMax Filippovchoice 33509f8a6dbSMax Filippov prompt "Userspace ABI" 33609f8a6dbSMax Filippov default USER_ABI_DEFAULT 33709f8a6dbSMax Filippov help 33809f8a6dbSMax Filippov Select supported userspace ABI. 33909f8a6dbSMax Filippov 34009f8a6dbSMax Filippov If unsure, choose the default ABI. 34109f8a6dbSMax Filippov 34209f8a6dbSMax Filippovconfig USER_ABI_DEFAULT 34309f8a6dbSMax Filippov bool "Default ABI only" 34409f8a6dbSMax Filippov help 34509f8a6dbSMax Filippov Assume default userspace ABI. For XEA2 cores it is windowed ABI. 34609f8a6dbSMax Filippov call0 ABI binaries may be run on such kernel, but signal delivery 34709f8a6dbSMax Filippov will not work correctly for them. 34809f8a6dbSMax Filippov 34909f8a6dbSMax Filippovconfig USER_ABI_CALL0_ONLY 35009f8a6dbSMax Filippov bool "Call0 ABI only" 35109f8a6dbSMax Filippov select USER_ABI_CALL0 35209f8a6dbSMax Filippov help 35309f8a6dbSMax Filippov Select this option to support only call0 ABI in userspace. 35409f8a6dbSMax Filippov Windowed ABI binaries will crash with a segfault caused by 35509f8a6dbSMax Filippov an illegal instruction exception on the first 'entry' opcode. 35609f8a6dbSMax Filippov 35709f8a6dbSMax Filippov Choose this option if you're planning to run only user code 35809f8a6dbSMax Filippov built with call0 ABI. 35909f8a6dbSMax Filippov 36009f8a6dbSMax Filippovconfig USER_ABI_CALL0_PROBE 36109f8a6dbSMax Filippov bool "Support both windowed and call0 ABI by probing" 36209f8a6dbSMax Filippov select USER_ABI_CALL0 36309f8a6dbSMax Filippov help 36409f8a6dbSMax Filippov Select this option to support both windowed and call0 userspace 36509f8a6dbSMax Filippov ABIs. When enabled all processes are started with PS.WOE disabled 36609f8a6dbSMax Filippov and a fast user exception handler for an illegal instruction is 36709f8a6dbSMax Filippov used to turn on PS.WOE bit on the first 'entry' opcode executed by 36809f8a6dbSMax Filippov the userspace. 36909f8a6dbSMax Filippov 37009f8a6dbSMax Filippov This option should be enabled for the kernel that must support 37109f8a6dbSMax Filippov both call0 and windowed ABIs in userspace at the same time. 37209f8a6dbSMax Filippov 37309f8a6dbSMax Filippov Note that Xtensa ISA does not guarantee that entry opcode will 37409f8a6dbSMax Filippov raise an illegal instruction exception on cores with XEA2 when 37509f8a6dbSMax Filippov PS.WOE is disabled, check whether the target core supports it. 37609f8a6dbSMax Filippov 37709f8a6dbSMax Filippovendchoice 37809f8a6dbSMax Filippov 3798e1a6dd2SChris Zankelendmenu 3808e1a6dd2SChris Zankel 38135f9cd08SJohannes Weinerconfig XTENSA_CALIBRATE_CCOUNT 38235f9cd08SJohannes Weiner def_bool n 38335f9cd08SJohannes Weiner help 38435f9cd08SJohannes Weiner On some platforms (XT2000, for example), the CPU clock rate can 38535f9cd08SJohannes Weiner vary. The frequency can be determined, however, by measuring 38635f9cd08SJohannes Weiner against a well known, fixed frequency, such as an UART oscillator. 38735f9cd08SJohannes Weiner 38835f9cd08SJohannes Weinerconfig SERIAL_CONSOLE 38935f9cd08SJohannes Weiner def_bool n 39035f9cd08SJohannes Weiner 3917af710d9SMax Filippovconfig PLATFORM_HAVE_XIP 3927af710d9SMax Filippov def_bool n 3937af710d9SMax Filippov 3948e1a6dd2SChris Zankelmenu "Platform options" 3958e1a6dd2SChris Zankel 3968e1a6dd2SChris Zankelchoice 3978e1a6dd2SChris Zankel prompt "Xtensa System Type" 3988e1a6dd2SChris Zankel default XTENSA_PLATFORM_ISS 3998e1a6dd2SChris Zankel 4008e1a6dd2SChris Zankelconfig XTENSA_PLATFORM_ISS 4018e1a6dd2SChris Zankel bool "ISS" 40235f9cd08SJohannes Weiner select XTENSA_CALIBRATE_CCOUNT 40335f9cd08SJohannes Weiner select SERIAL_CONSOLE 4048e1a6dd2SChris Zankel help 4058e1a6dd2SChris Zankel ISS is an acronym for Tensilica's Instruction Set Simulator. 4068e1a6dd2SChris Zankel 4078e1a6dd2SChris Zankelconfig XTENSA_PLATFORM_XT2000 4088e1a6dd2SChris Zankel bool "XT2000" 4098e1a6dd2SChris Zankel help 4108e1a6dd2SChris Zankel XT2000 is the name of Tensilica's feature-rich emulation platform. 4118e1a6dd2SChris Zankel This hardware is capable of running a full Linux distribution. 4128e1a6dd2SChris Zankel 4130d456badSMax Filippovconfig XTENSA_PLATFORM_XTFPGA 4140d456badSMax Filippov bool "XTFPGA" 41561e47e9bSMax Filippov select ETHOC if ETHERNET 4163de00482SMax Filippov select PLATFORM_WANT_DEFAULT_MEM if !MMU 4170d456badSMax Filippov select SERIAL_CONSOLE 4180d456badSMax Filippov select XTENSA_CALIBRATE_CCOUNT 4197af710d9SMax Filippov select PLATFORM_HAVE_XIP 4200d456badSMax Filippov help 4210d456badSMax Filippov XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 4220d456badSMax Filippov This hardware is capable of running a full Linux distribution. 4230d456badSMax Filippov 4248e1a6dd2SChris Zankelendchoice 4258e1a6dd2SChris Zankel 426994fa1c8SMax Filippovconfig PLATFORM_NR_IRQS 427994fa1c8SMax Filippov int 428994fa1c8SMax Filippov default 3 if XTENSA_PLATFORM_XT2000 429994fa1c8SMax Filippov default 0 4308e1a6dd2SChris Zankel 4318e1a6dd2SChris Zankelconfig XTENSA_CPU_CLOCK 4328e1a6dd2SChris Zankel int "CPU clock rate [MHz]" 4338e1a6dd2SChris Zankel depends on !XTENSA_CALIBRATE_CCOUNT 43435f9cd08SJohannes Weiner default 16 4358e1a6dd2SChris Zankel 4368e1a6dd2SChris Zankelconfig GENERIC_CALIBRATE_DELAY 4378e1a6dd2SChris Zankel bool "Auto calibration of the BogoMIPS value" 43835f9cd08SJohannes Weiner help 43982300bf4SChris Zankel The BogoMIPS value can easily be derived from the CPU frequency. 4408e1a6dd2SChris Zankel 4418e1a6dd2SChris Zankelconfig CMDLINE_BOOL 4428e1a6dd2SChris Zankel bool "Default bootloader kernel arguments" 4438e1a6dd2SChris Zankel 4448e1a6dd2SChris Zankelconfig CMDLINE 4458e1a6dd2SChris Zankel string "Initial kernel command string" 4468e1a6dd2SChris Zankel depends on CMDLINE_BOOL 4478e1a6dd2SChris Zankel default "console=ttyS0,38400 root=/dev/ram" 4488e1a6dd2SChris Zankel help 4498e1a6dd2SChris Zankel On some architectures (EBSA110 and CATS), there is currently no way 4508e1a6dd2SChris Zankel for the boot loader to pass arguments to the kernel. For these 4518e1a6dd2SChris Zankel architectures, you should supply some command-line options at build 4528e1a6dd2SChris Zankel time by entering them here. As a minimum, you should specify the 4538e1a6dd2SChris Zankel memory size and the root device (e.g., mem=64M root=/dev/nfs). 4548e1a6dd2SChris Zankel 455da844a81SMax Filippovconfig USE_OF 456da844a81SMax Filippov bool "Flattened Device Tree support" 457da844a81SMax Filippov select OF 458da844a81SMax Filippov select OF_EARLY_FLATTREE 459da844a81SMax Filippov help 460da844a81SMax Filippov Include support for flattened device tree machine descriptions. 461da844a81SMax Filippov 462687cffd3SCorentin Labbeconfig BUILTIN_DTB_SOURCE 463da844a81SMax Filippov string "DTB to build into the kernel image" 464da844a81SMax Filippov depends on OF 465da844a81SMax Filippov 466baac1d36SMax Filippovconfig PARSE_BOOTPARAM 467baac1d36SMax Filippov bool "Parse bootparam block" 468baac1d36SMax Filippov default y 469baac1d36SMax Filippov help 470baac1d36SMax Filippov Parse parameters passed to the kernel from the bootloader. It may 471baac1d36SMax Filippov be disabled if the kernel is known to run without the bootloader. 472baac1d36SMax Filippov 473baac1d36SMax Filippov If unsure, say Y. 474baac1d36SMax Filippov 4756a8eb99eSMax Filippovchoice 4766a8eb99eSMax Filippov prompt "Semihosting interface" 4776a8eb99eSMax Filippov default XTENSA_SIMCALL_ISS 4786a8eb99eSMax Filippov depends on XTENSA_PLATFORM_ISS 4796a8eb99eSMax Filippov help 4806a8eb99eSMax Filippov Choose semihosting interface that will be used for serial port, 4816a8eb99eSMax Filippov block device and networking. 4826a8eb99eSMax Filippov 4836a8eb99eSMax Filippovconfig XTENSA_SIMCALL_ISS 4846a8eb99eSMax Filippov bool "simcall" 4856a8eb99eSMax Filippov help 4866a8eb99eSMax Filippov Use simcall instruction. simcall is only available on simulators, 4876a8eb99eSMax Filippov it does nothing on hardware. 4886a8eb99eSMax Filippov 4896a8eb99eSMax Filippovconfig XTENSA_SIMCALL_GDBIO 4906a8eb99eSMax Filippov bool "GDBIO" 4916a8eb99eSMax Filippov help 4926a8eb99eSMax Filippov Use break instruction. It is available on real hardware when GDB 4936a8eb99eSMax Filippov is attached to it via JTAG. 4946a8eb99eSMax Filippov 4956a8eb99eSMax Filippovendchoice 4966a8eb99eSMax Filippov 497b6c7e873SVictor Prupisconfig BLK_DEV_SIMDISK 498b6c7e873SVictor Prupis tristate "Host file-based simulated block device support" 499b6c7e873SVictor Prupis default n 5007a0684cdSMax Filippov depends on XTENSA_PLATFORM_ISS && BLOCK 501b6c7e873SVictor Prupis help 502b6c7e873SVictor Prupis Create block devices that map to files in the host file system. 503b6c7e873SVictor Prupis Device binding to host file may be changed at runtime via proc 504b6c7e873SVictor Prupis interface provided the device is not in use. 505b6c7e873SVictor Prupis 506b6c7e873SVictor Prupisconfig BLK_DEV_SIMDISK_COUNT 507b6c7e873SVictor Prupis int "Number of host file-based simulated block devices" 508b6c7e873SVictor Prupis range 1 10 509b6c7e873SVictor Prupis depends on BLK_DEV_SIMDISK 510b6c7e873SVictor Prupis default 2 511b6c7e873SVictor Prupis help 512b6c7e873SVictor Prupis This is the default minimal number of created block devices. 513b6c7e873SVictor Prupis Kernel/module parameter 'simdisk_count' may be used to change this 514b6c7e873SVictor Prupis value at runtime. More file names (but no more than 10) may be 515b6c7e873SVictor Prupis specified as parameters, simdisk_count grows accordingly. 516b6c7e873SVictor Prupis 517b6c7e873SVictor Prupisconfig SIMDISK0_FILENAME 518b6c7e873SVictor Prupis string "Host filename for the first simulated device" 519b6c7e873SVictor Prupis depends on BLK_DEV_SIMDISK = y 520b6c7e873SVictor Prupis default "" 521b6c7e873SVictor Prupis help 522b6c7e873SVictor Prupis Attach a first simdisk to a host file. Conventionally, this file 523b6c7e873SVictor Prupis contains a root file system. 524b6c7e873SVictor Prupis 525b6c7e873SVictor Prupisconfig SIMDISK1_FILENAME 526b6c7e873SVictor Prupis string "Host filename for the second simulated device" 527b6c7e873SVictor Prupis depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 528b6c7e873SVictor Prupis default "" 529b6c7e873SVictor Prupis help 530b6c7e873SVictor Prupis Another simulated disk in a host file for a buildroot-independent 531b6c7e873SVictor Prupis storage. 532b6c7e873SVictor Prupis 5334949009eSMax Filippovconfig XTFPGA_LCD 5344949009eSMax Filippov bool "Enable XTFPGA LCD driver" 5354949009eSMax Filippov depends on XTENSA_PLATFORM_XTFPGA 5364949009eSMax Filippov default n 5374949009eSMax Filippov help 5384949009eSMax Filippov There's a 2x16 LCD on most of XTFPGA boards, kernel may output 5394949009eSMax Filippov progress messages there during bootup/shutdown. It may be useful 5404949009eSMax Filippov during board bringup. 5414949009eSMax Filippov 5424949009eSMax Filippov If unsure, say N. 5434949009eSMax Filippov 5444949009eSMax Filippovconfig XTFPGA_LCD_BASE_ADDR 5454949009eSMax Filippov hex "XTFPGA LCD base address" 5464949009eSMax Filippov depends on XTFPGA_LCD 5474949009eSMax Filippov default "0x0d0c0000" 5484949009eSMax Filippov help 5494949009eSMax Filippov Base address of the LCD controller inside KIO region. 5504949009eSMax Filippov Different boards from XTFPGA family have LCD controller at different 5514949009eSMax Filippov addresses. Please consult prototyping user guide for your board for 5524949009eSMax Filippov the correct address. Wrong address here may lead to hardware lockup. 5534949009eSMax Filippov 5544949009eSMax Filippovconfig XTFPGA_LCD_8BIT_ACCESS 5554949009eSMax Filippov bool "Use 8-bit access to XTFPGA LCD" 5564949009eSMax Filippov depends on XTFPGA_LCD 5574949009eSMax Filippov default n 5584949009eSMax Filippov help 5594949009eSMax Filippov LCD may be connected with 4- or 8-bit interface, 8-bit access may 5604949009eSMax Filippov only be used with 8-bit interface. Please consult prototyping user 5614949009eSMax Filippov guide for your board for the correct interface width. 5624949009eSMax Filippov 56376743c0eSMax Filippovcomment "Kernel memory layout" 56476743c0eSMax Filippov 56576743c0eSMax Filippovconfig INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 56676743c0eSMax Filippov bool "Initialize Xtensa MMU inside the Linux kernel code" 56776743c0eSMax Filippov depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B 56876743c0eSMax Filippov default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM 56976743c0eSMax Filippov help 57076743c0eSMax Filippov Earlier version initialized the MMU in the exception vector 57176743c0eSMax Filippov before jumping to _startup in head.S and had an advantage that 57276743c0eSMax Filippov it was possible to place a software breakpoint at 'reset' and 57376743c0eSMax Filippov then enter your normal kernel breakpoints once the MMU was mapped 57476743c0eSMax Filippov to the kernel mappings (0XC0000000). 57576743c0eSMax Filippov 5768a128bc3SColin Ian King This unfortunately won't work for U-Boot and likely also won't 57776743c0eSMax Filippov work for using KEXEC to have a hot kernel ready for doing a 57876743c0eSMax Filippov KDUMP. 57976743c0eSMax Filippov 58076743c0eSMax Filippov So now the MMU is initialized in head.S but it's necessary to 58176743c0eSMax Filippov use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 58276743c0eSMax Filippov xt-gdb can't place a Software Breakpoint in the 0XD region prior 58376743c0eSMax Filippov to mapping the MMU and after mapping even if the area of low memory 58476743c0eSMax Filippov was mapped gdb wouldn't remove the breakpoint on hitting it as the 58576743c0eSMax Filippov PC wouldn't match. Since Hardware Breakpoints are recommended for 58676743c0eSMax Filippov Linux configurations it seems reasonable to just assume they exist 58776743c0eSMax Filippov and leave this older mechanism for unfortunate souls that choose 58876743c0eSMax Filippov not to follow Tensilica's recommendation. 58976743c0eSMax Filippov 59076743c0eSMax Filippov Selecting this will cause U-Boot to set the KERNEL Load and Entry 59176743c0eSMax Filippov address at 0x00003000 instead of the mapped std of 0xD0003000. 59276743c0eSMax Filippov 59376743c0eSMax Filippov If in doubt, say Y. 59476743c0eSMax Filippov 5957af710d9SMax Filippovconfig XIP_KERNEL 5967af710d9SMax Filippov bool "Kernel Execute-In-Place from ROM" 5977af710d9SMax Filippov depends on PLATFORM_HAVE_XIP 5987af710d9SMax Filippov help 5997af710d9SMax Filippov Execute-In-Place allows the kernel to run from non-volatile storage 6007af710d9SMax Filippov directly addressable by the CPU, such as NOR flash. This saves RAM 6017af710d9SMax Filippov space since the text section of the kernel is not loaded from flash 6027af710d9SMax Filippov to RAM. Read-write sections, such as the data section and stack, 6037af710d9SMax Filippov are still copied to RAM. The XIP kernel is not compressed since 6047af710d9SMax Filippov it has to run directly from flash, so it will take more space to 6057af710d9SMax Filippov store it. The flash address used to link the kernel object files, 6067af710d9SMax Filippov and for storing it, is configuration dependent. Therefore, if you 6077af710d9SMax Filippov say Y here, you must know the proper physical address where to 6087af710d9SMax Filippov store the kernel image depending on your own flash memory usage. 6097af710d9SMax Filippov 6107af710d9SMax Filippov Also note that the make target becomes "make xipImage" rather than 6117af710d9SMax Filippov "make Image" or "make uImage". The final kernel binary to put in 6127af710d9SMax Filippov ROM memory will be arch/xtensa/boot/xipImage. 6137af710d9SMax Filippov 6147af710d9SMax Filippov If unsure, say N. 6157af710d9SMax Filippov 61676743c0eSMax Filippovconfig MEMMAP_CACHEATTR 61776743c0eSMax Filippov hex "Cache attributes for the memory address space" 61876743c0eSMax Filippov depends on !MMU 61976743c0eSMax Filippov default 0x22222222 62076743c0eSMax Filippov help 62176743c0eSMax Filippov These cache attributes are set up for noMMU systems. Each hex digit 62276743c0eSMax Filippov specifies cache attributes for the corresponding 512MB memory 62376743c0eSMax Filippov region: bits 0..3 -- for addresses 0x00000000..0x1fffffff, 62476743c0eSMax Filippov bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on. 62576743c0eSMax Filippov 62676743c0eSMax Filippov Cache attribute values are specific for the MMU type. 62776743c0eSMax Filippov For region protection MMUs: 62876743c0eSMax Filippov 1: WT cached, 62976743c0eSMax Filippov 2: cache bypass, 63076743c0eSMax Filippov 4: WB cached, 63176743c0eSMax Filippov f: illegal. 6322a9b29b2SRandy Dunlap For full MMU: 63376743c0eSMax Filippov bit 0: executable, 63476743c0eSMax Filippov bit 1: writable, 63576743c0eSMax Filippov bits 2..3: 63676743c0eSMax Filippov 0: cache bypass, 63776743c0eSMax Filippov 1: WB cache, 63876743c0eSMax Filippov 2: WT cache, 63976743c0eSMax Filippov 3: special (c and e are illegal, f is reserved). 64076743c0eSMax Filippov For MPU: 64176743c0eSMax Filippov 0: illegal, 64276743c0eSMax Filippov 1: WB cache, 64376743c0eSMax Filippov 2: WB, no-write-allocate cache, 64476743c0eSMax Filippov 3: WT cache, 64576743c0eSMax Filippov 4: cache bypass. 64676743c0eSMax Filippov 64776743c0eSMax Filippovconfig KSEG_PADDR 64876743c0eSMax Filippov hex "Physical address of the KSEG mapping" 64976743c0eSMax Filippov depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU 65076743c0eSMax Filippov default 0x00000000 65176743c0eSMax Filippov help 65276743c0eSMax Filippov This is the physical address where KSEG is mapped. Please refer to 65376743c0eSMax Filippov the chosen KSEG layout help for the required address alignment. 65476743c0eSMax Filippov Unpacked kernel image (including vectors) must be located completely 65576743c0eSMax Filippov within KSEG. 65676743c0eSMax Filippov Physical memory below this address is not available to linux. 65776743c0eSMax Filippov 65876743c0eSMax Filippov If unsure, leave the default value here. 65976743c0eSMax Filippov 6607af710d9SMax Filippovconfig KERNEL_VIRTUAL_ADDRESS 6617af710d9SMax Filippov hex "Kernel virtual address" 6627af710d9SMax Filippov depends on MMU && XIP_KERNEL 6637af710d9SMax Filippov default 0xd0003000 6647af710d9SMax Filippov help 6657af710d9SMax Filippov This is the virtual address where the XIP kernel is mapped. 6667af710d9SMax Filippov XIP kernel may be mapped into KSEG or KIO region, virtual address 6677af710d9SMax Filippov provided here must match kernel load address provided in 6687af710d9SMax Filippov KERNEL_LOAD_ADDRESS. 6697af710d9SMax Filippov 67076743c0eSMax Filippovconfig KERNEL_LOAD_ADDRESS 67176743c0eSMax Filippov hex "Kernel load address" 67276743c0eSMax Filippov default 0x60003000 if !MMU 67376743c0eSMax Filippov default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 67476743c0eSMax Filippov default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 67576743c0eSMax Filippov help 67676743c0eSMax Filippov This is the address where the kernel is loaded. 67776743c0eSMax Filippov It is virtual address for MMUv2 configurations and physical address 67876743c0eSMax Filippov for all other configurations. 67976743c0eSMax Filippov 68076743c0eSMax Filippov If unsure, leave the default value here. 68176743c0eSMax Filippov 6825e4417f9SMax Filippovchoice 6835e4417f9SMax Filippov prompt "Relocatable vectors location" 6845e4417f9SMax Filippov default XTENSA_VECTORS_IN_TEXT 68576743c0eSMax Filippov help 6865e4417f9SMax Filippov Choose whether relocatable vectors are merged into the kernel .text 6875e4417f9SMax Filippov or placed separately at runtime. This option does not affect 6885e4417f9SMax Filippov configurations without VECBASE register where vectors are always 6895e4417f9SMax Filippov placed at their hardware-defined locations. 69076743c0eSMax Filippov 6915e4417f9SMax Filippovconfig XTENSA_VECTORS_IN_TEXT 6925e4417f9SMax Filippov bool "Merge relocatable vectors into kernel text" 6935e4417f9SMax Filippov depends on !MTD_XIP 6945e4417f9SMax Filippov help 6955e4417f9SMax Filippov This option puts relocatable vectors into the kernel .text section 6965e4417f9SMax Filippov with proper alignment. 6975e4417f9SMax Filippov This is a safe choice for most configurations. 6985e4417f9SMax Filippov 6995e4417f9SMax Filippovconfig XTENSA_VECTORS_SEPARATE 7005e4417f9SMax Filippov bool "Put relocatable vectors at fixed address" 7015e4417f9SMax Filippov help 7025e4417f9SMax Filippov This option puts relocatable vectors at specific virtual address. 7035e4417f9SMax Filippov Vectors are merged with the .init data in the kernel image and 7045e4417f9SMax Filippov are copied into their designated location during kernel startup. 7055e4417f9SMax Filippov Use it to put vectors into IRAM or out of FLASH on kernels with 7065e4417f9SMax Filippov XIP-aware MTD support. 7075e4417f9SMax Filippov 7085e4417f9SMax Filippovendchoice 7095e4417f9SMax Filippov 7105e4417f9SMax Filippovconfig VECTORS_ADDR 7115e4417f9SMax Filippov hex "Kernel vectors virtual address" 7125e4417f9SMax Filippov default 0x00000000 7135e4417f9SMax Filippov depends on XTENSA_VECTORS_SEPARATE 7145e4417f9SMax Filippov help 7155e4417f9SMax Filippov This is the virtual address of the (relocatable) vectors base. 7165e4417f9SMax Filippov It must be within KSEG if MMU is used. 71776743c0eSMax Filippov 7187af710d9SMax Filippovconfig XIP_DATA_ADDR 7197af710d9SMax Filippov hex "XIP kernel data virtual address" 7207af710d9SMax Filippov depends on XIP_KERNEL 7217af710d9SMax Filippov default 0x00000000 7227af710d9SMax Filippov help 7237af710d9SMax Filippov This is the virtual address where XIP kernel data is copied. 7247af710d9SMax Filippov It must be within KSEG if MMU is used. 7257af710d9SMax Filippov 72676743c0eSMax Filippovconfig PLATFORM_WANT_DEFAULT_MEM 72776743c0eSMax Filippov def_bool n 72876743c0eSMax Filippov 72976743c0eSMax Filippovconfig DEFAULT_MEM_START 73076743c0eSMax Filippov hex 73176743c0eSMax Filippov prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM 73276743c0eSMax Filippov default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM 73376743c0eSMax Filippov default 0x00000000 73476743c0eSMax Filippov help 73576743c0eSMax Filippov This is the base address used for both PAGE_OFFSET and PHYS_OFFSET 73676743c0eSMax Filippov in noMMU configurations. 73776743c0eSMax Filippov 73876743c0eSMax Filippov If unsure, leave the default value here. 73976743c0eSMax Filippov 74076743c0eSMax Filippovchoice 74176743c0eSMax Filippov prompt "KSEG layout" 74276743c0eSMax Filippov depends on MMU 74376743c0eSMax Filippov default XTENSA_KSEG_MMU_V2 74476743c0eSMax Filippov 74576743c0eSMax Filippovconfig XTENSA_KSEG_MMU_V2 74676743c0eSMax Filippov bool "MMUv2: 128MB cached + 128MB uncached" 74776743c0eSMax Filippov help 74876743c0eSMax Filippov MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting 74976743c0eSMax Filippov at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000 75076743c0eSMax Filippov without cache. 75176743c0eSMax Filippov KSEG_PADDR must be aligned to 128MB. 75276743c0eSMax Filippov 75376743c0eSMax Filippovconfig XTENSA_KSEG_256M 75476743c0eSMax Filippov bool "256MB cached + 256MB uncached" 75576743c0eSMax Filippov depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 75676743c0eSMax Filippov help 75776743c0eSMax Filippov TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000 75876743c0eSMax Filippov with cache and to 0xc0000000 without cache. 75976743c0eSMax Filippov KSEG_PADDR must be aligned to 256MB. 76076743c0eSMax Filippov 76176743c0eSMax Filippovconfig XTENSA_KSEG_512M 76276743c0eSMax Filippov bool "512MB cached + 512MB uncached" 76376743c0eSMax Filippov depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 76476743c0eSMax Filippov help 76576743c0eSMax Filippov TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000 76676743c0eSMax Filippov with cache and to 0xc0000000 without cache. 76776743c0eSMax Filippov KSEG_PADDR must be aligned to 256MB. 76876743c0eSMax Filippov 76976743c0eSMax Filippovendchoice 77076743c0eSMax Filippov 77176743c0eSMax Filippovconfig HIGHMEM 77276743c0eSMax Filippov bool "High Memory Support" 77376743c0eSMax Filippov depends on MMU 774629ed3f7SThomas Gleixner select KMAP_LOCAL 77576743c0eSMax Filippov help 77676743c0eSMax Filippov Linux can use the full amount of RAM in the system by 77776743c0eSMax Filippov default. However, the default MMUv2 setup only maps the 77876743c0eSMax Filippov lowermost 128 MB of memory linearly to the areas starting 77976743c0eSMax Filippov at 0xd0000000 (cached) and 0xd8000000 (uncached). 78076743c0eSMax Filippov When there are more than 128 MB memory in the system not 78176743c0eSMax Filippov all of it can be "permanently mapped" by the kernel. 78276743c0eSMax Filippov The physical memory that's not permanently mapped is called 78376743c0eSMax Filippov "high memory". 78476743c0eSMax Filippov 78576743c0eSMax Filippov If you are compiling a kernel which will never run on a 78676743c0eSMax Filippov machine with more than 128 MB total physical RAM, answer 78776743c0eSMax Filippov N here. 78876743c0eSMax Filippov 78976743c0eSMax Filippov If unsure, say Y. 79076743c0eSMax Filippov 7910192445cSZi Yanconfig ARCH_FORCE_MAX_ORDER 7924519a254SMike Rapoport (IBM) int "Order of maximal physically contiguous allocations" 79323baf831SKirill A. Shutemov default "10" 79476743c0eSMax Filippov help 7954519a254SMike Rapoport (IBM) The kernel page allocator limits the size of maximal physically 7964519a254SMike Rapoport (IBM) contiguous allocations. The limit is called MAX_ORDER and it 7974519a254SMike Rapoport (IBM) defines the maximal power of two of number of pages that can be 7984519a254SMike Rapoport (IBM) allocated as a single contiguous block. This option allows 7994519a254SMike Rapoport (IBM) overriding the default setting when ability to allocate very 8004519a254SMike Rapoport (IBM) large blocks of physically contiguous memory is required. 8014519a254SMike Rapoport (IBM) 8024519a254SMike Rapoport (IBM) Don't change if unsure. 80376743c0eSMax Filippov 8048e1a6dd2SChris Zankelendmenu 8058e1a6dd2SChris Zankel 806e00d8b2fSMax Filippovmenu "Power management options" 807e00d8b2fSMax Filippov 808733f5c28SMax Filippovconfig ARCH_HIBERNATION_POSSIBLE 809733f5c28SMax Filippov def_bool y 810733f5c28SMax Filippov 811e00d8b2fSMax Filippovsource "kernel/power/Kconfig" 812e00d8b2fSMax Filippov 813e00d8b2fSMax Filippovendmenu 814