Javelin Posted February 28, 2023 Posted February 28, 2023 The proposed solution here (https://github.com/armbian/build/pull/4824) basically performs a power-reset of the SDCARD in the final moments in order to prepare for the bootloader's (Uboot) restart. What puzzles me is that the kernel has a Watchdog feature which seems to operating fine as witnessed by the console log "watchdog: watchdog0: watchdog did not stop!" meaning that the watchdog driver has been told to disregard attempts to disable it (which is fine in the context that the watchdog is being used to reset the cpu). The problem is, the watchdog never times-out because, i presume, something is still "kicking the dog" (there seems to be a worker thread tasked for this purpose). As a test I "brutally" caused a watchdog timeout (watchdog_dev.c: watchdog_release()) by: 1) disabling interrupts 2) setting watchdog timeout to 2 secs 3) going into infinite loop The board now reboots fine and reliably but clearly i've skipped the notification handler mechanism that is meant to be used in the "odroid-reboot.c" solution. So I guess my question is, are reboots meant to be an elegant hand-off from kernel to uboot, or is the watchdog supposed to be the means to get all registers/pin to their POR state ready for a cold boot? I'm new here so didn't know where to post, let me know the preferred place or whether it's not appropriate. 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.