WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
REBOOT

宏定义

#define REBOOT_POWER_ON_TRIGGER_STATUS   0xdead0001UL
 
#define REBOOT_SOFT_RESET_TRIGER_STATUS   0xdead0002UL
 
#define REBOOT_NMI_WDGTIMEOUT_TRIGGER_STATUS   0xdead0003UL
 
#define REBOOT_NMI_XIP_CTRL_TRIGER_STATUS   0xdead0004UL
 
#define REBOOT_NMI_XIP_CACHE_TRIGGER_STATUS   0xdead0005UL
 
#define REBOOT_HARD_FAULT_TRIGER_STATUS   0xdead0006UL
 
#define REBOOT_SOFT_PANIC_TRIGGER_STATUS   0xdead0007UL
 
#define REBOOT_OTHER_CORE_ABNORMAL_TRIGER_STATUS   0xdead0008UL
 
#define REBOOT_HARD_WDGTIMEOUT_TRIGER_STATUS   0xdead0009UL
 
#define REBOOT_BT_WDGTIMEOUT_TRIGER_STATUS   0xdead000aUL
 
#define REBOOT_ULP_WDGTIMEOUT_TRIGER_STATUS   0xdead000bUL
 
#define REBOOT_UPG_COMPLETION_TRIGER_STATUS   0xdead000cUL
 
#define REBOOT_ULP_PIN_RST_TRIGER_STATUS   0xdead000dUL
 
#define REBOOT_UNDEFINED_TRIGER_STATUS   0xdeadaaaaUL
 
#define STANDARD_REBOOT_MAGIC   0xdeaddeadUL
 
#define ABNORMAL_REBOOT_MAGIC   0xdeadbeafUL
 

枚举

enum  reboot_cause_t {
  REBOOT_CAUSE_UNKNOWN = 0x0000 , REBOOT_CAUSE_BT_RESET_UNKNOWN = 0x8000 , REBOOT_CAUSE_BT_SYSRESETREQ = 0x8001 , REBOOT_CAUSE_BT_WATCHDOG = 0x8002 ,
  REBOOT_CAUSE_BT_STANDARD_CHIP_WATCHDOG = 0x8004 , REBOOT_CAUSE_BT_UPDATER_CHIP_WATCHDOG = 0x8005 , REBOOT_CAUSE_BT_RPC_TIMEOUT = 0x8006 , REBOOT_CAUSE_BT_HARDFAULT = 0x8007 ,
  REBOOT_CAUSE_BT_NNMIFAULT = 0x8008 , REBOOT_CAUSE_BT_UNKNOWN_ISR = 0x8009 , REBOOT_CAUSE_BT_PANIC = 0x800a , REBOOT_CAUSE_BT_STD_WDT_FRST = 0x800b ,
  REBOOT_CAUSE_BT_STD_CHIP_WDT_FRST = 0x800c , REBOOT_CAUSE_BT_XIP_HARDFAULT = 0x800d , REBOOT_CAUSE_BT_SSB_EXCEPTION_REBOOT = 0x800e , REBOOT_CAUSE_BT_BUCK1_PROTECT_FRST = 0x8010 ,
  REBOOT_CAUSE_BT_BUCK2_PROTECT_FRST = 0x8020 , REBOOT_CAUSE_BT_MONITOR_REBOOT_REQ = 0x8100 , REBOOT_CAUSE_BT_REGIONS_UPDATED = 0x8101 , REBOOT_CAUSE_BT_FOTA_UPGRADE = 0x8102 ,
  REBOOT_CAUSE_BT_END = REBOOT_CAUSE_BT_FOTA_UPGRADE + 1 , REBOOT_CAUSE_GNSS_GLOBAL = 0x7000 , REBOOT_CAUSE_GNSS_NMI = 0x7001 , REBOOT_CAUSE_GNSS_HARDFAULT = 0x7002 ,
  REBOOT_CAUSE_GNSS_PANIC = 0x7003 , REBOOT_CAUSE_GNSS_END = REBOOT_CAUSE_GNSS_PANIC + 1 , REBOOT_CAUSE_PROTOCOL_GLOBAL = 0x4000 , REBOOT_CAUSE_PROTOCOL_SYSRESETREQ = 0x4001 ,
  REBOOT_CAUSE_PROTOCOL_WATCHDOG = 0x4002 , REBOOT_CAUSE_PROTOCOL_AXI_LOCK = 0x4003 , REBOOT_CAUSE_PROTOCOL_AXI_LOCK_TO_BT = 0x4004 , REBOOT_CAUSE_PROTOCOL_WDT_FRST = 0x4005 ,
  REBOOT_CAUSE_PROTOCOL1_WATCHDOG = 0x4006 , REBOOT_CAUSE_PROTOCOL_ADDR_MON = 0x4007 , REBOOT_CAUSE_PROTOCOL1_ADDR_MON = 0x4008 , REBOOT_CAUSE_PROTOCOL_RPC_TIMEOUT = 0x4100 ,
  REBOOT_CAUSE_PROTOCOL_END = REBOOT_CAUSE_PROTOCOL_RPC_TIMEOUT + 1 , REBOOT_CAUSE_APPLICATION_GLOBAL = 0x2000 , REBOOT_CAUSE_APPLICATION_SYSRESETREQ = 0x2001 , REBOOT_CAUSE_APPLICATION_WATCHDOG = 0x2002 ,
  REBOOT_CAUSE_APPLICATION_PANIC = 0x2003 , REBOOT_CAUSE_APPLICATION_HARDFAULT = 0x2004 , REBOOT_CAUSE_APPLICATION_NNMIFAULT = 0x2005 , REBOOT_CAUSE_APPLICATION_UNKNOWN_ISR = 0x2006 ,
  REBOOT_CAUSE_APPLICATION_WDT_FRST = 0x2007 , REBOOT_CAUSE_APPLICATION_CHIP_WDT = 0x2008 , REBOOT_CAUSE_APPLICATION_XIP_CTRL = 0x2009 , REBOOT_CAUSE_APPLICATION_XIP_CACHE = 0x200a ,
  REBOOT_CAUSE_APPLICATION_MDMA = 0x200b , REBOOT_CAUSE_APPLICATION_SMDMA = 0x200c , REBOOT_CAUSE_APPLICATION_STD_CHIP_WDT_FRST = 0x200d , REBOOT_CAUSE_APPLICATION_STD_BT_WDT_FRST = 0x200e ,
  REBOOT_CAUSE_APPLICATION_STD_ULP_WDT_FRST = 0x200f , REBOOT_CAUSE_APPLICATION_STD_ULP_PIN_FRST = 0x2010 , REBOOT_CAUSE_UPG_COMPLETION = 0x2040 , REBOOT_CAUSE_MON_MEM_ALMOST_EMPTY = 0x2041 ,
  REBOOT_CAUSE_DFU_UPG_FAIL = 0x2042 , REBOOT_CAUSE_APPLICATION_SLDM = 0x2080 , REBOOT_CAUSE_APPLICATION_RPC_TIMEOUT = 0x2100 , REBOOT_CAUSE_POWER_ON = 0xF0F0
}
 This is a special enum, it is split into three sections Only 16 bits are used. Bits 13 to 15 are flags setting which core caused the reboot Bit 8 sets if the reset reason is custom or fixed Bits 0 to 7 contain the reason 更多...
 
enum  veto_reboot_reason_t {
  VETO_REBOOT_REASON_RESERVE , VETO_REBOOT_REASON_WR_NV , VETO_REBOOT_REASON_WR_MR_DOC , VETO_REBOOT_REASON_USR_RESERVED_2 ,
  VETO_REBOOT_REASON_USR_RESERVED_3 , VETO_REBOOT_REASON_USR_RESERVED_4 , VETO_REBOOT_REASON_USR_RESERVED_5 , VETO_REBOOT_REASON_USR_RESERVED_6 ,
  VETO_REBOOT_REASON_USR_RESERVED_7 , VETO_REBOOT_REASON_NDM_METER_CHECK , VETO_REBOOT_REASON_TF_IDENTIFY , VETO_REBOOT_REASON_LOCK_NETWORK ,
  VETO_REBOOT_REASON_SYS_RST_DELAY_ENTER_PHY_TEST_MODE , VETO_REBOOT_REASON_UPG , VETO_REBOOT_REASON_BOOT_UPG , VETO_REBOOT_REASON_NO_PB ,
  VETO_REBOOT_REASON_SUIT_NET , VETO_REBOOT_REASON_WRT_SNID , VETO_REBOOT_REASON_RELATING_RANDOM_NUM , VETO_REBOOT_REASON_MAX
}
 

函数

void reboot_init (void)
 Initialise the reboot subsystem
 
void reboot_deinit (void)
 De-initialise the reboot subsystem
 
void reboot_chip (void)
 Perform a chip reboot.
 
reboot_cause_t reboot_get_security_reboot_reason (void)
 Gets the last reason that the security core rebooted
 
void reboot_system (reboot_cause_t cause)
 Perform a software reboot of the entire system.
 
reboot_cause_t reboot_get_reset_reason (void)
 Gets the reason of the last reset
 
uint32_t uapi_reboot_vote_against (veto_reboot_reason_t reason, uint32_t sec)
 
void uapi_reboot_unvote_against (veto_reboot_reason_t reason)
 
void uapi_reboot_system_check_veto (reboot_cause_t reason)
 

详细描述

宏定义说明

◆ ABNORMAL_REBOOT_MAGIC

#define ABNORMAL_REBOOT_MAGIC   0xdeadbeafUL

◆ REBOOT_BT_WDGTIMEOUT_TRIGER_STATUS

#define REBOOT_BT_WDGTIMEOUT_TRIGER_STATUS   0xdead000aUL

◆ REBOOT_HARD_FAULT_TRIGER_STATUS

#define REBOOT_HARD_FAULT_TRIGER_STATUS   0xdead0006UL

◆ REBOOT_HARD_WDGTIMEOUT_TRIGER_STATUS

#define REBOOT_HARD_WDGTIMEOUT_TRIGER_STATUS   0xdead0009UL

◆ REBOOT_NMI_WDGTIMEOUT_TRIGGER_STATUS

#define REBOOT_NMI_WDGTIMEOUT_TRIGGER_STATUS   0xdead0003UL

◆ REBOOT_NMI_XIP_CACHE_TRIGGER_STATUS

#define REBOOT_NMI_XIP_CACHE_TRIGGER_STATUS   0xdead0005UL

◆ REBOOT_NMI_XIP_CTRL_TRIGER_STATUS

#define REBOOT_NMI_XIP_CTRL_TRIGER_STATUS   0xdead0004UL

◆ REBOOT_OTHER_CORE_ABNORMAL_TRIGER_STATUS

#define REBOOT_OTHER_CORE_ABNORMAL_TRIGER_STATUS   0xdead0008UL

◆ REBOOT_POWER_ON_TRIGGER_STATUS

#define REBOOT_POWER_ON_TRIGGER_STATUS   0xdead0001UL

◆ REBOOT_SOFT_PANIC_TRIGGER_STATUS

#define REBOOT_SOFT_PANIC_TRIGGER_STATUS   0xdead0007UL

◆ REBOOT_SOFT_RESET_TRIGER_STATUS

#define REBOOT_SOFT_RESET_TRIGER_STATUS   0xdead0002UL

◆ REBOOT_ULP_PIN_RST_TRIGER_STATUS

#define REBOOT_ULP_PIN_RST_TRIGER_STATUS   0xdead000dUL

◆ REBOOT_ULP_WDGTIMEOUT_TRIGER_STATUS

#define REBOOT_ULP_WDGTIMEOUT_TRIGER_STATUS   0xdead000bUL

◆ REBOOT_UNDEFINED_TRIGER_STATUS

#define REBOOT_UNDEFINED_TRIGER_STATUS   0xdeadaaaaUL

◆ REBOOT_UPG_COMPLETION_TRIGER_STATUS

#define REBOOT_UPG_COMPLETION_TRIGER_STATUS   0xdead000cUL

◆ STANDARD_REBOOT_MAGIC

#define STANDARD_REBOOT_MAGIC   0xdeaddeadUL

枚举类型说明

◆ reboot_cause_t

This is a special enum, it is split into three sections Only 16 bits are used. Bits 13 to 15 are flags setting which core caused the reboot Bit 8 sets if the reset reason is custom or fixed Bits 0 to 7 contain the reason

枚举值
REBOOT_CAUSE_UNKNOWN 
REBOOT_CAUSE_BT_RESET_UNKNOWN 
REBOOT_CAUSE_BT_SYSRESETREQ 
REBOOT_CAUSE_BT_WATCHDOG 
REBOOT_CAUSE_BT_STANDARD_CHIP_WATCHDOG 
REBOOT_CAUSE_BT_UPDATER_CHIP_WATCHDOG 
REBOOT_CAUSE_BT_RPC_TIMEOUT 
REBOOT_CAUSE_BT_HARDFAULT 
REBOOT_CAUSE_BT_NNMIFAULT 
REBOOT_CAUSE_BT_UNKNOWN_ISR 
REBOOT_CAUSE_BT_PANIC 
REBOOT_CAUSE_BT_STD_WDT_FRST 
REBOOT_CAUSE_BT_STD_CHIP_WDT_FRST 
REBOOT_CAUSE_BT_XIP_HARDFAULT 
REBOOT_CAUSE_BT_SSB_EXCEPTION_REBOOT 
REBOOT_CAUSE_BT_BUCK1_PROTECT_FRST 
REBOOT_CAUSE_BT_BUCK2_PROTECT_FRST 
REBOOT_CAUSE_BT_MONITOR_REBOOT_REQ 
REBOOT_CAUSE_BT_REGIONS_UPDATED 
REBOOT_CAUSE_BT_FOTA_UPGRADE 
REBOOT_CAUSE_BT_END 
REBOOT_CAUSE_GNSS_GLOBAL 
REBOOT_CAUSE_GNSS_NMI 
REBOOT_CAUSE_GNSS_HARDFAULT 
REBOOT_CAUSE_GNSS_PANIC 
REBOOT_CAUSE_GNSS_END 
REBOOT_CAUSE_PROTOCOL_GLOBAL 
REBOOT_CAUSE_PROTOCOL_SYSRESETREQ 
REBOOT_CAUSE_PROTOCOL_WATCHDOG 
REBOOT_CAUSE_PROTOCOL_AXI_LOCK 
REBOOT_CAUSE_PROTOCOL_AXI_LOCK_TO_BT 
REBOOT_CAUSE_PROTOCOL_WDT_FRST 
REBOOT_CAUSE_PROTOCOL1_WATCHDOG 
REBOOT_CAUSE_PROTOCOL_ADDR_MON 
REBOOT_CAUSE_PROTOCOL1_ADDR_MON 
REBOOT_CAUSE_PROTOCOL_RPC_TIMEOUT 
REBOOT_CAUSE_PROTOCOL_END 
REBOOT_CAUSE_APPLICATION_GLOBAL 
REBOOT_CAUSE_APPLICATION_SYSRESETREQ 
REBOOT_CAUSE_APPLICATION_WATCHDOG 
REBOOT_CAUSE_APPLICATION_PANIC 
REBOOT_CAUSE_APPLICATION_HARDFAULT 
REBOOT_CAUSE_APPLICATION_NNMIFAULT 
REBOOT_CAUSE_APPLICATION_UNKNOWN_ISR 
REBOOT_CAUSE_APPLICATION_WDT_FRST 
REBOOT_CAUSE_APPLICATION_CHIP_WDT 
REBOOT_CAUSE_APPLICATION_XIP_CTRL 
REBOOT_CAUSE_APPLICATION_XIP_CACHE 
REBOOT_CAUSE_APPLICATION_MDMA 
REBOOT_CAUSE_APPLICATION_SMDMA 
REBOOT_CAUSE_APPLICATION_STD_CHIP_WDT_FRST 
REBOOT_CAUSE_APPLICATION_STD_BT_WDT_FRST 
REBOOT_CAUSE_APPLICATION_STD_ULP_WDT_FRST 
REBOOT_CAUSE_APPLICATION_STD_ULP_PIN_FRST 
REBOOT_CAUSE_UPG_COMPLETION 
REBOOT_CAUSE_MON_MEM_ALMOST_EMPTY 
REBOOT_CAUSE_DFU_UPG_FAIL 
REBOOT_CAUSE_APPLICATION_SLDM 
REBOOT_CAUSE_APPLICATION_RPC_TIMEOUT 
REBOOT_CAUSE_POWER_ON 

◆ veto_reboot_reason_t

枚举值
VETO_REBOOT_REASON_RESERVE 
VETO_REBOOT_REASON_WR_NV 
VETO_REBOOT_REASON_WR_MR_DOC 
VETO_REBOOT_REASON_USR_RESERVED_2 
VETO_REBOOT_REASON_USR_RESERVED_3 
VETO_REBOOT_REASON_USR_RESERVED_4 
VETO_REBOOT_REASON_USR_RESERVED_5 
VETO_REBOOT_REASON_USR_RESERVED_6 
VETO_REBOOT_REASON_USR_RESERVED_7 
VETO_REBOOT_REASON_NDM_METER_CHECK 
VETO_REBOOT_REASON_TF_IDENTIFY 
VETO_REBOOT_REASON_LOCK_NETWORK 
VETO_REBOOT_REASON_SYS_RST_DELAY_ENTER_PHY_TEST_MODE 
VETO_REBOOT_REASON_UPG 
VETO_REBOOT_REASON_BOOT_UPG 
VETO_REBOOT_REASON_NO_PB 
VETO_REBOOT_REASON_SUIT_NET 
VETO_REBOOT_REASON_WRT_SNID 
VETO_REBOOT_REASON_RELATING_RANDOM_NUM 
VETO_REBOOT_REASON_MAX 

函数说明

◆ reboot_chip()

void reboot_chip ( void  )

Perform a chip reboot.

返回
None

◆ reboot_deinit()

void reboot_deinit ( void  )

De-initialise the reboot subsystem

返回
None

◆ reboot_get_reset_reason()

reboot_cause_t reboot_get_reset_reason ( void  )

Gets the reason of the last reset

返回
The reason we last reset

◆ reboot_get_security_reboot_reason()

reboot_cause_t reboot_get_security_reboot_reason ( void  )

Gets the last reason that the security core rebooted

返回
The reason, or REBOOT_CAUSE_UNKNOWN if there is more than 1 reason

◆ reboot_init()

void reboot_init ( void  )

Initialise the reboot subsystem

返回
None

◆ reboot_system()

void reboot_system ( reboot_cause_t  cause)

Perform a software reboot of the entire system.

参数
causeThe reason we are asking for a chip reset, bits 8 to 15 are ignored as this command can only set a custom reboot for this core
返回
None

◆ uapi_reboot_system_check_veto()

void uapi_reboot_system_check_veto ( reboot_cause_t  reason)

◆ uapi_reboot_unvote_against()

void uapi_reboot_unvote_against ( veto_reboot_reason_t  reason)

◆ uapi_reboot_vote_against()

uint32_t uapi_reboot_vote_against ( veto_reboot_reason_t  reason,
uint32_t  sec 
)