reset mpc83xx plaform.

Kumar Gala galak at kernel.crashing.org
Thu Mar 23 05:15:19 EST 2006


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




More information about the Linuxppc-embedded mailing list