[U-Boot] Coldfire: MCF5271: Periodic HW watchdog petting and sleep function does not work.
Richard Retanubun
RichardRetanubun at RuggedCom.com
Wed Mar 4 14:14:00 CET 2009
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
> <RichardRetanubun at ruggedcom.com <mailto:RichardRetanubun at 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 at lists.denx.de <mailto:U-Boot at lists.denx.de>
> http://lists.denx.de/mailman/listinfo/u-boot
>
>
More information about the U-Boot
mailing list