TC Liew wrote: > Richard, > > Can you be more specific on how the MAX6369 WDO and WDI connects to > MCF5271's signal? Is it GPIO? ResetIn? Others? > > Regards, > TsiChung
Hi TC, Thanks for responding, WDI is connected to a CPU GPIO, PTIMER[3] on our board and WDO is connected to the active low RESETIn of the CPU. In case it matters, my hw_watchdog_reset function looks like this: /* * In <watchdog.h> this function is MACRO-ed to WATCHDOG_RESET * The watchdog control pins are as follows: * WDI = PTIMER[3] (DT1IN) * WD_SET[2:0] = PTIMER[2:0] (DT1OUT, DT1IN, DT0OUT) */ void hw_watchdog_reset(void) { /* Setup the value first, then make it a GPO to avoid glitches */ /* Any edge is ok to reset watchdog (Bit is XORed each time) */ mbar_writeByte(MCF_GPIO_PODR_TIMER, (mbar_readByte(MCF_GPIO_PODR_TIMER) ^ 0x08)); /* * While it is true that seting the WDI as a GPO is only needed once, * it is so critical for operation, hence it is enforced each time. */ /* Setup WDI direction as an output */ mbar_writeByte(MCF_GPIO_PDDR_TIMER, (mbar_readByte(MCF_GPIO_PDDR_TIMER) | 0x08)); /* Set the pins as GPIO */ mbar_writeShort(MCF_GPIO_PAR_TIMER, (mbar_readShort(MCF_GPIO_PAR_TIMER) & 0xF3FF)); } Thanks for your time. - Richard Retanubun > > On Mon, Mar 2, 2009 at 3:05 PM, Richard Retanubun > <richardretanu...@ruggedcom.com <mailto:richardretanu...@ruggedcom.com>> > wrote: > > Hi Guys, > > I am using u-boot 2009.03-rc1 and a board based on Coldfire > MC5271EVB eval platform. > Our external watchdog is a MAX6369. > > I have #define CONFIG_HW_WATCHDOG and #undef CONFIG_WATCHDOG in our > board's config file and > have created the hw_watchdog_reset function to toggle the WDI line > to pet the watchdog. > > However, my board keeps resetting at the watchdog timeout. Upon > probing, I found out that > the watchdog toggle line in not being toggled periodically by > u-boot. Which means a regular call > to WATCHDOG_RESET() is not happening. If I execute commands, the WDI > will get toggled and the watchdog > will not timeout, which means that the WATCHDOG_RESET() mapping to > hw_watchdog_reset function is working, it is > just not being called periodically. > > I am looking at the programmable interrupt timer that the > get_timer() function uses, and so far everything checks out. > > I'm also stuck at using u-boot's sleep command, e.g. "sleep 1" will > never return. Which I suspect may be the same root cause. > (this can also be observed on the M5271EVB board). > > What am I missing here? > > Thank you for all your time. > > Regards, > > - Richard Retanubun. > > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de <mailto:U-Boot@lists.denx.de> > http://lists.denx.de/mailman/listinfo/u-boot > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot