Merge branch 'bugfix/efuse_logs_v4.1' into 'release/v4.1'

esp32: Reduce using ESP_EARLY_LOGx and move some code after the stdout initialization in startup code (v4.1)

See merge request espressif/esp-idf!9206
This commit is contained in:
Angus Gratton 2020-06-18 07:11:42 +08:00
commit 9e55345c43
4 changed files with 19 additions and 16 deletions

View file

@ -36,7 +36,7 @@ void esp_flash_encryption_init_checks()
uint8_t flash_crypt_cnt_wr_dis = 0; uint8_t flash_crypt_cnt_wr_dis = 0;
esp_efuse_read_field_blob(ESP_EFUSE_WR_DIS_FLASH_CRYPT_CNT, &flash_crypt_cnt_wr_dis, 1); esp_efuse_read_field_blob(ESP_EFUSE_WR_DIS_FLASH_CRYPT_CNT, &flash_crypt_cnt_wr_dis, 1);
if (!flash_crypt_cnt_wr_dis) { if (!flash_crypt_cnt_wr_dis) {
ESP_EARLY_LOGE(TAG, "Flash encryption & Secure Boot together requires FLASH_CRYPT_CNT efuse to be write protected. Fixing now..."); ESP_LOGE(TAG, "Flash encryption & Secure Boot together requires FLASH_CRYPT_CNT efuse to be write protected. Fixing now...");
esp_flash_write_protect_crypt_cnt(); esp_flash_write_protect_crypt_cnt();
} }
} }
@ -48,13 +48,13 @@ void esp_flash_encryption_init_checks()
mode = esp_get_flash_encryption_mode(); mode = esp_get_flash_encryption_mode();
if (mode == ESP_FLASH_ENC_MODE_DEVELOPMENT) { if (mode == ESP_FLASH_ENC_MODE_DEVELOPMENT) {
#ifdef CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE #ifdef CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE
ESP_EARLY_LOGE(TAG, "Flash encryption settings error: app is configured for RELEASE but efuses are set for DEVELOPMENT"); ESP_LOGE(TAG, "Flash encryption settings error: app is configured for RELEASE but efuses are set for DEVELOPMENT");
ESP_EARLY_LOGE(TAG, "Mismatch found in security options in bootloader menuconfig and efuse settings. Device is not secure."); ESP_LOGE(TAG, "Mismatch found in security options in bootloader menuconfig and efuse settings. Device is not secure.");
#else #else
ESP_EARLY_LOGW(TAG, "Flash encryption mode is DEVELOPMENT (not secure)"); ESP_LOGW(TAG, "Flash encryption mode is DEVELOPMENT (not secure)");
#endif #endif
} else if (mode == ESP_FLASH_ENC_MODE_RELEASE) { } else if (mode == ESP_FLASH_ENC_MODE_RELEASE) {
ESP_EARLY_LOGI(TAG, "Flash encryption mode is RELEASE"); ESP_LOGI(TAG, "Flash encryption mode is RELEASE");
} }
} }
#endif #endif

View file

@ -74,7 +74,7 @@ void esp_efuse_disable_basic_rom_console(void)
esp_efuse_read_field_blob(ESP_EFUSE_CONSOLE_DEBUG_DISABLE, &console_debug_disable, 1); esp_efuse_read_field_blob(ESP_EFUSE_CONSOLE_DEBUG_DISABLE, &console_debug_disable, 1);
if (console_debug_disable == 0) { if (console_debug_disable == 0) {
esp_efuse_write_field_cnt(ESP_EFUSE_CONSOLE_DEBUG_DISABLE, 1); esp_efuse_write_field_cnt(ESP_EFUSE_CONSOLE_DEBUG_DISABLE, 1);
ESP_EARLY_LOGI(TAG, "Disable BASIC ROM Console fallback via efuse..."); ESP_LOGI(TAG, "Disable BASIC ROM Console fallback via efuse...");
} }
} }

View file

@ -208,10 +208,6 @@ void IRAM_ATTR call_start_cpu0(void)
} }
ESP_EARLY_LOGI(TAG, "Starting app cpu, entry point is %p", call_start_cpu1); ESP_EARLY_LOGI(TAG, "Starting app cpu, entry point is %p", call_start_cpu1);
#ifdef CONFIG_SECURE_FLASH_ENC_ENABLED
esp_flash_encryption_init_checks();
#endif
//Flush and enable icache for APP CPU //Flush and enable icache for APP CPU
Cache_Flush(1); Cache_Flush(1);
Cache_Read_Enable(1); Cache_Read_Enable(1);
@ -352,9 +348,6 @@ void start_cpu0_default(void)
#if CONFIG_ESP32_BROWNOUT_DET #if CONFIG_ESP32_BROWNOUT_DET
esp_brownout_init(); esp_brownout_init();
#endif
#if CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE
esp_efuse_disable_basic_rom_console();
#endif #endif
rtc_gpio_force_hold_dis_all(); rtc_gpio_force_hold_dis_all();
esp_vfs_dev_uart_register(); esp_vfs_dev_uart_register();
@ -368,6 +361,14 @@ void start_cpu0_default(void)
_GLOBAL_REENT->_stdin = (FILE*) &__sf_fake_stdin; _GLOBAL_REENT->_stdin = (FILE*) &__sf_fake_stdin;
_GLOBAL_REENT->_stdout = (FILE*) &__sf_fake_stdout; _GLOBAL_REENT->_stdout = (FILE*) &__sf_fake_stdout;
_GLOBAL_REENT->_stderr = (FILE*) &__sf_fake_stderr; _GLOBAL_REENT->_stderr = (FILE*) &__sf_fake_stderr;
#endif
// After setting _GLOBAL_REENT, ESP_LOGIx can be used instead of ESP_EARLY_LOGx.
#ifdef CONFIG_SECURE_FLASH_ENC_ENABLED
esp_flash_encryption_init_checks();
#endif
#if CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE
esp_efuse_disable_basic_rom_console();
#endif #endif
esp_timer_init(); esp_timer_init();
esp_set_time_from_rtc(); esp_set_time_from_rtc();

View file

@ -276,9 +276,6 @@ void start_cpu0_default(void)
#if CONFIG_ESP32S2_BROWNOUT_DET #if CONFIG_ESP32S2_BROWNOUT_DET
esp_brownout_init(); esp_brownout_init();
#endif
#if CONFIG_ESP32S2_DISABLE_BASIC_ROM_CONSOLE
esp_efuse_disable_basic_rom_console();
#endif #endif
rtc_gpio_force_hold_dis_all(); rtc_gpio_force_hold_dis_all();
esp_vfs_dev_uart_register(); esp_vfs_dev_uart_register();
@ -292,6 +289,11 @@ void start_cpu0_default(void)
_GLOBAL_REENT->_stdin = (FILE*) &__sf_fake_stdin; _GLOBAL_REENT->_stdin = (FILE*) &__sf_fake_stdin;
_GLOBAL_REENT->_stdout = (FILE*) &__sf_fake_stdout; _GLOBAL_REENT->_stdout = (FILE*) &__sf_fake_stdout;
_GLOBAL_REENT->_stderr = (FILE*) &__sf_fake_stderr; _GLOBAL_REENT->_stderr = (FILE*) &__sf_fake_stderr;
#endif
// After setting _GLOBAL_REENT, ESP_LOGIx can be used instead of ESP_EARLY_LOGx.
#if CONFIG_ESP32S2_DISABLE_BASIC_ROM_CONSOLE
esp_efuse_disable_basic_rom_console();
#endif #endif
esp_timer_init(); esp_timer_init();
esp_set_time_from_rtc(); esp_set_time_from_rtc();