[U-Boot-Users] mpc83xx watchdog

David Updegraff dave at cray.com
Thu Nov 9 18:27:18 CET 2006


Timur

Good to hear you already have one; fine by me.

But.. I dont know how it can work w/o the tweek to start.S, since by my
reading of the PPC 603 asm.ref., the existing instruction there will not
accept full 16bit value.  Did you have another workaround for it?

> David Updegraff wrote:
>> Hi.
>>
>> Watchdog could work with this.
> 
> A patch that does something similar is already in Freescale's 83xx tree
> that is waiting for Wolfgang to pull.
> 
> Here's the relevant bit:
> 
> @@ -150,9 +213,21 @@ unsigned long get_tbclk(void)
>  #if defined(CONFIG_WATCHDOG)
>  void watchdog_reset (void)
>  {
> -    hang();        /* FIXME: implement watchdog_reset()? */
> +#ifdef CONFIG_MPC834X
> +    int re_enable = disable_interrupts();
> +
> +    /* Reset the 83xx watchdog */
> +    volatile immap_t *immr = (immap_t *) CFG_IMMRBAR;
> +    immr->wdt.swsrr = 0x556c;
> +    immr->wdt.swsrr = 0xaa39;
> +
> +    if (re_enable)
> +        enable_interrupts ();
> +#else
> +    hang();
> +#endif
>  }
> -#endif /* CONFIG_WATCHDOG */
> +#endif
> 
> 
> We don't have any changes for start.S, though.  Also, our tree renames
> CFG_IMMRBAR to CFG_IMMR.
> 
> I'm going to NACK your patch, simply because it's incompatible with
> ours.  I'm willing to work with you to fix that, though, if you like.
> 





More information about the U-Boot mailing list