blob: 2d88a55334630f3d20aaa7123c06a2648a015043 [file] [log] [blame]
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
if ARCH_CHIP_ESP32C3
comment "ESP32-C3 Configuration Options"
choice
prompt "ESP32-C3 Chip Selection"
default ARCH_CHIP_ESP32C3WROOM02
config ARCH_CHIP_ESP32C3X
bool "ESP32-C3"
select ESP32C3_ESP32C3XXX
---help---
ESP32-C3 chip with a single RISC-V IMC core, no embedded Flash memory
config ARCH_CHIP_ESP32C3FX4
bool "ESP32-C3Fx4"
select ESP32C3_ESP32C3XXX
select ESP32C3_FLASH_4M
---help---
ESP32-C3 chip with a single RISC-V IMC core, 4 MB of in-package Flash memory
config ARCH_CHIP_ESP32C3MINI1
bool "ESP32-C3-MINI-1"
select ESP32C3_ESP32C3XXX
select ESP32C3_FLASH_4M
---help---
Generic module with an embedded ESP32-C3Fx4 chip
config ARCH_CHIP_ESP32C3WROOM02
bool "ESP32-C3-WROOM-02"
select ESP32C3_ESP32C3XXX
select ESP32C3_FLASH_4M
---help---
Generic module with an embedded ESP32-C3 chip, 4 MB of Flash memory
endchoice # ESP32-C3 Chip Selection
config ESP32C3_SINGLE_CPU
bool
default n
config ESP32C3_DUAL_CPU
bool
default n
config ESP32C3_ESP32C3XXX
bool
default n
select ESP32C3_SINGLE_CPU
select ARCH_HAVE_I2CRESET
config ESP32C3_FLASH_2M
bool
default n
config ESP32C3_FLASH_4M
bool
default n
config ESP32C3_FLASH_8M
bool
default n
config ESP32C3_FLASH_16M
bool
default n
config ESP32C3_ESPTOOLPY_NO_STUB
bool "Disable download stub"
default n
---help---
The flasher tool sends a precompiled download stub first by default.
That stub allows things like compressed downloads and more.
Usually you should not need to disable that feature.
It is only required to be disabled in certain scenarios when either
Secure Boot V2 or Flash Encryption is enabled.
config ESP32C3_FLASH_DETECT
bool "Auto-detect FLASH size"
default n
---help---
Auto detect flash size when flashing.
choice ESP32C3_CPU_FREQ
prompt "CPU frequency"
default ESP32C3_CPU_FREQ_160
---help---
CPU frequency to be set on application startup.
config ESP32C3_CPU_FREQ_40
bool "40 MHz"
---help---
Set the CPU to 40 MHz. This frequency is obtained from the XTAL.
config ESP32C3_CPU_FREQ_80
bool "80 MHz"
---help---
Set the CPU to 80 MHz. This frequency is obtained from the 480 MHz PLL.
config ESP32C3_CPU_FREQ_160
bool "160 MHz"
---help---
Set the CPU to 160 MHz. This frequency is obtained from the 480 MHz PLL.
endchoice # ESP32C3_CPU_FREQ
config ESP32C3_CPU_FREQ_MHZ
int
default 40 if ESP32C3_CPU_FREQ_40
default 80 if ESP32C3_CPU_FREQ_80
default 160 if ESP32C3_CPU_FREQ_160
config ESP32C3_REGION_PROTECTION
bool "Enable region protection"
default y
select ARCH_USE_MPU
---help---
Configure the MPU to disable access to invalid memory regions.
config ESP32C3_RT_TIMER
bool "Real-time Timer"
default n
select ESP32C3_TIMER
---help---
Real-time Timer is relying upon the Systimer 1.
config ESP32C3_RTC_HEAP
bool "Use the RTC memory as a separate heap"
select ARCH_HAVE_EXTRA_HEAPS
default n
config ESP32C3_EXCEPTION_ENABLE_CACHE
bool
default y
depends on ESP32C3_SPIFLASH
---help---
When exception triggers, panic function enables SPI Flash cache to
let functions be able to call functions which locate in SPI Flash.
menu "ESP32-C3 Peripheral Support"
config ESP32C3_ADC
bool
default n
select ANALOG
select ADC
config ESP32C3_UART
bool
default n
config ESP32C3_I2C
bool
default n
config ESP32C3_TWAI
bool
default n
select CAN
config ESP32C3_TIMER
bool
default n
config ESP32C3_WDT
bool
default n
config ESP32C3_EFUSE
bool "EFUSE support"
default n
---help---
Enable ESP32-C3 efuse support.
config ESP32C3_SPI
bool
default n
config ESP32C3_LEDC
bool "LEDC (PWM)"
default n
select PWM
select ARCH_HAVE_PWM_MULTICHAN
config ESP32C3_GPIO_IRQ
bool "GPIO pin interrupts"
default n
---help---
Enable support for interrupting GPIO pins
config ESP32C3_RTCIO_IRQ
bool "RTC IO interrupts"
default n
---help---
Enable support for RTC peripherals interrupts.
config ESP32C3_UART0
bool "UART0"
default y
select ESP32C3_UART
select UART0_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
config ESP32C3_UART1
bool "UART1"
default n
select ESP32C3_UART
select UART1_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
config ESP32C3_USBSERIAL
bool "USB-Serial Driver"
default n
select OTHER_UART_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
config ESP32C3_I2C0
bool "I2C 0"
default n
select ESP32C3_I2C
config ESP32C3_TWAI0
bool "TWAI (CAN) 0"
default n
select ESP32C3_TWAI
config ESP32C3_RNG
bool "Random Number Generator (RNG)"
default n
select ARCH_HAVE_RNG
---help---
ESP32-C3 supports an RNG that passed on Dieharder test suite.
config ESP32C3_TIMER0
bool "54-bit Timer 0 (Group 0 Timer 0)"
default n
select ESP32C3_TIMER
---help---
Enables Timer 0
config ESP32C3_TIMER1
bool "54-bit Timer 0 (Group 1 Timer 0)"
default n
select ESP32C3_TIMER
---help---
Enables Timer 1
config ESP32C3_SPIFLASH
bool "SPI Flash"
default n
config ESP32C3_SPI2
bool "SPI 2"
default n
select ESP32C3_SPI
select SPI
config ESP32C3_DMA
bool "General DMA (GDMA)"
default n
select ARCH_DMA
config ESP32C3_MWDT0
bool "Main System Watchdog Timer (Group 0)"
default n
select ESP32C3_WDT
---help---
Includes MWDT0. This watchdog timer is part of the Group 0
timer submodule.
config ESP32C3_MWDT1
bool "Main System Watchdog Timer (Group 1)"
default n
select ESP32C3_WDT
---help---
Includes MWDT1. This watchdog timer is part of the Group 0
timer submodule.
config ESP32C3_RWDT
bool "RTC Watchdog Timer"
default n
select ESP32C3_WDT
select ESP32C3_RTCIO_IRQ
---help---
Includes RWDT. This watchdog timer is from the RTC module.
When it is selected, if the developer sets it to reset on expiration
it will reset Main System and the RTC module. If you don't want
to have the RTC module reset, please, use the Timers' Module WDTs.
They will only reset Main System.
config ESP32C3_ADC1
bool "ADC1"
default n
select ESP32C3_ADC
config ESP32C3_WIRELESS
bool
default n
select NET
select ARCH_PHY_INTERRUPT
select ESP32C3_RT_TIMER
---help---
Enable Wireless support
config ESP32C3_AES_ACCELERATOR
bool "AES Accelerator"
default n
config ESP32C3_SHA_ACCELERATOR
bool "SHA Accelerator"
default n
---help---
Enable ESP32-C3 SHA accelerator support.
config ESP32C3_BIGNUM_ACCELERATOR
bool "BIGNUM Accelerator"
default n
---help---
Enable ESP32-C3 BIGNUM accelerator support.
config ESP32C3_RSA_ACCELERATOR
bool "RSA Accelerator"
default n
---help---
Enable ESP32-C3 RSA accelerator support.
config ESP32C3_WIFI
bool "Wi-Fi"
default n
select ESP32C3_WIRELESS
---help---
Enable Wi-Fi support
config ESP32C3_BLE
bool "BLE"
default n
select ESP32C3_WIRELESS
---help---
Enable BLE support
config ESP32C3_BROWNOUT_DET
bool "Brownout Detect"
default y
---help---
The ESP32-C3 has a built-in brownout detector which can detect if the voltage is lower than
a specific value. If this happens, it will reset the chip in order to prevent unintended
behaviour.
endmenu # ESP32-C3 Peripheral Support
menuconfig ESP32C3_WIFI_BT_COEXIST
bool "Wi-Fi and BT coexist"
default n
depends on ESP32C3_WIFI && ESP32C3_BLE
menu "I2C Configuration"
depends on ESP32C3_I2C
if ESP32C3_I2C0
config ESP32C3_I2C0_SCLPIN
int "I2C0 SCL Pin"
default 6
range 0 21
config ESP32C3_I2C0_SDAPIN
int "I2C0 SDA Pin"
default 5
range 0 21
endif # ESP32C3_I2C0
config ESP32C3_I2CTIMEOSEC
int "Timeout seconds"
default 0
config ESP32C3_I2CTIMEOMS
int "Timeout milliseconds"
default 500
endmenu # I2C configuration
menu "TWAI driver options"
depends on ESP32C3_TWAI
if ESP32C3_TWAI0
config ESP32C3_TWAI0_TXPIN
int "TWAI0 TX Pin"
default 2
config ESP32C3_TWAI0_RXPIN
int "TWAI0 RX Pin"
default 3
config ESP32C3_TWAI0_BITRATE
int "TWAI0 bitrate"
default 1000000
---help---
TWAI0 bit rate. Required if ESP32C3_TWAI0 is defined.
config ESP32C3_TWAI0_SAMPLEP
int "TWAI0 sample point"
default 80
---help---
TWAI0 sample point location as a percent value. Required
if ESP32C3_TWAI0 is defined.
config ESP32C3_TWAI0_SJW
int "TWAI0 synchronization jump width"
default 3
---help---
SJW limits the number of Time Quanta corrections during bit
Resynchronization. Default: 3
config ESP32C3_TWAI0_SAM
bool "TWAI0 sampling"
default n
---help---
The bus is sampled 3 times (recommended for low to medium speed buses
to spikes on the bus-line).
endif # ESP32C3_TWAI0
config ESP32C3_TWAI_REGDEBUG
bool "TWAI register level debug"
depends on DEBUG_CAN_INFO
default n
---help---
Output detailed register-level TWAI debug information. Requires also
CONFIG_DEBUG_CAN_INFO.
endmenu #ESP32C3_TWAI
menu "SPI configuration"
depends on ESP32C3_SPI
config ESP32C3_SPI_SWCS
bool "SPI software CS"
default n
---help---
Use SPI software CS.
config ESP32C3_SPI_UDCS
bool "User defined CS"
default n
depends on ESP32C3_SPI_SWCS
---help---
Use user-defined CS.
if ESP32C3_SPI2
config ESP32C3_SPI2_SLAVE
bool "SPI2 Slave mode"
default n
depends on SPI_SLAVE
select ESP32C3_GPIO_IRQ
---help---
Configure SPI2 to operate in Slave mode.
config ESP32C3_SPI2_DMA
bool "SPI2 use GDMA"
default n
depends on ESP32C3_DMA
---help---
Enable support for transfers using the GDMA engine.
config ESP32C3_SPI2_DMADESC_NUM
int "SPI2 Master GDMA maximum number of descriptors"
default 2
depends on ESP32C3_SPI2_DMA
---help---
Configure the maximum number of out-link/in-link descriptors to
be chained for a GDMA transfer.
config ESP32C3_SPI2_DMATHRESHOLD
int "SPI2 Master GDMA threshold"
default 64
depends on ESP32C3_SPI2_DMA
---help---
When SPI GDMA is enabled, GDMA transfers whose size are below the
defined threshold will be performed by polling logic.
config ESP32C3_SPI2_SLAVE_BUFSIZE
int "SPI2 Slave buffer size"
default 2048
depends on ESP32C3_SPI2_SLAVE
---help---
Configure the size of SPI2 Slave controller's internal buffers.
config ESP32C3_SPI2_CSPIN
int "SPI2 CS Pin"
default 10
range 0 21
config ESP32C3_SPI2_CLKPIN
int "SPI2 CLK Pin"
default 6
range 0 21
config ESP32C3_SPI2_MOSIPIN
int "SPI2 MOSI Pin"
default 7
range 0 21
config ESP32C3_SPI2_MISOPIN
int "SPI2 MISO Pin"
default 2
range 0 21
endif # ESP32C3_SPI2
endmenu # SPI configuration
menu "iCE40 Configuration"
depends on SPI_ICE40
config ESP32C3_ICE40_CSPIN
int "iCE40 CS Pin"
default 6
range 0 21
config ESP32C3_ICE40_CDONEPIN
int "iCE40 CDONE Pin"
default 0
range 0 21
config ESP32C3_ICE40_CRSTPIN
int "iCE40 CRST Pin"
default 1
range 0 21
config ESP32C3_ICE40_SPI_PORT
int "iCE40 SPI port number"
default 2
range 0 5
endmenu
menu "UART configuration"
depends on ESP32C3_UART
if ESP32C3_UART0
config ESP32C3_UART0_TXPIN
int "UART0 TX Pin"
default 21
config ESP32C3_UART0_RXPIN
int "UART0 RX Pin"
default 20
config ESP32C3_UART0_RTSPIN
int "UART0 RTS Pin"
depends on SERIAL_IFLOWCONTROL
default 16
range 0 21
config ESP32C3_UART0_CTSPIN
int "UART0 CTS Pin"
depends on SERIAL_OFLOWCONTROL
default 15
range 0 21
endif # ESP32C3_UART0
if ESP32C3_UART1
config ESP32C3_UART1_TXPIN
int "UART1 TX Pin"
default 8
config ESP32C3_UART1_RXPIN
int "UART1 RX Pin"
default 9
config ESP32C3_UART1_RTSPIN
int "UART1 RTS Pin"
depends on SERIAL_IFLOWCONTROL
default 1
range 0 21
config ESP32C3_UART1_CTSPIN
int "UART1 CTS Pin"
depends on SERIAL_OFLOWCONTROL
default 2
range 0 21
endif # ESP32C3_UART1
endmenu
menu "Real-Time Timer"
depends on ESP32C3_RT_TIMER
config ESP32C3_RT_TIMER_TASK_NAME
string "Timer task name"
default "rt_timer"
config ESP32C3_RT_TIMER_TASK_PRIORITY
int "Timer task priority"
default 223
---help---
Priority level of the RT Timer task.
Must be lower than the SCHED_HPWORKPRIORITY.
config ESP32C3_RT_TIMER_TASK_STACK_SIZE
int "Timer task stack size"
default 2048
endmenu # Real-Time Timer
if ESP32C3_TIMER
menu "Timer/counter Configuration"
config ESP32C3_ONESHOT
bool "One-shot wrapper"
default n
---help---
Enable a wrapper around the low level timer/counter functions to
support one-shot timer.
config ESP32C3_FREERUN
bool "TIM free-running wrapper"
default n
---help---
Enable a wrapper around the low level timer/counter functions to
support a free-running timer.
endmenu # Timer/counter Configuration
endif # ESP32C3_TIMER
menu "LEDC configuration"
depends on ESP32C3_LEDC
menuconfig ESP32C3_LEDC_TIM0
bool "Timer 0"
default n
if ESP32C3_LEDC_TIM0
config ESP32C3_LEDC_TIM0_CHANNELS
int "Number of Timer 0 channels"
default 2
endif # ESP32C3_LEDC_TIM0
menuconfig ESP32C3_LEDC_TIM1
bool "Timer 1"
default n
if ESP32C3_LEDC_TIM1
config ESP32C3_LEDC_TIM1_CHANNELS
int "Number of Timer 1 channels"
default 2
endif # ESP32C3_LEDC_TIM1
menuconfig ESP32C3_LEDC_TIM2
bool "Timer 2"
default n
if ESP32C3_LEDC_TIM2
config ESP32C3_LEDC_TIM2_CHANNELS
int "Number of Timer 2 channels"
default 2
endif # ESP32C3_LEDC_TIM2
config ESP32C3_LEDC_CHANNEL0_PIN
int "Channel 0 pin"
default 2
config ESP32C3_LEDC_CHANNEL1_PIN
int "Channel 1 pin"
default 3
config ESP32C3_LEDC_CHANNEL2_PIN
int "Channel 2 pin"
default 4
config ESP32C3_LEDC_CHANNEL3_PIN
int "Channel 3 pin"
default 5
config ESP32C3_LEDC_CHANNEL4_PIN
int "Channel 4 pin"
default 6
config ESP32C3_LEDC_CHANNEL5_PIN
int "Channel 5 pin"
default 7
endmenu # LEDC configuration
menu "ADC Configuration"
depends on ESP32C3_ADC
if ESP32C3_ADC1
choice ESP32C3_ADC_VOL_RANGES
prompt "ADC1 voltage ranges"
default ESP32C3_ADC_VOL_750
config ESP32C3_ADC_VOL_750
bool "0~750mV"
config ESP32C3_ADC_VOL_1050
bool "0~1050mV"
config ESP32C3_ADC_VOL_1300
bool "0~1300mV"
config ESP32C3_ADC_VOL_2500
bool "0~2500mV"
endchoice
config ESP32C3_ADC1_CHANNEL0
bool "ADC1 channel 0"
default n
config ESP32C3_ADC1_CHANNEL1
bool "ADC1 channel 1"
default n
config ESP32C3_ADC1_CHANNEL2
bool "ADC1 channel 2"
default n
config ESP32C3_ADC1_CHANNEL3
bool "ADC1 channel 3"
default n
config ESP32C3_ADC1_CHANNEL4
bool "ADC1 channel 4"
default n
endif # ESP32C3_ADC1
endmenu # ADC Configuration
menu "Wi-Fi configuration"
depends on ESP32C3_WIFI
choice
prompt "ESP32-C3 Wi-Fi mode"
default ESP32C3_WIFI_STATION
config ESP32C3_WIFI_STATION
bool "Station mode"
config ESP32C3_WIFI_SOFTAP
bool "SoftAP mode"
config ESP32C3_WIFI_STATION_SOFTAP
bool "Station + SoftAP"
endchoice # ESP32-C3 Wi-Fi mode
config ESP32C3_WIFI_STATIC_RXBUF_NUM
int "Wi-Fi static RX buffer number"
default 10
config ESP32C3_WIFI_DYNAMIC_RXBUF_NUM
int "Wi-Fi dynamic RX buffer number"
default 32
config ESP32C3_WIFI_DYNAMIC_TXBUF_NUM
int "Wi-Fi dynamic TX buffer number"
default 32
config ESP32C3_WIFI_TX_AMPDU
bool "Wi-Fi TX AMPDU"
default y
config ESP32C3_WIFI_RX_AMPDU
bool "Wi-Fi RX AMPDU"
default y
config ESP32C3_WIFI_RXBA_AMPDU_WZ
int "Wi-Fi RX BA AMPDU windown size"
default 6
config ESP32C3_WIFI_CONNECT_TIMEOUT
int "Connect timeout by second"
default 10
---help---
Max waiting time of connecting to AP.
config ESP32C3_WIFI_SCAN_RESULT_SIZE
int "Scan result buffer"
default 4096
---help---
Maximum scan result buffer size.
config ESP32C3_WIFI_STA_DISCONNECT_PM
bool "Power Management for station when disconnected"
default n
---help---
Select this option to enable power management for station when disconnected.
Chip will do modem-sleep when RF module is not in use anymore.
config EXAMPLE_WIFI_LISTEN_INTERVAL
int "Wi-Fi listen interval"
default 3
---help---
Interval for station to listen to beacon from AP. The unit of listen interval is one beacon interval.
For example, if beacon interval is 100 ms and listen interval is 3, the interval for station to listen
to beacon is 300 ms.
choice EXAMPLE_POWER_SAVE_MODE
prompt "Power save mode"
default EXAMPLE_POWER_SAVE_NONE
---help---
Power save mode for the ESP32-C3 to use. Modem sleep mode includes minimum and maximum power save modes.
In minimum power save mode, station wakes up every DTIM to receive beacon. Broadcast data will not be
lost because it is transmitted after DTIM. However, it can not save much more power if DTIM is short
for DTIM is determined by AP.
In maximum power save mode, station wakes up every listen interval to receive beacon. Broadcast data
may be lost because station may be in sleep state at DTIM time. If listen interval is longer, more power
is saved but broadcast data is more easy to lose.
config EXAMPLE_POWER_SAVE_NONE
bool "none"
config EXAMPLE_POWER_SAVE_MIN_MODEM
bool "minimum modem"
config EXAMPLE_POWER_SAVE_MAX_MODEM
bool "maximum modem"
endchoice
config ESP32C3_WIFI_RECONNECT
bool "Enable Wi-Fi to reconnect"
default n
---help---
Select this option to enable Wi-Fi to reconnect for station when disconnected.
choice ESP32C3_WIFI_LOG_LEVEL
depends on DEBUG_INFO
prompt "WiFi debug log level"
default WIFI_LOG_LEVEL_INFO
---help---
The WiFi log is divided into the following levels: ERROR,WARNING,INFO,DEBUG,VERBOSE.
config WIFI_LOG_LEVEL_NONE
bool "No output"
config WIFI_LOG_LEVEL_ERROR
bool "Error"
config WIFI_LOG_LEVEL_WARN
bool "Warning"
config WIFI_LOG_LEVEL_INFO
bool "Info"
config WIFI_LOG_LEVEL_DEBUG
bool "Debug"
config WIFI_LOG_LEVEL_VERBOSE
bool "Verbose"
endchoice
config WIFI_LOG_LEVEL
int
default 0 if WIFI_LOG_LEVEL_NONE
default 1 if WIFI_LOG_LEVEL_ERROR
default 2 if WIFI_LOG_LEVEL_WARN
default 3 if WIFI_LOG_LEVEL_INFO
default 4 if WIFI_LOG_LEVEL_DEBUG
default 5 if WIFI_LOG_LEVEL_VERBOSE
endmenu # Wi-Fi configuration
menu "BLE Configuration"
depends on ESP32C3_BLE
config ESP32C3_BLE_TTY_NAME
string "BLE TTY device name"
default "/dev/ttyHCI0"
depends on UART_BTH4
config ESP32C3_BLE_TASK_STACK_SIZE
int "Controller task stack size"
default 4096
config ESP32C3_BLE_TASK_PRIORITY
int "Controller task priority"
default 253
endmenu # BLE Configuration
menu "SPI Flash configuration"
choice ESP32C3_FLASH_MODE
prompt "SPI Flash mode"
default ESP32C3_FLASH_MODE_DIO
---help---
These options control how many I/O pins are used for communication with the attached SPI Flash chip.
The option selected here is then used by esptool when flashing.
config ESP32C3_FLASH_MODE_DIO
bool "Dual IO (DIO)"
config ESP32C3_FLASH_MODE_DOUT
bool "Dual Output (DOUT)"
config ESP32C3_FLASH_MODE_QIO
bool "Quad IO (QIO)"
config ESP32C3_FLASH_MODE_QOUT
bool "Quad Output (QOUT)"
endchoice # ESP32C3_FLASH_MODE
choice ESP32C3_FLASH_FREQ
prompt "SPI Flash frequency"
default ESP32C3_FLASH_FREQ_40M
---help---
SPI Flash frequency.
config ESP32C3_FLASH_FREQ_80M
bool "80 MHz"
config ESP32C3_FLASH_FREQ_40M
bool "40 MHz"
config ESP32C3_FLASH_FREQ_26M
bool "26 MHz"
config ESP32C3_FLASH_FREQ_20M
bool "20 MHz"
endchoice # ESP32C3_FLASH_FREQ
if ESP32C3_HAVE_OTA_PARTITION
comment "Application Image OTA Update support"
config ESP32C3_OTA_PARTITION_ENCRYPT
bool "Encrypt OTA partitions"
default y
depends on ESP32C3_SECURE_FLASH_ENC_ENABLED
config ESP32C3_OTA_PRIMARY_SLOT_OFFSET
hex "Application image primary slot offset"
default 0x10000
config ESP32C3_OTA_PRIMARY_SLOT_DEVPATH
string "Application image primary slot device path"
default "/dev/ota0"
config ESP32C3_OTA_SECONDARY_SLOT_OFFSET
hex "Application image secondary slot offset"
default 0x110000
config ESP32C3_OTA_SECONDARY_SLOT_DEVPATH
string "Application image secondary slot device path"
default "/dev/ota1"
config ESP32C3_OTA_SLOT_SIZE
hex "Application image slot size (in bytes)"
default 0x100000
config ESP32C3_OTA_SCRATCH_OFFSET
hex "Scratch partition offset"
default 0x210000
config ESP32C3_OTA_SCRATCH_SIZE
hex "Scratch partition size"
default 0x40000
config ESP32C3_OTA_SCRATCH_DEVPATH
string "Scratch partition device path"
default "/dev/otascratch"
endif
if ESP32C3_SPIFLASH
comment "General storage MTD configuration"
config ESP32C3_MTD
bool "MTD driver"
default y
select MTD
select MTD_BYTE_WRITE
select MTD_PARTITION
---help---
Initialize an MTD driver for the ESP32-C3 SPI Flash, which will
add an entry at /dev for application access from userspace.
config ESP32C3_SPIFLASH_MTD_BLKSIZE
int "Storage MTD block size"
default 64
depends on ESP32C3_MTD
config ESP32C3_STORAGE_MTD_DEBUG
bool "Storage MTD Debug"
default n
depends on ESP32C3_MTD && DEBUG_FS_INFO
---help---
If this option is enabled, Storage MTD driver read and write functions
will output input parameters and return values (if applicable).
if ESP32C3_APP_FORMAT_LEGACY
comment "Partition Table configuration"
config ESP32C3_PARTITION_TABLE
bool "Create MTD partitions from Partition Table"
default n
select ESP32C3_BOOTLOADER_BUILD_FROM_SOURCE
---help---
Decode partition table and initialize partitions as MTD.
config ESP32C3_PARTITION_MOUNTPT
string "Partition mount point"
default "/dev/esp/partition/"
depends on ESP32C3_PARTITION_TABLE
endif # ESP32C3_APP_FORMAT_LEGACY
endif # ESP32C3_SPIFLASH
endmenu # SPI Flash configuration
menu "GDMA Configuration"
depends on ESP32C3_DMA
endmenu # GDMA Configuration
config ESP32C3_AUTO_SLEEP
bool "Auto-sleep"
default n
select PM
select ESP32C3_RT_TIMER
select ESP32C3_TICKLESS
---help---
Enable ESP32-C3 Auto-sleep
config ESP32C3_TICKLESS
bool "Enable ESP32-C3 tickless OS"
default n
select ARCH_HAVE_TICKLESS
select SCHED_TICKLESS
config ESP32C3_HAVE_OTA_PARTITION
bool
default n
menu "Bootloader and Image Configuration"
config ESP32C3_APP_FORMAT_LEGACY
bool "Enable legacy IDF bootloader format"
default y if !ESP32C3_APP_FORMAT_MCUBOOT
depends on !ESP32C3_APP_FORMAT_MCUBOOT
---help---
This is the legacy application image format, as supported by the ESP-IDF
2nd stage bootloader.
config ESP32C3_APP_FORMAT_MCUBOOT
bool "Enable MCUboot-bootable format"
depends on !MCUBOOT_BOOTLOADER
select ESP32C3_HAVE_OTA_PARTITION
select ESP32C3_BOOTLOADER_BUILD_FROM_SOURCE
---help---
Enables the Espressif port of MCUboot to be used as 2nd stage bootloader.
config ESP32C3_BOOTLOADER_DOWNLOAD_PREBUILT
bool
default y if !ESP32C3_BOOTLOADER_BUILD_FROM_SOURCE
depends on !ESP32C3_BOOTLOADER_BUILD_FROM_SOURCE
---help---
The build system will download the prebuilt binaries from
https://github.com/espressif/esp-nuttx-bootloader according to the chosen
Application Image Format (ESP32C3_APP_FORMAT_LEGACY or ESP32C3_APP_FORMAT_MCUBOOT)
config ESP32C3_BOOTLOADER_BUILD_FROM_SOURCE
bool "Build binaries from source"
---help---
The build system will build all the required binaries from source. It will clone
the https://github.com/espressif/esp-nuttx-bootloader repository and build a
custom bootloader according to the chosen Application Image Format
(ESP32C3_APP_FORMAT_LEGACY or ESP32C3_APP_FORMAT_MCUBOOT) and partition information.
choice
prompt "Target slot for image flashing"
default ESP32C3_ESPTOOL_TARGET_PRIMARY
depends on ESP32C3_HAVE_OTA_PARTITION
---help---
Slot to which ESPTOOL will flash the generated binary image.
config ESP32C3_ESPTOOL_TARGET_PRIMARY
bool "Application image primary slot"
---help---
This assumes that the generated image is already pre-validated.
This is the recommended option for the initial stages of the
application firmware image development.
config ESP32C3_ESPTOOL_TARGET_SECONDARY
bool "Application image secondary slot"
---help---
The application needs to confirm the generated image as valid,
otherwise the bootloader may consider it invalid and perform the
rollback of the update after a reset.
This is the choice most suitable for the development and verification
of a secure firmware update workflow.
endchoice
config ESP32C3_MCUBOOT_VERSION
string "MCUboot version"
depends on ESP32C3_APP_FORMAT_MCUBOOT
default "b206b99b1555ca15f790a3287e57dc98ef3df2ac"
config ESP32C3_APP_MCUBOOT_HEADER_SIZE
int "Application image header size (in bytes)"
default 32
depends on ESP32C3_APP_FORMAT_MCUBOOT
config ESP32C3_PARTITION_TABLE_OFFSET_DEFAULT
hex
default 0x8000
depends on ESP32C3_APP_FORMAT_LEGACY
config ESP32C3_CUSTOM_PARTITION_TABLE_OFFSET
bool "Customize partition table offset"
default n
depends on ESP32C3_APP_FORMAT_LEGACY
select ESP32C3_BOOTLOADER_BUILD_FROM_SOURCE
---help---
Enable to select the offset of the partition table in the flash.
if ESP32C3_CUSTOM_PARTITION_TABLE_OFFSET
config ESP32C3_PARTITION_TABLE_OFFSET
hex "Partition Table offset"
default ESP32C3_PARTITION_TABLE_OFFSET_DEFAULT
depends on ESP32C3_APP_FORMAT_LEGACY
endif # ESP32C3_CUSTOM_PARTITION_TABLE_OFFSET
if !ESP32C3_CUSTOM_PARTITION_TABLE_OFFSET
config ESP32C3_PARTITION_TABLE_OFFSET
hex
default ESP32C3_PARTITION_TABLE_OFFSET_DEFAULT
depends on ESP32C3_APP_FORMAT_LEGACY
endif # !ESP32C3_CUSTOM_PARTITION_TABLE_OFFSET
if BUILD_PROTECTED
config ESP32C3_USER_IMAGE_OFFSET
hex "User image offset"
default 0x90000
---help---
Offset in SPI Flash for flashing the User application firmware image.
endif
source "arch/risc-v/src/esp32c3-legacy/Kconfig.security"
endmenu # Application Image Configuration
menu "Brownout Detect Configuration"
depends on ESP32C3_BROWNOUT_DET
choice ESP32C3_BROWNOUT_DET_LVL_SEL
prompt "Brownout voltage level"
default ESP32C3_BROWNOUT_DET_LVL_SEL_7
---help---
The brownout detector will reset the chip when the supply voltage is approximately
below this level. Note that there may be some variation of brownout voltage level
between each chip.
#The voltage levels here are estimates, more work needs to be done to figure out the exact voltages
#of the brownout threshold levels.
config ESP32C3_BROWNOUT_DET_LVL_SEL_7
bool "2.51V"
config ESP32C3_BROWNOUT_DET_LVL_SEL_6
bool "2.64V"
config ESP32C3_BROWNOUT_DET_LVL_SEL_5
bool "2.76V"
config ESP32C3_BROWNOUT_DET_LVL_SEL_4
bool "2.92V"
config ESP32C3_BROWNOUT_DET_LVL_SEL_3
bool "3.10V"
config ESP32C3_BROWNOUT_DET_LVL_SEL_2
bool "3.27V"
endchoice
config ESP32C3_BROWNOUT_DET_LVL
int
default 2 if ESP32C3_BROWNOUT_DET_LVL_SEL_2
default 3 if ESP32C3_BROWNOUT_DET_LVL_SEL_3
default 4 if ESP32C3_BROWNOUT_DET_LVL_SEL_4
default 5 if ESP32C3_BROWNOUT_DET_LVL_SEL_5
default 6 if ESP32C3_BROWNOUT_DET_LVL_SEL_6
default 7 if ESP32C3_BROWNOUT_DET_LVL_SEL_7
endmenu # ESP32C3_BROWNOUT_DET
endif # ARCH_CHIP_ESP32C3