On Mar 22, 2006, at 11:20 AM, David Updegraff wrote:

> Hi.
>
> I think there's some typo-errs. in arch/powerpc/platforms/83xx/misc.c.
> In my case, these result in board lockup at 'reboot' instead of reset.
>
> By my reading of the PDF, it needs to be patched thusly.

Yeah, this fix should be in what Paul just sent to linus for 2.6.17.   
I guess I could push to get it into 2.6.16.x if desired.

- kumar

> diff --git a/arch/powerpc/platforms/83xx/misc.c b/arch/powerpc/ 
> platforms/83xx/misc.c
> index 0eb3d99..d918d45 100644
> --- a/arch/powerpc/platforms/83xx/misc.c
> +++ b/arch/powerpc/platforms/83xx/misc.c
> @@ -24,6 +24,7 @@ void mpc83xx_restart(char *cmd)
>  #define RST_OFFSET   0x00000900
>  #define RST_PROT_REG 0x00000018
>  #define RST_CTRL_REG 0x0000001c
> +#define RST_ENBL_REG 0x00000020
>       __be32 __iomem *reg;
>
>       /* map reset register space */
> @@ -34,8 +35,12 @@ void mpc83xx_restart(char *cmd)
>       /* enable software reset "RSTE" */
>       out_be32(reg + (RST_PROT_REG >> 2), 0x52535445);
>
> +     /* wait for reset to get enabled */
> +     while ((in_be32 (reg + (RST_ENBL_REG >> 2)) & 1) == 0 )
> +             ;
> +
>       /* set software hard reset */
> -     out_be32(reg + (RST_CTRL_REG >> 2), 0x52535445);
> +     out_be32(reg + (RST_CTRL_REG >> 2), 3);
>       for (;;) ;
>  }
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded


Reply via email to