mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-03 12:44:33 +02:00
feat(system): updated H4 reset reasons
This commit is contained in:
@@ -81,7 +81,6 @@ typedef enum {
|
|||||||
POWERON_RESET = 1, /**<1, Vbat power on reset*/
|
POWERON_RESET = 1, /**<1, Vbat power on reset*/
|
||||||
RTC_SW_SYS_RESET = 3, /**<3, Software reset digital core (hp system)*/
|
RTC_SW_SYS_RESET = 3, /**<3, Software reset digital core (hp system)*/
|
||||||
DEEPSLEEP_RESET = 5, /**<5, Deep Sleep reset digital core (hp system)*/
|
DEEPSLEEP_RESET = 5, /**<5, Deep Sleep reset digital core (hp system)*/
|
||||||
SDIO_RESET = 6, /**<6, Reset by SLC module, reset digital core (hp system)*/
|
|
||||||
TG0WDT_SYS_RESET = 7, /**<7, Timer Group0 Watch dog reset digital core (hp system)*/
|
TG0WDT_SYS_RESET = 7, /**<7, Timer Group0 Watch dog reset digital core (hp system)*/
|
||||||
TG1WDT_SYS_RESET = 8, /**<8, Timer Group1 Watch dog reset digital core (hp system)*/
|
TG1WDT_SYS_RESET = 8, /**<8, Timer Group1 Watch dog reset digital core (hp system)*/
|
||||||
RTCWDT_SYS_RESET = 9, /**<9, RTC Watch dog Reset digital core (hp system)*/
|
RTCWDT_SYS_RESET = 9, /**<9, RTC Watch dog Reset digital core (hp system)*/
|
||||||
@@ -92,10 +91,12 @@ typedef enum {
|
|||||||
RTCWDT_RTC_RESET = 16, /**<16, RTC Watch dog reset digital core and rtc module*/
|
RTCWDT_RTC_RESET = 16, /**<16, RTC Watch dog reset digital core and rtc module*/
|
||||||
TG1WDT_CPU_RESET = 17, /**<17, Time Group1 reset CPU*/
|
TG1WDT_CPU_RESET = 17, /**<17, Time Group1 reset CPU*/
|
||||||
SUPER_WDT_RESET = 18, /**<18, super watchdog reset digital core and rtc module*/
|
SUPER_WDT_RESET = 18, /**<18, super watchdog reset digital core and rtc module*/
|
||||||
|
GLITCH_RTC_RESET = 19, /**<19, glitch reset*/
|
||||||
EFUSE_RESET = 20, /**<20, efuse reset digital core (hp system)*/
|
EFUSE_RESET = 20, /**<20, efuse reset digital core (hp system)*/
|
||||||
USB_UART_CHIP_RESET = 21, /**<21, usb uart reset digital core (hp system)*/
|
USB_UART_CHIP_RESET = 21, /**<21, usb uart reset digital core (hp system)*/
|
||||||
USB_JTAG_CHIP_RESET = 22, /**<22, usb jtag reset digital core (hp system)*/
|
USB_JTAG_CHIP_RESET = 22, /**<22, usb jtag reset digital core (hp system)*/
|
||||||
JTAG_RESET = 24, /**<24, jtag reset CPU*/
|
JTAG_RESET = 24, /**<24, jtag reset CPU*/
|
||||||
|
CPU_LOCKUP_RESET = 25, /**<25, cpu lockup reset*/
|
||||||
} RESET_REASON;
|
} RESET_REASON;
|
||||||
|
|
||||||
// Check if the reset reason defined in ROM is compatible with soc/reset_reasons.h
|
// Check if the reset reason defined in ROM is compatible with soc/reset_reasons.h
|
||||||
@@ -112,10 +113,12 @@ ESP_STATIC_ASSERT((soc_reset_reason_t)RTCWDT_BROWN_OUT_RESET == RESET_REASON_SYS
|
|||||||
ESP_STATIC_ASSERT((soc_reset_reason_t)RTCWDT_RTC_RESET == RESET_REASON_SYS_RTC_WDT, "RTCWDT_RTC_RESET != RESET_REASON_SYS_RTC_WDT");
|
ESP_STATIC_ASSERT((soc_reset_reason_t)RTCWDT_RTC_RESET == RESET_REASON_SYS_RTC_WDT, "RTCWDT_RTC_RESET != RESET_REASON_SYS_RTC_WDT");
|
||||||
ESP_STATIC_ASSERT((soc_reset_reason_t)TG1WDT_CPU_RESET == RESET_REASON_CPU0_MWDT1, "TG1WDT_CPU_RESET != RESET_REASON_CPU0_MWDT1");
|
ESP_STATIC_ASSERT((soc_reset_reason_t)TG1WDT_CPU_RESET == RESET_REASON_CPU0_MWDT1, "TG1WDT_CPU_RESET != RESET_REASON_CPU0_MWDT1");
|
||||||
ESP_STATIC_ASSERT((soc_reset_reason_t)SUPER_WDT_RESET == RESET_REASON_SYS_SUPER_WDT, "SUPER_WDT_RESET != RESET_REASON_SYS_SUPER_WDT");
|
ESP_STATIC_ASSERT((soc_reset_reason_t)SUPER_WDT_RESET == RESET_REASON_SYS_SUPER_WDT, "SUPER_WDT_RESET != RESET_REASON_SYS_SUPER_WDT");
|
||||||
|
ESP_STATIC_ASSERT((soc_reset_reason_t)GLITCH_RTC_RESET == RESET_REASON_CORE_PWR_GLITCH, "GLITCH_RTC_RESET != RESET_REASON_CORE_PWR_GLITCH");
|
||||||
ESP_STATIC_ASSERT((soc_reset_reason_t)EFUSE_RESET == RESET_REASON_CORE_EFUSE_CRC, "EFUSE_RESET != RESET_REASON_CORE_EFUSE_CRC");
|
ESP_STATIC_ASSERT((soc_reset_reason_t)EFUSE_RESET == RESET_REASON_CORE_EFUSE_CRC, "EFUSE_RESET != RESET_REASON_CORE_EFUSE_CRC");
|
||||||
ESP_STATIC_ASSERT((soc_reset_reason_t)USB_UART_CHIP_RESET == RESET_REASON_CORE_USB_UART, "USB_UART_CHIP_RESET != RESET_REASON_CORE_USB_UART");
|
ESP_STATIC_ASSERT((soc_reset_reason_t)USB_UART_CHIP_RESET == RESET_REASON_CORE_USB_UART, "USB_UART_CHIP_RESET != RESET_REASON_CORE_USB_UART");
|
||||||
ESP_STATIC_ASSERT((soc_reset_reason_t)USB_JTAG_CHIP_RESET == RESET_REASON_CORE_USB_JTAG, "USB_JTAG_CHIP_RESET != RESET_REASON_CORE_USB_JTAG");
|
ESP_STATIC_ASSERT((soc_reset_reason_t)USB_JTAG_CHIP_RESET == RESET_REASON_CORE_USB_JTAG, "USB_JTAG_CHIP_RESET != RESET_REASON_CORE_USB_JTAG");
|
||||||
ESP_STATIC_ASSERT((soc_reset_reason_t)JTAG_RESET == RESET_REASON_CPU0_JTAG, "JTAG_RESET != RESET_REASON_CPU0_JTAG");
|
ESP_STATIC_ASSERT((soc_reset_reason_t)JTAG_RESET == RESET_REASON_CPU0_JTAG, "JTAG_RESET != RESET_REASON_CPU0_JTAG");
|
||||||
|
ESP_STATIC_ASSERT((soc_reset_reason_t)CPU_LOCKUP_RESET == RESET_REASON_CPU_LOCKUP, "CPU_LOCKUP_RESET != RESET_REASON_CPU_LOCKUP");
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NO_SLEEP = 0,
|
NO_SLEEP = 0,
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
#include "soc/rtc_periph.h"
|
#include "soc/rtc_periph.h"
|
||||||
#include "esp32h4/rom/rtc.h"
|
#include "esp32h4/rom/rtc.h"
|
||||||
|
|
||||||
// TODO: [ESP32H4] IDF-12307 inherited from verification branch, need check
|
|
||||||
// IDF-11910 need refactor
|
// IDF-11910 need refactor
|
||||||
|
|
||||||
static void esp_reset_reason_clear_hint(void);
|
static void esp_reset_reason_clear_hint(void);
|
||||||
@@ -53,10 +52,19 @@ static esp_reset_reason_t get_reset_reason(soc_reset_reason_t rtc_reset_reason,
|
|||||||
case RESET_REASON_SYS_BROWN_OUT:
|
case RESET_REASON_SYS_BROWN_OUT:
|
||||||
return ESP_RST_BROWNOUT;
|
return ESP_RST_BROWNOUT;
|
||||||
|
|
||||||
|
case RESET_REASON_CORE_PWR_GLITCH:
|
||||||
|
return ESP_RST_PWR_GLITCH;
|
||||||
|
|
||||||
|
case RESET_REASON_CORE_EFUSE_CRC:
|
||||||
|
return ESP_RST_EFUSE;
|
||||||
|
|
||||||
case RESET_REASON_CORE_USB_UART:
|
case RESET_REASON_CORE_USB_UART:
|
||||||
case RESET_REASON_CORE_USB_JTAG:
|
case RESET_REASON_CORE_USB_JTAG:
|
||||||
return ESP_RST_USB;
|
return ESP_RST_USB;
|
||||||
|
|
||||||
|
case RESET_REASON_CPU_LOCKUP:
|
||||||
|
return ESP_RST_CPU_LOCKUP;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return ESP_RST_UNKNOWN;
|
return ESP_RST_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
@@ -22,8 +22,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//TODO: [ESP32H4] IDF-12307 inherit from verify code, need check
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Naming conventions: RESET_REASON_{reset level}_{reset reason}
|
* @brief Naming conventions: RESET_REASON_{reset level}_{reset reason}
|
||||||
* @note refer to TRM: <Reset and Clock> chapter
|
* @note refer to TRM: <Reset and Clock> chapter
|
||||||
@@ -43,10 +41,12 @@ typedef enum {
|
|||||||
RESET_REASON_SYS_RTC_WDT = 0x10, // RTC watch dog resets digital core and rtc module
|
RESET_REASON_SYS_RTC_WDT = 0x10, // RTC watch dog resets digital core and rtc module
|
||||||
RESET_REASON_CPU0_MWDT1 = 0x11, // Main watch dog 1 resets CPU 0
|
RESET_REASON_CPU0_MWDT1 = 0x11, // Main watch dog 1 resets CPU 0
|
||||||
RESET_REASON_SYS_SUPER_WDT = 0x12, // Super watch dog resets the digital core and rtc module
|
RESET_REASON_SYS_SUPER_WDT = 0x12, // Super watch dog resets the digital core and rtc module
|
||||||
|
RESET_REASON_CORE_PWR_GLITCH = 0x13, // Glitch on power resets the digital core and rtc module
|
||||||
RESET_REASON_CORE_EFUSE_CRC = 0x14, // eFuse CRC error resets the digital core (hp system)
|
RESET_REASON_CORE_EFUSE_CRC = 0x14, // eFuse CRC error resets the digital core (hp system)
|
||||||
RESET_REASON_CORE_USB_UART = 0x15, // USB UART resets the digital core (hp system)
|
RESET_REASON_CORE_USB_UART = 0x15, // USB UART resets the digital core (hp system)
|
||||||
RESET_REASON_CORE_USB_JTAG = 0x16, // USB JTAG resets the digital core (hp system)
|
RESET_REASON_CORE_USB_JTAG = 0x16, // USB JTAG resets the digital core (hp system)
|
||||||
RESET_REASON_CPU0_JTAG = 0x18, // JTAG resets the CPU 0
|
RESET_REASON_CPU0_JTAG = 0x18, // JTAG resets the CPU 0
|
||||||
|
RESET_REASON_CPU_LOCKUP = 0x19, // Triggered when the CPU enters lockup (exception inside the exception handler would cause this)
|
||||||
} soc_reset_reason_t;
|
} soc_reset_reason_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
Reference in New Issue
Block a user