Skip to content

Random boot time hard freeze #908

@gmarull

Description

@gmarull

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Under some unknown circumstances, we observe a boot time hard freeze on Sifli-based boards. The system seems to be halted, and requires a "hard reset" (aka back button press for 10s). Example:

Image

When trying to attach a debugger (probe-rs), we just see:

Image

Not being able to inspect anything. The WDT is left enabled by the bootloader, but it does not seem to force any reboot (why?).

Expected Behavior

System does not freeze

Steps To Reproduce

The steps to reproduce are not deterministic, however, with this patch it can be reproduced relatively quick (a few minutes at most)

diff --git a/src/fw/main.c b/src/fw/main.c
index ac9f128f7..33d045ee1 100644
--- a/src/fw/main.c
+++ b/src/fw/main.c
@@ -517,6 +517,8 @@ static NOINLINE void prv_main_task_init(void) {
 #endif
 
   task_watchdog_resume();
+
+  system_hard_reset();
 }
 
 static void main_task(void *parameter) {

Version

v4.9.130

Host OS

N/A

Watch

Pebble Time 2 (Obelix)

Anything else?

I also tried adding this:

diff --git a/src/fw/startup/startup_sf32lb52.c b/src/fw/startup/startup_sf32lb52.c
index 5b4255f7e..c9a59196f 100644
--- a/src/fw/startup/startup_sf32lb52.c
+++ b/src/fw/startup/startup_sf32lb52.c
@@ -49,6 +49,8 @@ NAKED_FUNC NORETURN Reset_Handler(void) {
 
   SystemInit();
 
+  HAL_QSPI_ENABLE_WDT();
+
   main();
 
   PBL_CROAK("main returned, this should never happen");

But the issue persists...

Metadata

Metadata

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions