diff --git a/components/bt/test/component.mk b/components/bt/test/component.mk index 5dd172bdb7..55e05e4239 100644 --- a/components/bt/test/component.mk +++ b/components/bt/test/component.mk @@ -1,5 +1,5 @@ -# -#Component Makefile -# - +ifdef CONFIG_BT_ENABLED COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive +else +COMPONENT_CONFIG_ONLY := 1 +endif diff --git a/components/esp32/cpu_start.c b/components/esp32/cpu_start.c index 4d907f333c..abe142a4fc 100644 --- a/components/esp32/cpu_start.c +++ b/components/esp32/cpu_start.c @@ -29,6 +29,7 @@ #include "soc/io_mux_reg.h" #include "soc/rtc_cntl_reg.h" #include "soc/timer_group_reg.h" +#include "soc/efuse_reg.h" #include "driver/rtc_io.h" @@ -163,6 +164,11 @@ void IRAM_ATTR call_start_cpu0() ESP_EARLY_LOGI(TAG, "Pro cpu up."); #if !CONFIG_FREERTOS_UNICORE + if (REG_GET_BIT(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_DIS_APP_CPU)) { + ESP_EARLY_LOGE(TAG, "Running on single core chip, but application is built with dual core support."); + ESP_EARLY_LOGE(TAG, "Please enable CONFIG_FREERTOS_UNICORE option in menuconfig."); + abort(); + } ESP_EARLY_LOGI(TAG, "Starting app cpu, entry point is %p", call_start_cpu1); //Flush and enable icache for APP CPU Cache_Flush(1); diff --git a/components/esp32/sleep_modes.c b/components/esp32/sleep_modes.c index f4cefb98b6..aa1d1658a2 100644 --- a/components/esp32/sleep_modes.c +++ b/components/esp32/sleep_modes.c @@ -607,11 +607,15 @@ static uint32_t get_power_down_flags() // RTC_SLOW_MEM is Auto, keep it powered up as well. // These labels are defined in the linker script: - extern int _rtc_data_start, _rtc_data_end, _rtc_bss_start, _rtc_bss_end; + extern int _rtc_data_start, _rtc_data_end, + _rtc_bss_start, _rtc_bss_end, + _rtc_noinit_start, _rtc_noinit_end; if ((s_config.pd_options[ESP_PD_DOMAIN_RTC_SLOW_MEM] == ESP_PD_OPTION_AUTO) && - (&_rtc_data_end > &_rtc_data_start || &_rtc_bss_end > &_rtc_bss_start || - (s_config.wakeup_triggers & RTC_ULP_TRIG_EN))) { + (&_rtc_data_end > &_rtc_data_start || + &_rtc_bss_end > &_rtc_bss_start || + &_rtc_noinit_end > &_rtc_noinit_start || + (s_config.wakeup_triggers & RTC_ULP_TRIG_EN))) { s_config.pd_options[ESP_PD_DOMAIN_RTC_SLOW_MEM] = ESP_PD_OPTION_ON; } diff --git a/components/freertos/CMakeLists.txt b/components/freertos/CMakeLists.txt index bcd9b0c42e..ef0b7343fa 100644 --- a/components/freertos/CMakeLists.txt +++ b/components/freertos/CMakeLists.txt @@ -17,7 +17,10 @@ set(COMPONENT_SRCS "FreeRTOS-openocd.c" "xtensa_overlay_os_hook.c" "xtensa_vector_defaults.S" "xtensa_vectors.S") -set(COMPONENT_REQUIRES) + +# app_trace is required by FreeRTOS headers only when CONFIG_SYSVIEW_ENABLE=y, +# but requirements can't depend on config options, so always require it. +set(COMPONENT_REQUIRES app_trace) register_component() diff --git a/components/wpa_supplicant/src/fast_crypto/fast_crypto_internal-cipher.c b/components/wpa_supplicant/src/fast_crypto/fast_crypto_internal-cipher.c index 472e173262..826d365e8c 100644 --- a/components/wpa_supplicant/src/fast_crypto/fast_crypto_internal-cipher.c +++ b/components/wpa_supplicant/src/fast_crypto/fast_crypto_internal-cipher.c @@ -77,9 +77,9 @@ struct crypto_cipher * fast_crypto_cipher_init(enum crypto_cipher_alg alg, break; case CRYPTO_CIPHER_ALG_AES: mbedtls_aes_init(&(ctx->u.aes.ctx_enc)); - mbedtls_aes_setkey_enc(&(ctx->u.aes.ctx_enc), key, 256); + mbedtls_aes_setkey_enc(&(ctx->u.aes.ctx_enc), key, key_len * 8); mbedtls_aes_init(&(ctx->u.aes.ctx_dec)); - mbedtls_aes_setkey_dec(&(ctx->u.aes.ctx_dec), key, 256); + mbedtls_aes_setkey_dec(&(ctx->u.aes.ctx_dec), key, key_len * 8); os_memcpy(ctx->u.aes.cbc, iv, AES_BLOCK_SIZE); break; #ifdef CONFIG_DES3 diff --git a/components/wpa_supplicant/src/wpa2/tls/tlsv1_client.c b/components/wpa_supplicant/src/wpa2/tls/tlsv1_client.c index 5283af2c41..62753b3b5e 100644 --- a/components/wpa_supplicant/src/wpa2/tls/tlsv1_client.c +++ b/components/wpa_supplicant/src/wpa2/tls/tlsv1_client.c @@ -463,7 +463,9 @@ struct tlsv1_client * tlsv1_client_init(void) suites[count++] = TLS_RSA_WITH_AES_256_CBC_SHA; suites[count++] = TLS_RSA_WITH_AES_128_CBC_SHA256; suites[count++] = TLS_RSA_WITH_AES_128_CBC_SHA; +#ifdef CONFIG_DES3 suites[count++] = TLS_RSA_WITH_3DES_EDE_CBC_SHA; +#endif suites[count++] = TLS_RSA_WITH_RC4_128_SHA; suites[count++] = TLS_RSA_WITH_RC4_128_MD5; conn->num_cipher_suites = count; @@ -560,12 +562,16 @@ int tlsv1_client_get_cipher(struct tlsv1_client *conn, char *buf, case TLS_RSA_WITH_RC4_128_SHA: cipher = "RC4-SHA"; break; +#ifdef CONFIG_DES case TLS_RSA_WITH_DES_CBC_SHA: cipher = "DES-CBC-SHA"; break; +#endif +#ifdef CONFIG_DES3 case TLS_RSA_WITH_3DES_EDE_CBC_SHA: cipher = "DES-CBC3-SHA"; break; +#endif case TLS_DH_anon_WITH_AES_128_CBC_SHA256: cipher = "ADH-AES-128-SHA256"; break; @@ -601,12 +607,16 @@ int tlsv1_client_get_cipher(struct tlsv1_client *conn, char *buf, case TLS_RSA_WITH_RC4_128_SHA: strcpy(cipher, "RC4-SHA"); break; +#ifdef CONFIG_DES case TLS_RSA_WITH_DES_CBC_SHA: strcpy(cipher, "DES-CBC-SHA"); break; +#endif +#ifdef CONFIG_DES3 case TLS_RSA_WITH_3DES_EDE_CBC_SHA: strcpy(cipher, "DES-CBC3-SHA"); break; +#endif case TLS_DH_anon_WITH_AES_128_CBC_SHA256: strcpy(cipher, "ADH-AES-128-SHA256"); break; @@ -780,9 +790,13 @@ int tlsv1_client_set_cipher_list(struct tlsv1_client *conn, u8 *ciphers) suites[count++] = TLS_DH_anon_WITH_AES_256_CBC_SHA; suites[count++] = TLS_DH_anon_WITH_AES_128_CBC_SHA256; suites[count++] = TLS_DH_anon_WITH_AES_128_CBC_SHA; +#ifdef CONFIG_DES3 suites[count++] = TLS_DH_anon_WITH_3DES_EDE_CBC_SHA; +#endif suites[count++] = TLS_DH_anon_WITH_RC4_128_MD5; +#ifdef CONFIG_DES suites[count++] = TLS_DH_anon_WITH_DES_CBC_SHA; +#endif /* * Cisco AP (at least 350 and 1200 series) local authentication diff --git a/components/wpa_supplicant/src/wpa2/tls/tlsv1_common.c b/components/wpa_supplicant/src/wpa2/tls/tlsv1_common.c index 9d17928dbc..38d0b694d2 100644 --- a/components/wpa_supplicant/src/wpa2/tls/tlsv1_common.c +++ b/components/wpa_supplicant/src/wpa2/tls/tlsv1_common.c @@ -31,16 +31,24 @@ static const struct tls_cipher_suite tls_cipher_suites[] = { TLS_HASH_MD5 }, { TLS_RSA_WITH_RC4_128_SHA, TLS_KEY_X_RSA, TLS_CIPHER_RC4_128, TLS_HASH_SHA }, +#ifdef CONFIG_DES { TLS_RSA_WITH_DES_CBC_SHA, TLS_KEY_X_RSA, TLS_CIPHER_DES_CBC, TLS_HASH_SHA }, +#endif +#ifdef CONFIG_DES3 { TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_KEY_X_RSA, TLS_CIPHER_3DES_EDE_CBC, TLS_HASH_SHA }, +#endif { TLS_DH_anon_WITH_RC4_128_MD5, TLS_KEY_X_DH_anon, TLS_CIPHER_RC4_128, TLS_HASH_MD5 }, +#ifdef CONFIG_DES { TLS_DH_anon_WITH_DES_CBC_SHA, TLS_KEY_X_DH_anon, TLS_CIPHER_DES_CBC, TLS_HASH_SHA }, +#endif +#ifdef CONFIG_DES3 { TLS_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_KEY_X_DH_anon, TLS_CIPHER_3DES_EDE_CBC, TLS_HASH_SHA }, +#endif { TLS_RSA_WITH_AES_128_CBC_SHA, TLS_KEY_X_RSA, TLS_CIPHER_AES_128_CBC, TLS_HASH_SHA }, { TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_KEY_X_DH_anon, @@ -74,12 +82,16 @@ static const struct tls_cipher_data tls_ciphers[] = { CRYPTO_CIPHER_ALG_RC4 }, { TLS_CIPHER_RC4_128, TLS_CIPHER_STREAM, 16, 16, 0, CRYPTO_CIPHER_ALG_RC4 }, +#ifdef CONFIG_DES { TLS_CIPHER_DES40_CBC, TLS_CIPHER_BLOCK, 5, 8, 8, CRYPTO_CIPHER_ALG_DES }, { TLS_CIPHER_DES_CBC, TLS_CIPHER_BLOCK, 8, 8, 8, CRYPTO_CIPHER_ALG_DES }, +#endif +#ifdef CONFIG_DES3 { TLS_CIPHER_3DES_EDE_CBC, TLS_CIPHER_BLOCK, 24, 24, 8, CRYPTO_CIPHER_ALG_3DES }, +#endif { TLS_CIPHER_AES_128_CBC, TLS_CIPHER_BLOCK, 16, 16, 16, CRYPTO_CIPHER_ALG_AES }, { TLS_CIPHER_AES_256_CBC, TLS_CIPHER_BLOCK, 32, 32, 16, diff --git a/components/wpa_supplicant/src/wpa2/tls/tlsv1_server.c b/components/wpa_supplicant/src/wpa2/tls/tlsv1_server.c index 642b09c7b7..95118aa052 100644 --- a/components/wpa_supplicant/src/wpa2/tls/tlsv1_server.c +++ b/components/wpa_supplicant/src/wpa2/tls/tlsv1_server.c @@ -363,7 +363,9 @@ struct tlsv1_server * tlsv1_server_init(struct tlsv1_credentials *cred) suites = conn->cipher_suites; suites[count++] = TLS_RSA_WITH_AES_256_CBC_SHA; suites[count++] = TLS_RSA_WITH_AES_128_CBC_SHA; +#ifdef CONFIG_DES3 suites[count++] = TLS_RSA_WITH_3DES_EDE_CBC_SHA; +#endif suites[count++] = TLS_RSA_WITH_RC4_128_SHA; suites[count++] = TLS_RSA_WITH_RC4_128_MD5; conn->num_cipher_suites = count; @@ -471,12 +473,16 @@ int tlsv1_server_get_cipher(struct tlsv1_server *conn, char *buf, case TLS_RSA_WITH_RC4_128_SHA: cipher = "RC4-SHA"; break; +#ifdef CONFIG_DES case TLS_RSA_WITH_DES_CBC_SHA: cipher = "DES-CBC-SHA"; break; +#endif +#ifdef CONFIG_DES3 case TLS_RSA_WITH_3DES_EDE_CBC_SHA: cipher = "DES-CBC3-SHA"; break; +#endif case TLS_DH_anon_WITH_AES_128_CBC_SHA: cipher = "ADH-AES-128-SHA"; break; diff --git a/docs/en/get-started-cmake/index.rst b/docs/en/get-started-cmake/index.rst index 8b3318a40b..ab4557f542 100644 --- a/docs/en/get-started-cmake/index.rst +++ b/docs/en/get-started-cmake/index.rst @@ -248,6 +248,11 @@ Here are couple of tips on navigation and use of ``menuconfig``: * Pressing ``?`` while highlighting a configuration item displays help about that item. * Type ``/`` to search the configuration items. +.. attention:: + + When using ESP32-DevKitC board with ESP32-SOLO-1 module, enable single core mode (:envvar:`CONFIG_FREERTOS_UNICORE`) in menuconfig before flashing example applications. + + .. _get-started-build-cmake: Build The Project diff --git a/docs/en/get-started/index.rst b/docs/en/get-started/index.rst index 188b6938d4..9d5dddad4d 100644 --- a/docs/en/get-started/index.rst +++ b/docs/en/get-started/index.rst @@ -204,6 +204,11 @@ Here are couple of tips on navigation and use of ``menuconfig``: If you are **Arch Linux** user, navigate to ``SDK tool configuration`` and change the name of ``Python 2 interpreter`` from ``python`` to ``python2``. +.. attention:: + + When using ESP32-DevKitC board with ESP32-SOLO-1 module, enable single core mode (:envvar:`CONFIG_FREERTOS_UNICORE`) in menuconfig before flashing example applications. + + .. _get-started-build-flash: Build and Flash diff --git a/docs/zh_CN/get-started/index.rst b/docs/zh_CN/get-started/index.rst index 043569da5d..e585f74c20 100644 --- a/docs/zh_CN/get-started/index.rst +++ b/docs/zh_CN/get-started/index.rst @@ -200,6 +200,10 @@ ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照 如果你是 **Arch Linux** 用户,需要进入 ``SDK tool configuration`` 将 ``Python 2 interpreter`` 从 ``python`` 修改为 ``python2``。 +.. attention:: + + 如果 ESP32-DevKitC 板载的是 ESP32-SOLO-1 模组,请务必在烧写示例程序之前在 menuconfig 中使能单核模式(:envvar:`CONFIG_FREERTOS_UNICORE`)。 + .. _get-started-build-flash: diff --git a/tools/cmake/third_party/GetGitRevisionDescription.cmake b/tools/cmake/third_party/GetGitRevisionDescription.cmake index 6c711bbd49..70aaedd706 100644 --- a/tools/cmake/third_party/GetGitRevisionDescription.cmake +++ b/tools/cmake/third_party/GetGitRevisionDescription.cmake @@ -109,6 +109,8 @@ function(git_describe _var _repo_dir) execute_process(COMMAND "${GIT_EXECUTABLE}" + "-C" + ${_repo_dir} describe ${hash} ${ARGN}