I have a Linux-based SOM that intregrates complexity (CPU, memories, Ethernet PHY and so on) and I'm going to design a carrier board for it.
I'd like to add an external watchdog on the carrier board for two purposes:
- automatically rerun the system when the applications running on Linux crash for some reasons (mainly bugs)
- automatically rerun the system when the system is not able to start-up
For the big issue is the second point. I sometime have seen the system hangs during startup (during bootloader, during kernel initialization and so on). I don't know the causes of these and the SOM manufacturer doesn't help too much. It says... it could happen on those complex systems based on a desktop OS as Linux. It says giving a pulse on main CPU RESET linux could be not sufficient in certain odd situations.
So I'm thinking to add an external watchdog that:
- monitors the Linux system activity (maybe a pin that goes high and low at a certain frequency by an application);
- open and close again a small relay that brings the main power supply voltage rail to the Linux system
Do you have better suggestions?