"Alberto Navatta" <[email protected]> writes: > We?re trying to use the Davinci (dm6446) hardware watchdog in a > custom board configured to boot from flash (u-boot 1.1.3 on an Intel > PC28F128P30). > > We have seen that during soft reboot (e.g. reboot ?f command issued > from the shell) the function ?cfi_intelext_reset? is called before > machine reboot is triggered by means of the davinci watchdog > (davinci_watchdog_reset function call), and this works fine. > > Instead, if we configure the watchdog to reboot the board on timer > expire (e.g. configuring and triggering watchdog timer with the > davinci_wdt device), the board seems to perform the maximum reset as > expected but it never restarts. > > My understanding of this behavior is that the cfi_intelext_reset > function performs a reset of the intel flash device so that the > flash is found in the right state (array mode, to be used during > boot), so, in the first case after the watchdog triggered reset the > flash is readable by the CPU and boot process is performed > successfully, while in the second one I suppose the flash chip is in > an undetermined state and, after the reset, the boot process fails. > > Does anyone know a reasonable way to override this problem and to > have a clean hardware watchdog triggered reset/reboot of the board? > > I mean we can have a timer based soft watchdog (e.g. softdog) that > calls the flash reset function (cfi?) before to trigger the machine > reset, but this requires some kind of software processing still > available on the board (interrupt handlers, etc.): our environment > is very critical and we cannot rely on any software portion to take > care of software/kernel error conditions, we need to do it in > hardware (possibly without adding an external hardware watchdog to > the board).
This sounds to me like a u-boot problem. The bootloader should make sure the flash is in a usable state before booting. The point of a watchdog is to be able to do a hard reset in case things go wrong. In these situations, you may not be able to do any additional function calls etc. and just need to hard reset. It's the job of the bootloader to be able to reboot in this situation. Kevin _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
