sdkconfig.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2022 Gunar Schorcht
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
24 /*
25  * The SoC capability definitions are often included indirectly in the
26  * ESP-IDF files, although all ESP-IDF files require them. Since not all
27  * ESP-IDF header files are included in RIOT, the SoC capability definitions
28  * are unknown if they are only indirectly included. Therefore, the SoC
29  * capabilities are included in this file and are thus available to all
30  * ESP-IDF files. This avoids to update vendor code.
31  */
32 #ifndef LD_FILE_GEN
33 # include "soc/soc_caps.h"
34 #endif
35 
41 #if !defined(IDF_VER)
42 # include "esp_idf_ver.h"
43 #endif
44 
45 #ifndef DOXYGEN
46 
53 #ifdef CONFIG_CONSOLE_UART_NUM
54 # define CONFIG_ESP_CONSOLE_UART_NUM CONFIG_CONSOLE_UART_NUM
55 #else
56 # define CONFIG_ESP_CONSOLE_UART_NUM 0
57 #endif
58 #define CONFIG_ESP_CONSOLE_UART_BAUDRATE STDIO_UART_BAUDRATE
59 
60 #define CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM CONFIG_ESP_CONSOLE_UART_NUM
61 
65 #ifndef CONFIG_LOG_DEFAULT_LEVEL
66 # define CONFIG_LOG_DEFAULT_LEVEL LOG_LEVEL
67 #endif
68 #define CONFIG_LOG_MAXIMUM_LEVEL LOG_LEVEL
69 
73 #if MODULE_NEWLIB_NANO
74 # define CONFIG_NEWLIB_NANO_FORMAT 1
75 #endif
76 
77 #define CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4 1
78 #define CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE 32
79 #define CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE 2560
80 #define CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE 1
81 
82 #define CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER 1
83 #define CONFIG_ESP_TIMER_TASK_STACK_SIZE 3584
84 #define CONFIG_ESP_TIMER_INTERRUPT_LEVEL 1
85 #define CONFIG_ESP_TIMER_TASK_AFFINITY 0
86 #define CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0 1
87 
88 #define CONFIG_TIMER_TASK_STACK_SIZE CONFIG_ESP_TIMER_TASK_STACK_SIZE
89 
90 #define CONFIG_APP_BUILD_TYPE_APP_2NDBOOT 1
91 #define CONFIG_APP_BUILD_GENERATE_BINARIES 1
92 #define CONFIG_APP_BUILD_BOOTLOADER 1
93 #define CONFIG_APP_BUILD_USE_FLASH_SECTIONS 1
94 #define CONFIG_APP_COMPILE_TIME_DATE 1
95 #define CONFIG_APP_EXCLUDE_PROJECT_VER_VAR 1
96 #define CONFIG_APP_RETRIEVE_LEN_ELF_SHA 9
97 
98 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv"
99 #define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv"
100 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1
101 #define CONFIG_PARTITION_TABLE_OFFSET 0x8000
102 
106 #if MODULE_ESP_BLE
107 # define CONFIG_BT_ENABLED 1
108 # define CONFIG_BT_CONTROLLER_ENABLED 1
109 # define CONFIG_BT_CONTROLLER_ONLY 1
110 # define CONFIG_SOC_BT_SUPPORTED SOC_BT_SUPPORTED
111 # define CONFIG_SOC_PM_SUPPORT_BT_PD SOC_PM_SUPPORT_BT_PD
112 # define CONFIG_SOC_PM_SUPPORT_BT_WAKEUP SOC_PM_SUPPORT_BT_WAKEUP
113 #endif
114 
118 #if MODULE_ESP_SPI_RAM
119 # define CONFIG_SPIRAM 1
120 # define CONFIG_SPIRAM_TYPE_AUTO 1
121 # define CONFIG_SPIRAM_SIZE -1
122 # define CONFIG_SPIRAM_SPEED_40M 1
123 # define CONFIG_SPIRAM_SPEED 40
124 # define CONFIG_SPIRAM_BOOT_INIT 1
125 # define CONFIG_SPIRAM_USE_MALLOC 1 /* using malloc requires QStaticQueue */
126 # define CONFIG_SPIRAM_USE_CAPS_ALLOC 0 /* using cap instead of malloc */
127 # define CONFIG_SPIRAM_MEMTEST 1
128 # define CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL 16384
129 # define CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL 32768
130 # define CONFIG_SOC_SPIRAM_SUPPORTED SOC_SPIRAM_SUPPORTED
131 # define CONFIG_ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND 1
132 #endif
133 
137 #define CONFIG_SPI_FLASH_ROM_DRIVER_PATCH 1
138 #define CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS 1
139 #define CONFIG_SPI_FLASH_YIELD_DURING_ERASE 1
140 #define CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS 20
141 #define CONFIG_SPI_FLASH_ERASE_YIELD_TICKS 1
142 #define CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE 8192
143 #define CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP 1
144 #define CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP 1
145 #define CONFIG_SPI_FLASH_SUPPORT_GD_CHIP 1
146 #define CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP 1
147 #define CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP 1
148 #define CONFIG_SPI_FLASH_SUPPORT_TH_CHIP 1
149 #define CONFIG_SPI_FLASH_SUPPORT_MXIC_OPI_CHIP 1
150 
154 #if MODULE_ESP_RTC_TIMER_32K
155 # define CONFIG_RTC_CLK_SRC_EXT_CRYS 1
156 #else
157 # define CONFIG_RTC_CLK_SRC_INT_RC 1
158 #endif
159 
163 #if MODULE_ESP_ETH
164 # define CONFIG_ETH_ENABLED 1
165 #endif
166 
170 #if !defined(CONFIG_FLASHMODE_DOUT) && \
171  !defined(CONFIG_FLASHMODE_DIO) && \
172  !defined(CONFIG_FLASHMODE_QOUT) && \
173  !defined(CONFIG_FLASHMODE_QIO)
174 # error "Flash mode not configured"
175 #endif
176 
180 #if MODULE_ESP_WIFI_ANY
181 # define CONFIG_ESP_WIFI_ENABLED 1
182 # define CONFIG_ESP_WIFI_AMPDU_RX_ENABLED 1
183 # define CONFIG_ESP_WIFI_AMPDU_TX_ENABLED 1
184 # define CONFIG_ESP_WIFI_AUTH_WPA2_PSK 1
185 # define CONFIG_ESP_WIFI_CACHE_TX_BUFFER_NUM 32
186 # define CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM 32
187 # define CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF 0
188 # define CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER 1
189 # define CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM 32
190 # define CONFIG_ESP_WIFI_ENABLE_SAE_PK 0 /* default 1 for WPA3 */
191 # define CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA 0 /* default 1 for WPA3 */
192 # define CONFIG_ESP_WIFI_ENABLE_WPA3_SAE 0 /* default 1 for WPA3 */
193 # define CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM 7
194 # define CONFIG_ESP_WIFI_GMAC_SUPPORT 1
195 # define CONFIG_ESP_WIFI_IRAM_OPT 0 /* default 1 */
196 # define CONFIG_ESP_WIFI_MBEDTLS_CRYPTO 0 /* default 1 for WPA3 */
197 # define CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT 0 /* default 1 for WPA3 */
198 # define CONFIG_ESP_WIFI_MGMT_SBUF_NUM 32
199 # define CONFIG_ESP_WIFI_NVS_ENABLED MODULE_ESP_IDF_NVS_FLASH
200 # define CONFIG_ESP_WIFI_PW_ID ""
201 # define CONFIG_ESP_WIFI_RX_BA_WIN 6
202 # define CONFIG_ESP_WIFI_RX_IRAM_OPT 0 /* default 1 */
203 # define CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF 5
204 # define CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN 752
205 # define CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE 1
206 # define CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM 10
207 # define CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER 1
208 # define CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0 1
209 # define CONFIG_ESP_WIFI_TX_BA_WIN 6
210 # define CONFIG_ESP_WIFI_TX_BUFFER_TYPE 1
211 
212 # define CONFIG_CRYPTO_INTERNAL 1
213 
214 # if MODULE_ESP_WIFI_AP || MODULE_ESP_NOW
215 # define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1
216 # endif
217 
218 # if MODULE_ESP_WIFI_ENTERPRISE
219 # define CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT 1
220 # endif
221 
222 #endif
223 
224 #define CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME 10
225 #define CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME 50
226 #define CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME 15
227 
231 #if SOC_PHY_SUPPORTED
232 # define CONFIG_ESP_PHY_ENABLED 1
233 # define CONFIG_ESP_PHY_CALIBRATION_MODE 0
234 # define CONFIG_ESP_PHY_MAX_TX_POWER 20
235 # define CONFIG_ESP_PHY_MAX_WIFI_TX_POWER 20
236 # define CONFIG_ESP_PHY_RF_CAL_PARTIAL 1
237 # if MODULE_ESP_IDF_NVS_FLASH
238 # define CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE 1
239 # endif
240 #endif
241 
245 #if !SOC_WIRELESS_HOST_SUPPORTED
246 # define CONFIG_ESP_COEX_ENABLED 1
247 # if CONFIG_ESP_WIFI_ENABLED && CONFIG_BT_ENABLED
248 # define CONFIG_ESP_COEX_SW_COEXIST_ENABLE 1
249 # endif
250 # if 0
251  /* TODO:
252  * CONFIG_SW_COEXIST_ENABLE is deprecated but still used in code.
253  * It is not defined in IDF sdkconfigs and does not work if defined. */
254 # define CONFIG_SW_COEXIST_ENABLE 1
255 # endif
256 #endif /* !SOC_WIRELESS_HOST_SUPPORTED */
257 
261 #ifndef CONFIG_ESP_FLASHPAGE_CAPACITY
262 
263 #if MODULE_PERIPH_FLASHPAGE
264 # if CONFIG_ESP_FLASHPAGE_CAPACITY_64K
265 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x10000
266 # elif CONFIG_ESP_FLASHPAGE_CAPACITY_128K
267 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x20000
268 # elif CONFIG_ESP_FLASHPAGE_CAPACITY_256K
269 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x40000
270 # elif CONFIG_ESP_FLASHPAGE_CAPACITY_512K
271 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x80000
272 # elif CONFIG_ESP_FLASHPAGE_CAPACITY_1M
273 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x100000
274 # elif CONFIG_ESP_FLASHPAGE_CAPACITY_2M
275 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x200000
276 # else
277 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x80000
278 # endif
279 #else /* MODULE_PERIPH_FLASHPAGE */
280 # define CONFIG_ESP_FLASHPAGE_CAPACITY 0x0
281 #endif /* MODULE_PERIPH_FLASHPAGE */
282 
283 #endif /* !CONFIG_ESP_FLASHPAGE_CAPACITY */
284 
288 #if MODULE_ESP_IDF_LCD
289 # ifndef CONFIG_LCD_DATA_BUF_SIZE
290 # define CONFIG_LCD_DATA_BUF_SIZE 512
291 # endif
292 # define CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE CONFIG_LCD_DATA_BUF_SIZE
293 #endif
294 
298 #if defined(CPU_FAM_ESP32)
299 # include "sdkconfig_esp32.h"
300 #elif defined(CPU_FAM_ESP32C3)
301 # include "sdkconfig_esp32c3.h"
302 #elif defined(CPU_FAM_ESP32S2)
303 # include "sdkconfig_esp32s2.h"
304 #elif defined(CPU_FAM_ESP32S3)
305 # include "sdkconfig_esp32s3.h"
306 #else
307 # error "ESP32x family implementation missing"
308 #endif
309 
310 #ifndef CONFIG_MMU_PAGE_SIZE
311 # define CONFIG_MMU_PAGE_SIZE_64KB 1
312 # define CONFIG_MMU_PAGE_SIZE 0x10000
313 #endif
314 
315 #ifndef CONFIG_FREERTOS_NUMBER_OF_CORES
316 # define CONFIG_FREERTOS_NUMBER_OF_CORES 1
317 #endif
318 
319 #define CONFIG_ESP_DEBUG_OCDAWARE 1
320 
321 #define CONFIG_ADC_SUPPRESS_DEPRECATE_WARN 1
322 
323 #define CONFIG_HEAP_POISONING_DISABLED 1
324 #define CONFIG_HEAP_TRACING_OFF 1
325 #define CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP 1
326 
327 #define CONFIG_ULP_COPROC_RESERVE_MEM 0
328 
329 #ifdef SOC_RTC_MEM_SUPPORTED
330 # define CONFIG_SOC_RTC_MEM_SUPPORTED 1
331 #endif
332 #ifdef SOC_RTC_FAST_MEM_SUPPORTED
333 # define CONFIG_SOC_RTC_FAST_MEM_SUPPORTED 1
334 #endif
335 #ifdef SOC_RTC_SLOW_SUPPORTED
336 # define CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED 1
337 #endif
338 
342 #ifdef SOC_SDMMC_HOST_SUPPORTED
343 # define CONFIG_SOC_SDMMC_HOST_SUPPORTED SOC_SDMMC_HOST_SUPPORTED
344 # define CONFIG_SOC_SDMMC_DELAY_PHASE_NUM SOC_SDMMC_DELAY_PHASE_NUM
345 # define CONFIG_SOC_SDMMC_NUM_SLOTS SOC_SDMMC_NUM_SLOTS
346 # define CONFIG_SOC_SDMMC_SUPPORT_XTAL_CLOCK SOC_SDMMC_SUPPORT_XTAL_CLOCK
347 # define CONFIG_SOC_SDMMC_USE_GPIO_MATRIX SOC_SDMMC_USE_GPIO_MATRIX
348 # define CONFIG_SOC_SDMMC_USE_IOMUX SOC_SDMMC_USE_IOMUX
349 #endif /* SOC_SDMMC_HOST_SUPPORTED */
350 
354 #ifdef SOC_USB_SERIAL_JTAG_SUPPORTED
355 # ifndef CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG
356 # define CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG 1
357 # endif
358 # ifndef CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG
359 # define CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG 0
360 # endif
361 # define CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED (CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG || \
362  CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG)
363 # define CONFIG_SOC_EFUSE_DIS_USB_JTAG SOC_EFUSE_DIS_USB_JTAG
364 # define CONFIG_SOC_EFUSE_HARD_DIS_JTAG SOC_EFUSE_HARD_DIS_JTAG
365 # define CONFIG_SOC_EFUSE_SOFT_DIS_JTAG SOC_EFUSE_SOFT_DIS_JTAG
366 # define CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED 1
367 # define CONFIG_USJ_ENABLE_USB_SERIAL_JTAG CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED
368 #endif /* SOC_USB_SERIAL_JTAG_SUPPORTED */
369 
370 /* should be RIOT_APPLICATION but PROJECT_NAME must be less than 24 characters */
371 #define PROJECT_NAME "RIOT-OS Application"
372 
373 #endif /* DOXYGEN */
374 
375 #ifdef __cplusplus
376 extern "C" {
377 #endif
378 
379 #ifdef __cplusplus
380 }
381 #endif
382 
SDK configuration used by the ESP-IDF for ESP32 SoC variant (family)
SDK configuration used by the ESP-IDF for ESP32-C3 SoC variant (family)
SDK configuration used by the ESP-IDF for ESP32-S2 SoC variant (family)
SDK configuration used by the ESP-IDF for ESP32-S3 SoC variant (family)