162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ciconfig XTENSA 362306a36Sopenharmony_ci def_bool y 462306a36Sopenharmony_ci select ARCH_32BIT_OFF_T 562306a36Sopenharmony_ci select ARCH_HAS_BINFMT_FLAT if !MMU 662306a36Sopenharmony_ci select ARCH_HAS_CURRENT_STACK_POINTER 762306a36Sopenharmony_ci select ARCH_HAS_DEBUG_VM_PGTABLE 862306a36Sopenharmony_ci select ARCH_HAS_DMA_PREP_COHERENT if MMU 962306a36Sopenharmony_ci select ARCH_HAS_GCOV_PROFILE_ALL 1062306a36Sopenharmony_ci select ARCH_HAS_KCOV 1162306a36Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU 1262306a36Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU 1362306a36Sopenharmony_ci select ARCH_HAS_DMA_SET_UNCACHED if MMU 1462306a36Sopenharmony_ci select ARCH_HAS_STRNCPY_FROM_USER if !KASAN 1562306a36Sopenharmony_ci select ARCH_HAS_STRNLEN_USER 1662306a36Sopenharmony_ci select ARCH_USE_MEMTEST 1762306a36Sopenharmony_ci select ARCH_USE_QUEUED_RWLOCKS 1862306a36Sopenharmony_ci select ARCH_USE_QUEUED_SPINLOCKS 1962306a36Sopenharmony_ci select ARCH_WANT_IPC_PARSE_VERSION 2062306a36Sopenharmony_ci select BUILDTIME_TABLE_SORT 2162306a36Sopenharmony_ci select CLONE_BACKWARDS 2262306a36Sopenharmony_ci select COMMON_CLK 2362306a36Sopenharmony_ci select DMA_NONCOHERENT_MMAP if MMU 2462306a36Sopenharmony_ci select GENERIC_ATOMIC64 2562306a36Sopenharmony_ci select GENERIC_IRQ_SHOW 2662306a36Sopenharmony_ci select GENERIC_LIB_CMPDI2 2762306a36Sopenharmony_ci select GENERIC_LIB_MULDI3 2862306a36Sopenharmony_ci select GENERIC_LIB_UCMPDI2 2962306a36Sopenharmony_ci select GENERIC_PCI_IOMAP 3062306a36Sopenharmony_ci select GENERIC_SCHED_CLOCK 3162306a36Sopenharmony_ci select GENERIC_IOREMAP if MMU 3262306a36Sopenharmony_ci select HAVE_ARCH_AUDITSYSCALL 3362306a36Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 3462306a36Sopenharmony_ci select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL 3562306a36Sopenharmony_ci select HAVE_ARCH_KCSAN 3662306a36Sopenharmony_ci select HAVE_ARCH_SECCOMP_FILTER 3762306a36Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 3862306a36Sopenharmony_ci select HAVE_ASM_MODVERSIONS 3962306a36Sopenharmony_ci select HAVE_CONTEXT_TRACKING_USER 4062306a36Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK 4162306a36Sopenharmony_ci select HAVE_DMA_CONTIGUOUS 4262306a36Sopenharmony_ci select HAVE_EXIT_THREAD 4362306a36Sopenharmony_ci select HAVE_FUNCTION_TRACER 4462306a36Sopenharmony_ci select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000 4562306a36Sopenharmony_ci select HAVE_HW_BREAKPOINT if PERF_EVENTS 4662306a36Sopenharmony_ci select HAVE_IRQ_TIME_ACCOUNTING 4762306a36Sopenharmony_ci select HAVE_PCI 4862306a36Sopenharmony_ci select HAVE_PERF_EVENTS 4962306a36Sopenharmony_ci select HAVE_STACKPROTECTOR 5062306a36Sopenharmony_ci select HAVE_SYSCALL_TRACEPOINTS 5162306a36Sopenharmony_ci select HAVE_VIRT_CPU_ACCOUNTING_GEN 5262306a36Sopenharmony_ci select IRQ_DOMAIN 5362306a36Sopenharmony_ci select LOCK_MM_AND_FIND_VMA 5462306a36Sopenharmony_ci select MODULES_USE_ELF_RELA 5562306a36Sopenharmony_ci select PERF_USE_VMALLOC 5662306a36Sopenharmony_ci select TRACE_IRQFLAGS_SUPPORT 5762306a36Sopenharmony_ci help 5862306a36Sopenharmony_ci Xtensa processors are 32-bit RISC machines designed by Tensilica 5962306a36Sopenharmony_ci primarily for embedded systems. These processors are both 6062306a36Sopenharmony_ci configurable and extensible. The Linux port to the Xtensa 6162306a36Sopenharmony_ci architecture supports all processor configurations and extensions, 6262306a36Sopenharmony_ci with reasonable minimum requirements. The Xtensa Linux project has 6362306a36Sopenharmony_ci a home page at <http://www.linux-xtensa.org/>. 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciconfig GENERIC_HWEIGHT 6662306a36Sopenharmony_ci def_bool y 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciconfig ARCH_HAS_ILOG2_U32 6962306a36Sopenharmony_ci def_bool n 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ciconfig ARCH_HAS_ILOG2_U64 7262306a36Sopenharmony_ci def_bool n 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciconfig ARCH_MTD_XIP 7562306a36Sopenharmony_ci def_bool y 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciconfig NO_IOPORT_MAP 7862306a36Sopenharmony_ci def_bool n 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciconfig HZ 8162306a36Sopenharmony_ci int 8262306a36Sopenharmony_ci default 100 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ciconfig LOCKDEP_SUPPORT 8562306a36Sopenharmony_ci def_bool y 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ciconfig STACKTRACE_SUPPORT 8862306a36Sopenharmony_ci def_bool y 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ciconfig MMU 9162306a36Sopenharmony_ci def_bool n 9262306a36Sopenharmony_ci select PFAULT 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ciconfig HAVE_XTENSA_GPIO32 9562306a36Sopenharmony_ci def_bool n 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ciconfig KASAN_SHADOW_OFFSET 9862306a36Sopenharmony_ci hex 9962306a36Sopenharmony_ci default 0x6e400000 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ciconfig CPU_BIG_ENDIAN 10262306a36Sopenharmony_ci def_bool $(success,test "$(shell,echo __XTENSA_EB__ | $(CC) -E -P -)" = 1) 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciconfig CPU_LITTLE_ENDIAN 10562306a36Sopenharmony_ci def_bool !CPU_BIG_ENDIAN 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ciconfig CC_HAVE_CALL0_ABI 10862306a36Sopenharmony_ci def_bool $(success,test "$(shell,echo __XTENSA_CALL0_ABI__ | $(CC) -mabi=call0 -E -P - 2>/dev/null)" = 1) 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_cimenu "Processor type and features" 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_cichoice 11362306a36Sopenharmony_ci prompt "Xtensa Processor Configuration" 11462306a36Sopenharmony_ci default XTENSA_VARIANT_FSF 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ciconfig XTENSA_VARIANT_FSF 11762306a36Sopenharmony_ci bool "fsf - default (not generic) configuration" 11862306a36Sopenharmony_ci select MMU 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ciconfig XTENSA_VARIANT_DC232B 12162306a36Sopenharmony_ci bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" 12262306a36Sopenharmony_ci select MMU 12362306a36Sopenharmony_ci select HAVE_XTENSA_GPIO32 12462306a36Sopenharmony_ci help 12562306a36Sopenharmony_ci This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ciconfig XTENSA_VARIANT_DC233C 12862306a36Sopenharmony_ci bool "dc233c - Diamond 233L Standard Core Rev.C (LE)" 12962306a36Sopenharmony_ci select MMU 13062306a36Sopenharmony_ci select HAVE_XTENSA_GPIO32 13162306a36Sopenharmony_ci help 13262306a36Sopenharmony_ci This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE). 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciconfig XTENSA_VARIANT_CUSTOM 13562306a36Sopenharmony_ci bool "Custom Xtensa processor configuration" 13662306a36Sopenharmony_ci select HAVE_XTENSA_GPIO32 13762306a36Sopenharmony_ci help 13862306a36Sopenharmony_ci Select this variant to use a custom Xtensa processor configuration. 13962306a36Sopenharmony_ci You will be prompted for a processor variant CORENAME. 14062306a36Sopenharmony_ciendchoice 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ciconfig XTENSA_VARIANT_CUSTOM_NAME 14362306a36Sopenharmony_ci string "Xtensa Processor Custom Core Variant Name" 14462306a36Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 14562306a36Sopenharmony_ci help 14662306a36Sopenharmony_ci Provide the name of a custom Xtensa processor variant. 14762306a36Sopenharmony_ci This CORENAME selects arch/xtensa/variant/CORENAME. 14862306a36Sopenharmony_ci Don't forget you have to select MMU if you have one. 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ciconfig XTENSA_VARIANT_NAME 15162306a36Sopenharmony_ci string 15262306a36Sopenharmony_ci default "dc232b" if XTENSA_VARIANT_DC232B 15362306a36Sopenharmony_ci default "dc233c" if XTENSA_VARIANT_DC233C 15462306a36Sopenharmony_ci default "fsf" if XTENSA_VARIANT_FSF 15562306a36Sopenharmony_ci default XTENSA_VARIANT_CUSTOM_NAME if XTENSA_VARIANT_CUSTOM 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ciconfig XTENSA_VARIANT_MMU 15862306a36Sopenharmony_ci bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)" 15962306a36Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 16062306a36Sopenharmony_ci default y 16162306a36Sopenharmony_ci select MMU 16262306a36Sopenharmony_ci help 16362306a36Sopenharmony_ci Build a Conventional Kernel with full MMU support, 16462306a36Sopenharmony_ci ie: it supports a TLB with auto-loading, page protection. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciconfig XTENSA_VARIANT_HAVE_PERF_EVENTS 16762306a36Sopenharmony_ci bool "Core variant has Performance Monitor Module" 16862306a36Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 16962306a36Sopenharmony_ci default n 17062306a36Sopenharmony_ci help 17162306a36Sopenharmony_ci Enable if core variant has Performance Monitor Module with 17262306a36Sopenharmony_ci External Registers Interface. 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci If unsure, say N. 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ciconfig XTENSA_FAKE_NMI 17762306a36Sopenharmony_ci bool "Treat PMM IRQ as NMI" 17862306a36Sopenharmony_ci depends on XTENSA_VARIANT_HAVE_PERF_EVENTS 17962306a36Sopenharmony_ci default n 18062306a36Sopenharmony_ci help 18162306a36Sopenharmony_ci If PMM IRQ is the only IRQ at EXCM level it is safe to 18262306a36Sopenharmony_ci treat it as NMI, which improves accuracy of profiling. 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci If there are other interrupts at or above PMM IRQ priority level 18562306a36Sopenharmony_ci but not above the EXCM level, PMM IRQ still may be treated as NMI, 18662306a36Sopenharmony_ci but only if these IRQs are not used. There will be a build warning 18762306a36Sopenharmony_ci saying that this is not safe, and a bugcheck if one of these IRQs 18862306a36Sopenharmony_ci actually fire. 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci If unsure, say N. 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciconfig PFAULT 19362306a36Sopenharmony_ci bool "Handle protection faults" if EXPERT && !MMU 19462306a36Sopenharmony_ci default y 19562306a36Sopenharmony_ci help 19662306a36Sopenharmony_ci Handle protection faults. MMU configurations must enable it. 19762306a36Sopenharmony_ci noMMU configurations may disable it if used memory map never 19862306a36Sopenharmony_ci generates protection faults or faults are always fatal. 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci If unsure, say Y. 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ciconfig XTENSA_UNALIGNED_USER 20362306a36Sopenharmony_ci bool "Unaligned memory access in user space" 20462306a36Sopenharmony_ci help 20562306a36Sopenharmony_ci The Xtensa architecture currently does not handle unaligned 20662306a36Sopenharmony_ci memory accesses in hardware but through an exception handler. 20762306a36Sopenharmony_ci Per default, unaligned memory accesses are disabled in user space. 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ci Say Y here to enable unaligned memory access in user space. 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ciconfig XTENSA_LOAD_STORE 21262306a36Sopenharmony_ci bool "Load/store exception handler for memory only readable with l32" 21362306a36Sopenharmony_ci help 21462306a36Sopenharmony_ci The Xtensa architecture only allows reading memory attached to its 21562306a36Sopenharmony_ci instruction bus with l32r and l32i instructions, all other 21662306a36Sopenharmony_ci instructions raise an exception with the LoadStoreErrorCause code. 21762306a36Sopenharmony_ci This makes it hard to use some configurations, e.g. store string 21862306a36Sopenharmony_ci literals in FLASH memory attached to the instruction bus. 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci Say Y here to enable exception handler that allows transparent 22162306a36Sopenharmony_ci byte and 2-byte access to memory attached to instruction bus. 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ciconfig HAVE_SMP 22462306a36Sopenharmony_ci bool "System Supports SMP (MX)" 22562306a36Sopenharmony_ci depends on XTENSA_VARIANT_CUSTOM 22662306a36Sopenharmony_ci select XTENSA_MX 22762306a36Sopenharmony_ci help 22862306a36Sopenharmony_ci This option is used to indicate that the system-on-a-chip (SOC) 22962306a36Sopenharmony_ci supports Multiprocessing. Multiprocessor support implemented above 23062306a36Sopenharmony_ci the CPU core definition and currently needs to be selected manually. 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci Multiprocessor support is implemented with external cache and 23362306a36Sopenharmony_ci interrupt controllers. 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci The MX interrupt distributer adds Interprocessor Interrupts 23662306a36Sopenharmony_ci and causes the IRQ numbers to be increased by 4 for devices 23762306a36Sopenharmony_ci like the open cores ethernet driver and the serial interface. 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ci You still have to select "Enable SMP" to enable SMP on this SOC. 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ciconfig SMP 24262306a36Sopenharmony_ci bool "Enable Symmetric multi-processing support" 24362306a36Sopenharmony_ci depends on HAVE_SMP 24462306a36Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 24562306a36Sopenharmony_ci help 24662306a36Sopenharmony_ci Enabled SMP Software; allows more than one CPU/CORE 24762306a36Sopenharmony_ci to be activated during startup. 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ciconfig NR_CPUS 25062306a36Sopenharmony_ci depends on SMP 25162306a36Sopenharmony_ci int "Maximum number of CPUs (2-32)" 25262306a36Sopenharmony_ci range 2 32 25362306a36Sopenharmony_ci default "4" 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ciconfig HOTPLUG_CPU 25662306a36Sopenharmony_ci bool "Enable CPU hotplug support" 25762306a36Sopenharmony_ci depends on SMP 25862306a36Sopenharmony_ci help 25962306a36Sopenharmony_ci Say Y here to allow turning CPUs off and on. CPUs can be 26062306a36Sopenharmony_ci controlled through /sys/devices/system/cpu. 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci Say N if you want to disable CPU hotplug. 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ciconfig SECONDARY_RESET_VECTOR 26562306a36Sopenharmony_ci bool "Secondary cores use alternative reset vector" 26662306a36Sopenharmony_ci default y 26762306a36Sopenharmony_ci depends on HAVE_SMP 26862306a36Sopenharmony_ci help 26962306a36Sopenharmony_ci Secondary cores may be configured to use alternative reset vector, 27062306a36Sopenharmony_ci or all cores may use primary reset vector. 27162306a36Sopenharmony_ci Say Y here to supply handler for the alternative reset location. 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ciconfig FAST_SYSCALL_XTENSA 27462306a36Sopenharmony_ci bool "Enable fast atomic syscalls" 27562306a36Sopenharmony_ci default n 27662306a36Sopenharmony_ci help 27762306a36Sopenharmony_ci fast_syscall_xtensa is a syscall that can make atomic operations 27862306a36Sopenharmony_ci on UP kernel when processor has no s32c1i support. 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci This syscall is deprecated. It may have issues when called with 28162306a36Sopenharmony_ci invalid arguments. It is provided only for backwards compatibility. 28262306a36Sopenharmony_ci Only enable it if your userspace software requires it. 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ci If unsure, say N. 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ciconfig FAST_SYSCALL_SPILL_REGISTERS 28762306a36Sopenharmony_ci bool "Enable spill registers syscall" 28862306a36Sopenharmony_ci default n 28962306a36Sopenharmony_ci help 29062306a36Sopenharmony_ci fast_syscall_spill_registers is a syscall that spills all active 29162306a36Sopenharmony_ci register windows of a calling userspace task onto its stack. 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci This syscall is deprecated. It may have issues when called with 29462306a36Sopenharmony_ci invalid arguments. It is provided only for backwards compatibility. 29562306a36Sopenharmony_ci Only enable it if your userspace software requires it. 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci If unsure, say N. 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_cichoice 30062306a36Sopenharmony_ci prompt "Kernel ABI" 30162306a36Sopenharmony_ci default KERNEL_ABI_DEFAULT 30262306a36Sopenharmony_ci help 30362306a36Sopenharmony_ci Select ABI for the kernel code. This ABI is independent of the 30462306a36Sopenharmony_ci supported userspace ABI and any combination of the 30562306a36Sopenharmony_ci kernel/userspace ABI is possible and should work. 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci In case both kernel and userspace support only call0 ABI 30862306a36Sopenharmony_ci all register windows support code will be omitted from the 30962306a36Sopenharmony_ci build. 31062306a36Sopenharmony_ci 31162306a36Sopenharmony_ci If unsure, choose the default ABI. 31262306a36Sopenharmony_ci 31362306a36Sopenharmony_ciconfig KERNEL_ABI_DEFAULT 31462306a36Sopenharmony_ci bool "Default ABI" 31562306a36Sopenharmony_ci help 31662306a36Sopenharmony_ci Select this option to compile kernel code with the default ABI 31762306a36Sopenharmony_ci selected for the toolchain. 31862306a36Sopenharmony_ci Normally cores with windowed registers option use windowed ABI and 31962306a36Sopenharmony_ci cores without it use call0 ABI. 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ciconfig KERNEL_ABI_CALL0 32262306a36Sopenharmony_ci bool "Call0 ABI" if CC_HAVE_CALL0_ABI 32362306a36Sopenharmony_ci help 32462306a36Sopenharmony_ci Select this option to compile kernel code with call0 ABI even with 32562306a36Sopenharmony_ci toolchain that defaults to windowed ABI. 32662306a36Sopenharmony_ci When this option is not selected the default toolchain ABI will 32762306a36Sopenharmony_ci be used for the kernel code. 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ciendchoice 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ciconfig USER_ABI_CALL0 33262306a36Sopenharmony_ci bool 33362306a36Sopenharmony_ci 33462306a36Sopenharmony_cichoice 33562306a36Sopenharmony_ci prompt "Userspace ABI" 33662306a36Sopenharmony_ci default USER_ABI_DEFAULT 33762306a36Sopenharmony_ci help 33862306a36Sopenharmony_ci Select supported userspace ABI. 33962306a36Sopenharmony_ci 34062306a36Sopenharmony_ci If unsure, choose the default ABI. 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_ciconfig USER_ABI_DEFAULT 34362306a36Sopenharmony_ci bool "Default ABI only" 34462306a36Sopenharmony_ci help 34562306a36Sopenharmony_ci Assume default userspace ABI. For XEA2 cores it is windowed ABI. 34662306a36Sopenharmony_ci call0 ABI binaries may be run on such kernel, but signal delivery 34762306a36Sopenharmony_ci will not work correctly for them. 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ciconfig USER_ABI_CALL0_ONLY 35062306a36Sopenharmony_ci bool "Call0 ABI only" 35162306a36Sopenharmony_ci select USER_ABI_CALL0 35262306a36Sopenharmony_ci help 35362306a36Sopenharmony_ci Select this option to support only call0 ABI in userspace. 35462306a36Sopenharmony_ci Windowed ABI binaries will crash with a segfault caused by 35562306a36Sopenharmony_ci an illegal instruction exception on the first 'entry' opcode. 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_ci Choose this option if you're planning to run only user code 35862306a36Sopenharmony_ci built with call0 ABI. 35962306a36Sopenharmony_ci 36062306a36Sopenharmony_ciconfig USER_ABI_CALL0_PROBE 36162306a36Sopenharmony_ci bool "Support both windowed and call0 ABI by probing" 36262306a36Sopenharmony_ci select USER_ABI_CALL0 36362306a36Sopenharmony_ci help 36462306a36Sopenharmony_ci Select this option to support both windowed and call0 userspace 36562306a36Sopenharmony_ci ABIs. When enabled all processes are started with PS.WOE disabled 36662306a36Sopenharmony_ci and a fast user exception handler for an illegal instruction is 36762306a36Sopenharmony_ci used to turn on PS.WOE bit on the first 'entry' opcode executed by 36862306a36Sopenharmony_ci the userspace. 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ci This option should be enabled for the kernel that must support 37162306a36Sopenharmony_ci both call0 and windowed ABIs in userspace at the same time. 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci Note that Xtensa ISA does not guarantee that entry opcode will 37462306a36Sopenharmony_ci raise an illegal instruction exception on cores with XEA2 when 37562306a36Sopenharmony_ci PS.WOE is disabled, check whether the target core supports it. 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ciendchoice 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_ciendmenu 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ciconfig XTENSA_CALIBRATE_CCOUNT 38262306a36Sopenharmony_ci def_bool n 38362306a36Sopenharmony_ci help 38462306a36Sopenharmony_ci On some platforms (XT2000, for example), the CPU clock rate can 38562306a36Sopenharmony_ci vary. The frequency can be determined, however, by measuring 38662306a36Sopenharmony_ci against a well known, fixed frequency, such as an UART oscillator. 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ciconfig SERIAL_CONSOLE 38962306a36Sopenharmony_ci def_bool n 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_ciconfig PLATFORM_HAVE_XIP 39262306a36Sopenharmony_ci def_bool n 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_cimenu "Platform options" 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_cichoice 39762306a36Sopenharmony_ci prompt "Xtensa System Type" 39862306a36Sopenharmony_ci default XTENSA_PLATFORM_ISS 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ciconfig XTENSA_PLATFORM_ISS 40162306a36Sopenharmony_ci bool "ISS" 40262306a36Sopenharmony_ci select XTENSA_CALIBRATE_CCOUNT 40362306a36Sopenharmony_ci select SERIAL_CONSOLE 40462306a36Sopenharmony_ci help 40562306a36Sopenharmony_ci ISS is an acronym for Tensilica's Instruction Set Simulator. 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ciconfig XTENSA_PLATFORM_XT2000 40862306a36Sopenharmony_ci bool "XT2000" 40962306a36Sopenharmony_ci help 41062306a36Sopenharmony_ci XT2000 is the name of Tensilica's feature-rich emulation platform. 41162306a36Sopenharmony_ci This hardware is capable of running a full Linux distribution. 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ciconfig XTENSA_PLATFORM_XTFPGA 41462306a36Sopenharmony_ci bool "XTFPGA" 41562306a36Sopenharmony_ci select ETHOC if ETHERNET 41662306a36Sopenharmony_ci select PLATFORM_WANT_DEFAULT_MEM if !MMU 41762306a36Sopenharmony_ci select SERIAL_CONSOLE 41862306a36Sopenharmony_ci select XTENSA_CALIBRATE_CCOUNT 41962306a36Sopenharmony_ci select PLATFORM_HAVE_XIP 42062306a36Sopenharmony_ci help 42162306a36Sopenharmony_ci XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 42262306a36Sopenharmony_ci This hardware is capable of running a full Linux distribution. 42362306a36Sopenharmony_ci 42462306a36Sopenharmony_ciendchoice 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ciconfig PLATFORM_NR_IRQS 42762306a36Sopenharmony_ci int 42862306a36Sopenharmony_ci default 3 if XTENSA_PLATFORM_XT2000 42962306a36Sopenharmony_ci default 0 43062306a36Sopenharmony_ci 43162306a36Sopenharmony_ciconfig XTENSA_CPU_CLOCK 43262306a36Sopenharmony_ci int "CPU clock rate [MHz]" 43362306a36Sopenharmony_ci depends on !XTENSA_CALIBRATE_CCOUNT 43462306a36Sopenharmony_ci default 16 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY 43762306a36Sopenharmony_ci bool "Auto calibration of the BogoMIPS value" 43862306a36Sopenharmony_ci help 43962306a36Sopenharmony_ci The BogoMIPS value can easily be derived from the CPU frequency. 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_ciconfig CMDLINE_BOOL 44262306a36Sopenharmony_ci bool "Default bootloader kernel arguments" 44362306a36Sopenharmony_ci 44462306a36Sopenharmony_ciconfig CMDLINE 44562306a36Sopenharmony_ci string "Initial kernel command string" 44662306a36Sopenharmony_ci depends on CMDLINE_BOOL 44762306a36Sopenharmony_ci default "console=ttyS0,38400 root=/dev/ram" 44862306a36Sopenharmony_ci help 44962306a36Sopenharmony_ci On some architectures (EBSA110 and CATS), there is currently no way 45062306a36Sopenharmony_ci for the boot loader to pass arguments to the kernel. For these 45162306a36Sopenharmony_ci architectures, you should supply some command-line options at build 45262306a36Sopenharmony_ci time by entering them here. As a minimum, you should specify the 45362306a36Sopenharmony_ci memory size and the root device (e.g., mem=64M root=/dev/nfs). 45462306a36Sopenharmony_ci 45562306a36Sopenharmony_ciconfig USE_OF 45662306a36Sopenharmony_ci bool "Flattened Device Tree support" 45762306a36Sopenharmony_ci select OF 45862306a36Sopenharmony_ci select OF_EARLY_FLATTREE 45962306a36Sopenharmony_ci help 46062306a36Sopenharmony_ci Include support for flattened device tree machine descriptions. 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_ciconfig BUILTIN_DTB_SOURCE 46362306a36Sopenharmony_ci string "DTB to build into the kernel image" 46462306a36Sopenharmony_ci depends on OF 46562306a36Sopenharmony_ci 46662306a36Sopenharmony_ciconfig PARSE_BOOTPARAM 46762306a36Sopenharmony_ci bool "Parse bootparam block" 46862306a36Sopenharmony_ci default y 46962306a36Sopenharmony_ci help 47062306a36Sopenharmony_ci Parse parameters passed to the kernel from the bootloader. It may 47162306a36Sopenharmony_ci be disabled if the kernel is known to run without the bootloader. 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ci If unsure, say Y. 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_cichoice 47662306a36Sopenharmony_ci prompt "Semihosting interface" 47762306a36Sopenharmony_ci default XTENSA_SIMCALL_ISS 47862306a36Sopenharmony_ci depends on XTENSA_PLATFORM_ISS 47962306a36Sopenharmony_ci help 48062306a36Sopenharmony_ci Choose semihosting interface that will be used for serial port, 48162306a36Sopenharmony_ci block device and networking. 48262306a36Sopenharmony_ci 48362306a36Sopenharmony_ciconfig XTENSA_SIMCALL_ISS 48462306a36Sopenharmony_ci bool "simcall" 48562306a36Sopenharmony_ci help 48662306a36Sopenharmony_ci Use simcall instruction. simcall is only available on simulators, 48762306a36Sopenharmony_ci it does nothing on hardware. 48862306a36Sopenharmony_ci 48962306a36Sopenharmony_ciconfig XTENSA_SIMCALL_GDBIO 49062306a36Sopenharmony_ci bool "GDBIO" 49162306a36Sopenharmony_ci help 49262306a36Sopenharmony_ci Use break instruction. It is available on real hardware when GDB 49362306a36Sopenharmony_ci is attached to it via JTAG. 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ciendchoice 49662306a36Sopenharmony_ci 49762306a36Sopenharmony_ciconfig BLK_DEV_SIMDISK 49862306a36Sopenharmony_ci tristate "Host file-based simulated block device support" 49962306a36Sopenharmony_ci default n 50062306a36Sopenharmony_ci depends on XTENSA_PLATFORM_ISS && BLOCK 50162306a36Sopenharmony_ci help 50262306a36Sopenharmony_ci Create block devices that map to files in the host file system. 50362306a36Sopenharmony_ci Device binding to host file may be changed at runtime via proc 50462306a36Sopenharmony_ci interface provided the device is not in use. 50562306a36Sopenharmony_ci 50662306a36Sopenharmony_ciconfig BLK_DEV_SIMDISK_COUNT 50762306a36Sopenharmony_ci int "Number of host file-based simulated block devices" 50862306a36Sopenharmony_ci range 1 10 50962306a36Sopenharmony_ci depends on BLK_DEV_SIMDISK 51062306a36Sopenharmony_ci default 2 51162306a36Sopenharmony_ci help 51262306a36Sopenharmony_ci This is the default minimal number of created block devices. 51362306a36Sopenharmony_ci Kernel/module parameter 'simdisk_count' may be used to change this 51462306a36Sopenharmony_ci value at runtime. More file names (but no more than 10) may be 51562306a36Sopenharmony_ci specified as parameters, simdisk_count grows accordingly. 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ciconfig SIMDISK0_FILENAME 51862306a36Sopenharmony_ci string "Host filename for the first simulated device" 51962306a36Sopenharmony_ci depends on BLK_DEV_SIMDISK = y 52062306a36Sopenharmony_ci default "" 52162306a36Sopenharmony_ci help 52262306a36Sopenharmony_ci Attach a first simdisk to a host file. Conventionally, this file 52362306a36Sopenharmony_ci contains a root file system. 52462306a36Sopenharmony_ci 52562306a36Sopenharmony_ciconfig SIMDISK1_FILENAME 52662306a36Sopenharmony_ci string "Host filename for the second simulated device" 52762306a36Sopenharmony_ci depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 52862306a36Sopenharmony_ci default "" 52962306a36Sopenharmony_ci help 53062306a36Sopenharmony_ci Another simulated disk in a host file for a buildroot-independent 53162306a36Sopenharmony_ci storage. 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ciconfig XTFPGA_LCD 53462306a36Sopenharmony_ci bool "Enable XTFPGA LCD driver" 53562306a36Sopenharmony_ci depends on XTENSA_PLATFORM_XTFPGA 53662306a36Sopenharmony_ci default n 53762306a36Sopenharmony_ci help 53862306a36Sopenharmony_ci There's a 2x16 LCD on most of XTFPGA boards, kernel may output 53962306a36Sopenharmony_ci progress messages there during bootup/shutdown. It may be useful 54062306a36Sopenharmony_ci during board bringup. 54162306a36Sopenharmony_ci 54262306a36Sopenharmony_ci If unsure, say N. 54362306a36Sopenharmony_ci 54462306a36Sopenharmony_ciconfig XTFPGA_LCD_BASE_ADDR 54562306a36Sopenharmony_ci hex "XTFPGA LCD base address" 54662306a36Sopenharmony_ci depends on XTFPGA_LCD 54762306a36Sopenharmony_ci default "0x0d0c0000" 54862306a36Sopenharmony_ci help 54962306a36Sopenharmony_ci Base address of the LCD controller inside KIO region. 55062306a36Sopenharmony_ci Different boards from XTFPGA family have LCD controller at different 55162306a36Sopenharmony_ci addresses. Please consult prototyping user guide for your board for 55262306a36Sopenharmony_ci the correct address. Wrong address here may lead to hardware lockup. 55362306a36Sopenharmony_ci 55462306a36Sopenharmony_ciconfig XTFPGA_LCD_8BIT_ACCESS 55562306a36Sopenharmony_ci bool "Use 8-bit access to XTFPGA LCD" 55662306a36Sopenharmony_ci depends on XTFPGA_LCD 55762306a36Sopenharmony_ci default n 55862306a36Sopenharmony_ci help 55962306a36Sopenharmony_ci LCD may be connected with 4- or 8-bit interface, 8-bit access may 56062306a36Sopenharmony_ci only be used with 8-bit interface. Please consult prototyping user 56162306a36Sopenharmony_ci guide for your board for the correct interface width. 56262306a36Sopenharmony_ci 56362306a36Sopenharmony_cicomment "Kernel memory layout" 56462306a36Sopenharmony_ci 56562306a36Sopenharmony_ciconfig INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 56662306a36Sopenharmony_ci bool "Initialize Xtensa MMU inside the Linux kernel code" 56762306a36Sopenharmony_ci depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B 56862306a36Sopenharmony_ci default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM 56962306a36Sopenharmony_ci help 57062306a36Sopenharmony_ci Earlier version initialized the MMU in the exception vector 57162306a36Sopenharmony_ci before jumping to _startup in head.S and had an advantage that 57262306a36Sopenharmony_ci it was possible to place a software breakpoint at 'reset' and 57362306a36Sopenharmony_ci then enter your normal kernel breakpoints once the MMU was mapped 57462306a36Sopenharmony_ci to the kernel mappings (0XC0000000). 57562306a36Sopenharmony_ci 57662306a36Sopenharmony_ci This unfortunately won't work for U-Boot and likely also won't 57762306a36Sopenharmony_ci work for using KEXEC to have a hot kernel ready for doing a 57862306a36Sopenharmony_ci KDUMP. 57962306a36Sopenharmony_ci 58062306a36Sopenharmony_ci So now the MMU is initialized in head.S but it's necessary to 58162306a36Sopenharmony_ci use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 58262306a36Sopenharmony_ci xt-gdb can't place a Software Breakpoint in the 0XD region prior 58362306a36Sopenharmony_ci to mapping the MMU and after mapping even if the area of low memory 58462306a36Sopenharmony_ci was mapped gdb wouldn't remove the breakpoint on hitting it as the 58562306a36Sopenharmony_ci PC wouldn't match. Since Hardware Breakpoints are recommended for 58662306a36Sopenharmony_ci Linux configurations it seems reasonable to just assume they exist 58762306a36Sopenharmony_ci and leave this older mechanism for unfortunate souls that choose 58862306a36Sopenharmony_ci not to follow Tensilica's recommendation. 58962306a36Sopenharmony_ci 59062306a36Sopenharmony_ci Selecting this will cause U-Boot to set the KERNEL Load and Entry 59162306a36Sopenharmony_ci address at 0x00003000 instead of the mapped std of 0xD0003000. 59262306a36Sopenharmony_ci 59362306a36Sopenharmony_ci If in doubt, say Y. 59462306a36Sopenharmony_ci 59562306a36Sopenharmony_ciconfig XIP_KERNEL 59662306a36Sopenharmony_ci bool "Kernel Execute-In-Place from ROM" 59762306a36Sopenharmony_ci depends on PLATFORM_HAVE_XIP 59862306a36Sopenharmony_ci help 59962306a36Sopenharmony_ci Execute-In-Place allows the kernel to run from non-volatile storage 60062306a36Sopenharmony_ci directly addressable by the CPU, such as NOR flash. This saves RAM 60162306a36Sopenharmony_ci space since the text section of the kernel is not loaded from flash 60262306a36Sopenharmony_ci to RAM. Read-write sections, such as the data section and stack, 60362306a36Sopenharmony_ci are still copied to RAM. The XIP kernel is not compressed since 60462306a36Sopenharmony_ci it has to run directly from flash, so it will take more space to 60562306a36Sopenharmony_ci store it. The flash address used to link the kernel object files, 60662306a36Sopenharmony_ci and for storing it, is configuration dependent. Therefore, if you 60762306a36Sopenharmony_ci say Y here, you must know the proper physical address where to 60862306a36Sopenharmony_ci store the kernel image depending on your own flash memory usage. 60962306a36Sopenharmony_ci 61062306a36Sopenharmony_ci Also note that the make target becomes "make xipImage" rather than 61162306a36Sopenharmony_ci "make Image" or "make uImage". The final kernel binary to put in 61262306a36Sopenharmony_ci ROM memory will be arch/xtensa/boot/xipImage. 61362306a36Sopenharmony_ci 61462306a36Sopenharmony_ci If unsure, say N. 61562306a36Sopenharmony_ci 61662306a36Sopenharmony_ciconfig MEMMAP_CACHEATTR 61762306a36Sopenharmony_ci hex "Cache attributes for the memory address space" 61862306a36Sopenharmony_ci depends on !MMU 61962306a36Sopenharmony_ci default 0x22222222 62062306a36Sopenharmony_ci help 62162306a36Sopenharmony_ci These cache attributes are set up for noMMU systems. Each hex digit 62262306a36Sopenharmony_ci specifies cache attributes for the corresponding 512MB memory 62362306a36Sopenharmony_ci region: bits 0..3 -- for addresses 0x00000000..0x1fffffff, 62462306a36Sopenharmony_ci bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on. 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ci Cache attribute values are specific for the MMU type. 62762306a36Sopenharmony_ci For region protection MMUs: 62862306a36Sopenharmony_ci 1: WT cached, 62962306a36Sopenharmony_ci 2: cache bypass, 63062306a36Sopenharmony_ci 4: WB cached, 63162306a36Sopenharmony_ci f: illegal. 63262306a36Sopenharmony_ci For full MMU: 63362306a36Sopenharmony_ci bit 0: executable, 63462306a36Sopenharmony_ci bit 1: writable, 63562306a36Sopenharmony_ci bits 2..3: 63662306a36Sopenharmony_ci 0: cache bypass, 63762306a36Sopenharmony_ci 1: WB cache, 63862306a36Sopenharmony_ci 2: WT cache, 63962306a36Sopenharmony_ci 3: special (c and e are illegal, f is reserved). 64062306a36Sopenharmony_ci For MPU: 64162306a36Sopenharmony_ci 0: illegal, 64262306a36Sopenharmony_ci 1: WB cache, 64362306a36Sopenharmony_ci 2: WB, no-write-allocate cache, 64462306a36Sopenharmony_ci 3: WT cache, 64562306a36Sopenharmony_ci 4: cache bypass. 64662306a36Sopenharmony_ci 64762306a36Sopenharmony_ciconfig KSEG_PADDR 64862306a36Sopenharmony_ci hex "Physical address of the KSEG mapping" 64962306a36Sopenharmony_ci depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU 65062306a36Sopenharmony_ci default 0x00000000 65162306a36Sopenharmony_ci help 65262306a36Sopenharmony_ci This is the physical address where KSEG is mapped. Please refer to 65362306a36Sopenharmony_ci the chosen KSEG layout help for the required address alignment. 65462306a36Sopenharmony_ci Unpacked kernel image (including vectors) must be located completely 65562306a36Sopenharmony_ci within KSEG. 65662306a36Sopenharmony_ci Physical memory below this address is not available to linux. 65762306a36Sopenharmony_ci 65862306a36Sopenharmony_ci If unsure, leave the default value here. 65962306a36Sopenharmony_ci 66062306a36Sopenharmony_ciconfig KERNEL_VIRTUAL_ADDRESS 66162306a36Sopenharmony_ci hex "Kernel virtual address" 66262306a36Sopenharmony_ci depends on MMU && XIP_KERNEL 66362306a36Sopenharmony_ci default 0xd0003000 66462306a36Sopenharmony_ci help 66562306a36Sopenharmony_ci This is the virtual address where the XIP kernel is mapped. 66662306a36Sopenharmony_ci XIP kernel may be mapped into KSEG or KIO region, virtual address 66762306a36Sopenharmony_ci provided here must match kernel load address provided in 66862306a36Sopenharmony_ci KERNEL_LOAD_ADDRESS. 66962306a36Sopenharmony_ci 67062306a36Sopenharmony_ciconfig KERNEL_LOAD_ADDRESS 67162306a36Sopenharmony_ci hex "Kernel load address" 67262306a36Sopenharmony_ci default 0x60003000 if !MMU 67362306a36Sopenharmony_ci default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 67462306a36Sopenharmony_ci default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 67562306a36Sopenharmony_ci help 67662306a36Sopenharmony_ci This is the address where the kernel is loaded. 67762306a36Sopenharmony_ci It is virtual address for MMUv2 configurations and physical address 67862306a36Sopenharmony_ci for all other configurations. 67962306a36Sopenharmony_ci 68062306a36Sopenharmony_ci If unsure, leave the default value here. 68162306a36Sopenharmony_ci 68262306a36Sopenharmony_cichoice 68362306a36Sopenharmony_ci prompt "Relocatable vectors location" 68462306a36Sopenharmony_ci default XTENSA_VECTORS_IN_TEXT 68562306a36Sopenharmony_ci help 68662306a36Sopenharmony_ci Choose whether relocatable vectors are merged into the kernel .text 68762306a36Sopenharmony_ci or placed separately at runtime. This option does not affect 68862306a36Sopenharmony_ci configurations without VECBASE register where vectors are always 68962306a36Sopenharmony_ci placed at their hardware-defined locations. 69062306a36Sopenharmony_ci 69162306a36Sopenharmony_ciconfig XTENSA_VECTORS_IN_TEXT 69262306a36Sopenharmony_ci bool "Merge relocatable vectors into kernel text" 69362306a36Sopenharmony_ci depends on !MTD_XIP 69462306a36Sopenharmony_ci help 69562306a36Sopenharmony_ci This option puts relocatable vectors into the kernel .text section 69662306a36Sopenharmony_ci with proper alignment. 69762306a36Sopenharmony_ci This is a safe choice for most configurations. 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_ciconfig XTENSA_VECTORS_SEPARATE 70062306a36Sopenharmony_ci bool "Put relocatable vectors at fixed address" 70162306a36Sopenharmony_ci help 70262306a36Sopenharmony_ci This option puts relocatable vectors at specific virtual address. 70362306a36Sopenharmony_ci Vectors are merged with the .init data in the kernel image and 70462306a36Sopenharmony_ci are copied into their designated location during kernel startup. 70562306a36Sopenharmony_ci Use it to put vectors into IRAM or out of FLASH on kernels with 70662306a36Sopenharmony_ci XIP-aware MTD support. 70762306a36Sopenharmony_ci 70862306a36Sopenharmony_ciendchoice 70962306a36Sopenharmony_ci 71062306a36Sopenharmony_ciconfig VECTORS_ADDR 71162306a36Sopenharmony_ci hex "Kernel vectors virtual address" 71262306a36Sopenharmony_ci default 0x00000000 71362306a36Sopenharmony_ci depends on XTENSA_VECTORS_SEPARATE 71462306a36Sopenharmony_ci help 71562306a36Sopenharmony_ci This is the virtual address of the (relocatable) vectors base. 71662306a36Sopenharmony_ci It must be within KSEG if MMU is used. 71762306a36Sopenharmony_ci 71862306a36Sopenharmony_ciconfig XIP_DATA_ADDR 71962306a36Sopenharmony_ci hex "XIP kernel data virtual address" 72062306a36Sopenharmony_ci depends on XIP_KERNEL 72162306a36Sopenharmony_ci default 0x00000000 72262306a36Sopenharmony_ci help 72362306a36Sopenharmony_ci This is the virtual address where XIP kernel data is copied. 72462306a36Sopenharmony_ci It must be within KSEG if MMU is used. 72562306a36Sopenharmony_ci 72662306a36Sopenharmony_ciconfig PLATFORM_WANT_DEFAULT_MEM 72762306a36Sopenharmony_ci def_bool n 72862306a36Sopenharmony_ci 72962306a36Sopenharmony_ciconfig DEFAULT_MEM_START 73062306a36Sopenharmony_ci hex 73162306a36Sopenharmony_ci prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM 73262306a36Sopenharmony_ci default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM 73362306a36Sopenharmony_ci default 0x00000000 73462306a36Sopenharmony_ci help 73562306a36Sopenharmony_ci This is the base address used for both PAGE_OFFSET and PHYS_OFFSET 73662306a36Sopenharmony_ci in noMMU configurations. 73762306a36Sopenharmony_ci 73862306a36Sopenharmony_ci If unsure, leave the default value here. 73962306a36Sopenharmony_ci 74062306a36Sopenharmony_cichoice 74162306a36Sopenharmony_ci prompt "KSEG layout" 74262306a36Sopenharmony_ci depends on MMU 74362306a36Sopenharmony_ci default XTENSA_KSEG_MMU_V2 74462306a36Sopenharmony_ci 74562306a36Sopenharmony_ciconfig XTENSA_KSEG_MMU_V2 74662306a36Sopenharmony_ci bool "MMUv2: 128MB cached + 128MB uncached" 74762306a36Sopenharmony_ci help 74862306a36Sopenharmony_ci MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting 74962306a36Sopenharmony_ci at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000 75062306a36Sopenharmony_ci without cache. 75162306a36Sopenharmony_ci KSEG_PADDR must be aligned to 128MB. 75262306a36Sopenharmony_ci 75362306a36Sopenharmony_ciconfig XTENSA_KSEG_256M 75462306a36Sopenharmony_ci bool "256MB cached + 256MB uncached" 75562306a36Sopenharmony_ci depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 75662306a36Sopenharmony_ci help 75762306a36Sopenharmony_ci TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000 75862306a36Sopenharmony_ci with cache and to 0xc0000000 without cache. 75962306a36Sopenharmony_ci KSEG_PADDR must be aligned to 256MB. 76062306a36Sopenharmony_ci 76162306a36Sopenharmony_ciconfig XTENSA_KSEG_512M 76262306a36Sopenharmony_ci bool "512MB cached + 512MB uncached" 76362306a36Sopenharmony_ci depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 76462306a36Sopenharmony_ci help 76562306a36Sopenharmony_ci TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000 76662306a36Sopenharmony_ci with cache and to 0xc0000000 without cache. 76762306a36Sopenharmony_ci KSEG_PADDR must be aligned to 256MB. 76862306a36Sopenharmony_ci 76962306a36Sopenharmony_ciendchoice 77062306a36Sopenharmony_ci 77162306a36Sopenharmony_ciconfig HIGHMEM 77262306a36Sopenharmony_ci bool "High Memory Support" 77362306a36Sopenharmony_ci depends on MMU 77462306a36Sopenharmony_ci select KMAP_LOCAL 77562306a36Sopenharmony_ci help 77662306a36Sopenharmony_ci Linux can use the full amount of RAM in the system by 77762306a36Sopenharmony_ci default. However, the default MMUv2 setup only maps the 77862306a36Sopenharmony_ci lowermost 128 MB of memory linearly to the areas starting 77962306a36Sopenharmony_ci at 0xd0000000 (cached) and 0xd8000000 (uncached). 78062306a36Sopenharmony_ci When there are more than 128 MB memory in the system not 78162306a36Sopenharmony_ci all of it can be "permanently mapped" by the kernel. 78262306a36Sopenharmony_ci The physical memory that's not permanently mapped is called 78362306a36Sopenharmony_ci "high memory". 78462306a36Sopenharmony_ci 78562306a36Sopenharmony_ci If you are compiling a kernel which will never run on a 78662306a36Sopenharmony_ci machine with more than 128 MB total physical RAM, answer 78762306a36Sopenharmony_ci N here. 78862306a36Sopenharmony_ci 78962306a36Sopenharmony_ci If unsure, say Y. 79062306a36Sopenharmony_ci 79162306a36Sopenharmony_ciconfig ARCH_FORCE_MAX_ORDER 79262306a36Sopenharmony_ci int "Order of maximal physically contiguous allocations" 79362306a36Sopenharmony_ci default "10" 79462306a36Sopenharmony_ci help 79562306a36Sopenharmony_ci The kernel page allocator limits the size of maximal physically 79662306a36Sopenharmony_ci contiguous allocations. The limit is called MAX_ORDER and it 79762306a36Sopenharmony_ci defines the maximal power of two of number of pages that can be 79862306a36Sopenharmony_ci allocated as a single contiguous block. This option allows 79962306a36Sopenharmony_ci overriding the default setting when ability to allocate very 80062306a36Sopenharmony_ci large blocks of physically contiguous memory is required. 80162306a36Sopenharmony_ci 80262306a36Sopenharmony_ci Don't change if unsure. 80362306a36Sopenharmony_ci 80462306a36Sopenharmony_ciendmenu 80562306a36Sopenharmony_ci 80662306a36Sopenharmony_cimenu "Power management options" 80762306a36Sopenharmony_ci 80862306a36Sopenharmony_ciconfig ARCH_HIBERNATION_POSSIBLE 80962306a36Sopenharmony_ci def_bool y 81062306a36Sopenharmony_ci 81162306a36Sopenharmony_cisource "kernel/power/Kconfig" 81262306a36Sopenharmony_ci 81362306a36Sopenharmony_ciendmenu 814