Merge branch 'fix/fix_mspi_write_stuck_after_reset_v5.5' into 'release/v5.5'

fix(esp_system): fix mspi write stuck after cpu/digital reset on c5/c61 (v5.5)

See merge request espressif/esp-idf!43732
This commit is contained in:
Jiang Jiang Jian
2025-12-04 10:34:56 +08:00
11 changed files with 73 additions and 1 deletions
@@ -43,6 +43,7 @@
#include "hal/lpwdt_ll.h"
#include "hal/regi2c_ctrl_ll.h"
#include "hal/brownout_ll.h"
#include "hal/axi_icm_ll.h"
static const char *TAG = "boot.esp32c5";
@@ -85,6 +86,9 @@ static void bootloader_super_wdt_auto_feed(void)
static inline void bootloader_hardware_init(void)
{
// Clear bit reset_event_bypass to ensure that the system bus is also reset during a core reset (WDT),
// preventing bus freezing caused by an incorrect MSPI core reset in ROM.
axi_icm_ll_reset_with_core_reset(true);
_regi2c_ctrl_ll_master_enable_clock(true); // keep ana i2c mst clock always enabled in bootloader
regi2c_ctrl_ll_master_force_enable_clock(true); // TODO: IDF-8667 Remove this?
regi2c_ctrl_ll_master_configure_clock();
@@ -44,6 +44,7 @@
#include "hal/lpwdt_ll.h"
#include "hal/regi2c_ctrl_ll.h"
#include "hal/brownout_ll.h"
#include "hal/axi_icm_ll.h"
static const char *TAG = "boot.esp32c61";
@@ -86,6 +87,9 @@ static void bootloader_super_wdt_auto_feed(void)
static inline void bootloader_hardware_init(void)
{
// Clear bit reset_event_bypass to ensure that the system bus is also reset during a core reset (WDT),
// preventing bus freezing caused by an incorrect MSPI core reset in ROM.
axi_icm_ll_reset_with_core_reset(true);
_regi2c_ctrl_ll_master_enable_clock(true); // keep ana i2c mst clock always enabled in bootloader
regi2c_ctrl_ll_master_force_enable_clock(true); // TODO: IDF-9274 Remove this?
regi2c_ctrl_ll_master_configure_clock();