Hello,

 

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).

 

Regards,

 

Alberto Navatta

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to