Hi experts,
I'm trying to reset my custom iMX6DL board running Linux 3.10.53.
Performing a 'reboot -f' fails.
Looking at the code, I think the value written to WDOG Control Register is incorrect.
The value written is 0x14, but it should be 0x04 --- shouldn't it?
(arch/arm/mach-imx/system.c function mxc_restart)
In any case-- performing a simple "devmem2 0x20bc000 h 0x0004" resets the device successfully.
Sincerely,
Erez
Different WDOG settings relate to (board) schematic specifics, where WDOG1_B
signal may be used to power down the chip, and WDOG1_RESET_B_DEB may be
used as reset source for the chip. Please look at Table 70-1 (WDOG External Signals)
of the i.MX6 DQ Reference Manual.
So, it is possible to apply Watchdog Control Register(WDOGx_WCR) with 0x14.
I expect in Your case some side effect takes place. In any case, clearing WDOGx_WCR[SRS]
provides immediate (software) reset.
Also, the erratum ERR004346 (WDOG SRS bit requires to be written twice) may occur,
but it should be already fixed in Linux BSP.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------