2016-10-12 21:11:05 +02:00
|
|
|
#
|
|
|
|
# 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"
|
2016-10-13 22:37:28 +02:00
|
|
|
default ARCH_CHIP_ESP32
|
2016-10-12 21:11:05 +02:00
|
|
|
|
2016-10-13 22:37:28 +02:00
|
|
|
config ARCH_CHIP_ESP32
|
|
|
|
bool "Expressif ESP32"
|
|
|
|
select ARCH_FAMILY_LX6
|
2016-10-15 18:11:35 +02:00
|
|
|
select XTENSA_HAVE_INTERRUPTS
|
2016-10-17 16:15:36 +02:00
|
|
|
select ARCH_HAVE_MULTICPU
|
2017-05-13 19:44:12 +02:00
|
|
|
select ARCH_TOOLCHAIN_GNU
|
2016-10-12 21:11:05 +02:00
|
|
|
---help---
|
2016-10-13 22:37:28 +02:00
|
|
|
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.
|
2016-10-12 21:11:05 +02:00
|
|
|
|
2016-12-17 14:07:33 +01:00
|
|
|
The two CPUs are named "PRO_CPU" and "APP_CPU" (for "protocol" and
|
|
|
|
"application"), however for most purposes the two CPUs are
|
|
|
|
interchangeable.
|
|
|
|
|
2016-10-12 21:11:05 +02:00
|
|
|
endchoice # XTENSA chip selection
|
|
|
|
|
2016-10-13 22:37:28 +02:00
|
|
|
config ARCH_FAMILY_LX6
|
2016-10-12 21:11:05 +02:00
|
|
|
bool
|
|
|
|
default n
|
2016-10-13 22:37:28 +02:00
|
|
|
---help---
|
|
|
|
Cadence® Tensilica® Xtensa® LX6 data plane processing unit (DPU).
|
|
|
|
The LX6 is a configurable and extensible processor core.
|
2016-10-12 21:11:05 +02:00
|
|
|
|
2016-11-16 13:48:13 +01:00
|
|
|
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.
|
|
|
|
|
2016-10-14 21:17:48 +02:00
|
|
|
config XTENSA_USE_OVLY
|
2016-10-22 20:25:56 +02:00
|
|
|
bool
|
2016-10-14 21:17:48 +02:00
|
|
|
default n
|
2016-10-22 20:25:56 +02:00
|
|
|
---help---
|
|
|
|
Enable code overlay support. This option is currently unsupported.
|
2016-10-14 21:17:48 +02:00
|
|
|
|
2016-10-29 17:36:33 +02:00
|
|
|
config XTENSA_CP_INITSET
|
2016-10-29 18:27:46 +02:00
|
|
|
hex "Default co-processor enables"
|
|
|
|
default 0x0001
|
|
|
|
range 0 0xffff
|
2016-11-16 13:48:13 +01:00
|
|
|
depends on !XTENSA_CP_LAZY
|
2016-10-29 17:36:33 +02:00
|
|
|
---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.
|
|
|
|
|
2016-10-12 21:11:05 +02:00
|
|
|
source arch/xtensa/src/lx6/Kconfig
|
2016-10-18 17:41:16 +02:00
|
|
|
if ARCH_CHIP_ESP32
|
|
|
|
source arch/xtensa/src/esp32/Kconfig
|
|
|
|
endif
|
2016-10-12 21:11:05 +02:00
|
|
|
|
|
|
|
endif # ARCH_XTENSA
|