# Kconfig - XTENSA architecture configuration options # # Copyright (c) 2016 Cadence Design Systems, Inc. # SPDX-License-Identifier: Apache-2.0 choice prompt "XTENSA core Selection" depends on XTENSA source "arch/xtensa/soc/*/Kconfig.soc" endchoice menu "XTENSA Options" depends on XTENSA menu "Specific core configuration" # Include these first so that any properties (e.g. defaults) below can be # overriden (by defining symbols in multiple locations) # # (No SoC-specific Kconfig files as of writing, hence the optional source.) osource "arch/xtensa/soc/*/Kconfig" config IRQ_OFFLOAD_INTNUM int "IRQ offload SW interrupt index" help The index of the software interrupt to be used for IRQ offload. Please note that in order for IRQ offload to work correctly the selected interrupt shall have its priority shall not exceed XCHAL_EXCM_LEVEL. config XTENSA_OMIT_HIGH_INTERRUPTS bool "Skip generation of vectors for high priority interrupts" help Setting this to y causes the interrupt vectors for "high priority" Xtensa interrupts (those not masked by the EXCM bit in PS) to be left ungenerated, so they can be handled by application code instead. Note that high priority interrupts cannot safely be handled by C code anyway (they will interrupt register window exceptions, which cannot be made reentrant, so the code under the handler must not emit them), though some devices might still want to use built-in handling for things like watchdogs which do not need to return into interrupted code. Default is "n" for legacy compatibility. Consider changing to "y" in the future. config XTENSA_ASM2 bool "New-style Xtensa context switch & interrupt layer" select USE_SWITCH help This selects a new implementation of context switching and interrupt handling. Advantages are a much lower interrupt overhead and smaller code size, and this scheme is required for SMP. Assumes/requires hardware that implements the register window extension, however. endmenu config ARCH default "xtensa" config SIMULATOR_XTENSA bool "Simulator Configuration" help Specify if the board configuration should be treated as a simulator. config SYS_CLOCK_HW_CYCLES_PER_SEC int "Hardware clock cycles per second, 2000000 for ISS" default 2000000 range 1000000 1000000000 help This option specifies hardware clock. config XTENSA_NO_IPC bool "Core has no IPC support" select ATOMIC_OPERATIONS_C help Uncheck this if you core does not implement "SCOMPARE1" register and "s32c1i" instruction. config SW_ISR_TABLE bool "Enable software interrupt handler table" default y help Enable an interrupt handler table implemented in software. This table, unlike ISRs connected directly in the vector table, allow a parameter to be passed to the interrupt handlers. Also, invoking the exception/interrupt exit stub is automatically done. config XTENSA_RESET_VECTOR bool "Build reset vector code" default y help This option controls whether the initial reset vector code is built. This is always needed for the simulator. Real boards may already implement this in boot ROM. config XTENSA_USE_CORE_CRT1 bool "Use crt1.S from core" default y help SoC or boards might define their own __start by setting this setting to false. endmenu