Skip to content

Commit

Permalink
system: moved placement of disable rom log efuse in startup flow
Browse files Browse the repository at this point in the history
Functions used for burning this efuse would log, but at this point
esp_log is not initialized. Moved to a later point in the startup process.

Closes #9457
  • Loading branch information
ESP-Marius committed Aug 10, 2022
1 parent 56a89b9 commit a421e30
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 17 deletions.
18 changes: 1 addition & 17 deletions components/esp_system/port/cpu_start.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,18 +96,6 @@
#endif
#endif // CONFIG_APP_BUILD_TYPE_ELF_RAM

// Set efuse ROM_LOG_MODE on first boot
//
// For CONFIG_BOOT_ROM_LOG_ALWAYS_ON (default) or undefined (ESP32), leave
// ROM_LOG_MODE undefined (no need to call this function during startup)
#if CONFIG_BOOT_ROM_LOG_ALWAYS_OFF
#define ROM_LOG_MODE ESP_EFUSE_ROM_LOG_ALWAYS_OFF
#elif CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW
#define ROM_LOG_MODE ESP_EFUSE_ROM_LOG_ON_GPIO_LOW
#elif CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH
#define ROM_LOG_MODE ESP_EFUSE_ROM_LOG_ON_GPIO_HIGH
#endif


#include "esp_private/startup_internal.h"
#include "esp_private/system_internal.h"
Expand Down Expand Up @@ -621,7 +609,7 @@ void IRAM_ATTR call_start_cpu0(void)
#if CONFIG_SPI_FLASH_SIZE_OVERRIDE
int app_flash_size = esp_image_get_flash_size(fhdr.spi_size);
if (app_flash_size < 1 * 1024 * 1024) {
ESP_LOGE(TAG, "Invalid flash size in app image header.");
ESP_EARLY_LOGE(TAG, "Invalid flash size in app image header.");
abort();
}
bootloader_flash_update_size(app_flash_size);
Expand All @@ -641,9 +629,5 @@ void IRAM_ATTR call_start_cpu0(void)
}
#endif

#ifdef ROM_LOG_MODE
esp_efuse_set_rom_log_scheme(ROM_LOG_MODE);
#endif

SYS_STARTUP_FN();
}
17 changes: 17 additions & 0 deletions components/esp_system/startup.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,19 @@
#error "System has been configured to run on multiple cores, but target SoC only has a single core."
#endif

// Set efuse ROM_LOG_MODE on first boot
//
// For CONFIG_BOOT_ROM_LOG_ALWAYS_ON (default) or undefined (ESP32), leave
// ROM_LOG_MODE undefined (no need to call this function during startup)
#if CONFIG_BOOT_ROM_LOG_ALWAYS_OFF
#define ROM_LOG_MODE ESP_EFUSE_ROM_LOG_ALWAYS_OFF
#elif CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW
#define ROM_LOG_MODE ESP_EFUSE_ROM_LOG_ON_GPIO_LOW
#elif CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH
#define ROM_LOG_MODE ESP_EFUSE_ROM_LOG_ON_GPIO_HIGH
#endif


uint64_t g_startup_time = 0;

#if SOC_APB_BACKUP_DMA
Expand Down Expand Up @@ -331,6 +344,10 @@ static void do_core_init(void)
esp_secure_boot_init_checks();
#endif

#ifdef ROM_LOG_MODE
esp_efuse_set_rom_log_scheme(ROM_LOG_MODE);
#endif

#if CONFIG_ESP_XT_WDT
esp_xt_wdt_config_t cfg = {
.timeout = CONFIG_ESP_XT_WDT_TIMEOUT,
Expand Down

0 comments on commit a421e30

Please sign in to comment.