SUKU ROM log early boot crash workaround #309
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Setting
CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH=yin sdkconfig triggers an ESP-IDF bug(espressif/esp-idf#12894) that crashes on boot if the eFuse
was previously burned. The IDF startup code only handles
ESP_ERR_NOT_SUPPORTEDbut notESP_ERR_INVALID_STATE,which is returned when the eFuse is already set.
The bug was reportedly fixed in commit
53682ed, but the fix never made it to the main branch.Solution
CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGHfrom sdkconfig (use defaultALWAYS_ON)esp_efuse_set_rom_log_scheme()directly in firmware with proper error handlingpatch_esp_efuse_startup.shDocker patchChanges
grid_esp/main/grid_esp32.c- Addgrid_esp32_setup_rom_log_scheme()grid_esp/main/grid_esp32.h- Add function declarationgrid_esp/main/grid_fw.c- Call function early inapp_main()grid_esp/sdkconfig- SetCONFIG_BOOT_ROM_LOG_ALWAYS_ON=yDockerfile- Remove eFuse patchpatch_esp_efuse_startup.shTesting with fresh boards
Testing with known incorrectly configured boards