This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF9160 types of reset

Hello,

The Zephyr OS provides a function to reboot the module, sys_reboot(type) where type is either a cold or a warm reboot.

However I cannot find anywhere the difference between the two. Also, it seems that this function ends up calling function

sys_arch_reboot(int type), which for the nRF9160 appears to ignore the argument.

So, what type of reset is done on the nRF9160 when calling sys_reboot() ?

The product sheet, on section "5.1.5.8 Reset behavior", is also not clear to me. The table 17 appears to state that parts

of RAM can retained after a power on or brownout reset, but not after a watchdog triggered reset. Is this correct ?

  • Hi,

    sys_reboot() will call sys_arch_reboot(), which has a different implementation depending on the system architecture. On the nRF9160, sys_arch_reboot() will ignore the type argument and result in a call to NVIC_SystemReset(), which performs a soft reset.

    In Table 17 in "5.1.5.8 Reset behavior" an 'x' denotes what will be reset when the different types of reset are performed. For example, a soft reset will only reset the CPU and modem. RAM may be configured to be retained during System OFF mode. RAM which has not been configured to be retained may be corrupted when performing a watchdog reset. When a power on or brownout reset is performed, all RAM may be corrupted, even RAM configured to be retained. 

    See section "4.3 VMC — Volatile memory controller" of the nRF9160 Product Specification for information on how to configure RAM blocks to be retained. Note that RAM is never reset, so an 'x' in the reset behavior table only denotes that the contents of the specified RAM type may be corrupted.

Related