# # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # if ARCH_XTENSA choice prompt "XTENSA architecture selection" default ARCH_CHIP_ESP32 config ARCH_CHIP_ESP32 bool "Expressif ESP32" select ARCH_FAMILY_LX6 select XTENSA_HAVE_INTERRUPTS select ARCH_HAVE_MULTICPU ---help--- The ESP32 is a dual-core system from Expressif with two Harvard architecture Xtensa LX6 CPUs. All embedded memory, external memory and peripherals are located on the data bus and/or the instruction bus of these CPUs. With some minor exceptions, the address mapping of two CPUs is symmetric, meaning they use the same addresses to access the same memory. endchoice # XTENSA chip selection config ARCH_FAMILY_LX6 bool default n ---help--- Cadence® Tensilica® Xtensa® LX6 data plane processing unit (DPU). The LX6 is a configurable and extensible processor core. config ARCH_CHIP string default "esp32" if ARCH_CHIP_ESP32 config XTENSA_CP_LAZY bool "Lazy co-processor state restoration" default n depends on EXPERIMENTAL ---help--- NuttX logic saves and restores the co-processor enabled (CPENABLE) register on each context switch. This has disadvantages in that (1) co-processor context will be saved and restored even if the co- processor was never used, and (2) tasks must explicitly enable and disable co-processors. An alternative, "lazy" co-processor state restore is enabled with this option. That logic works like as follows: a. CPENABLE is set to zero on each context switch, disabling all co- processors. b. If/when the task attempts to use the disabled co-processor, an exception occurs c. The co-processor exception handler re-enables the co-processor. config XTENSA_USE_OVLY bool default n ---help--- Enable code overlay support. This option is currently unsupported. config XTENSA_CP_INITSET hex "Default co-processor enables" default 0x0001 range 0 0xffff depends on !XTENSA_CP_LAZY ---help--- Co-processors may be enabled on a thread by calling xtensa_coproc_enable() and disabled by calling xtensa_coproc_disable(). Some co-processors should be enabled on all threads by default. That set of co-processors is provided by CONFIG_XTENSA_CP_INITSET. Each bit corresponds to one coprocessor with the same bit layout as for the CPENABLE register. source arch/xtensa/src/lx6/Kconfig if ARCH_CHIP_ESP32 source arch/xtensa/src/esp32/Kconfig endif endif # ARCH_XTENSA