Ok, I see the problem here. For 8540/60 which has e500 v1 core, it doesn't use RSTCR to assert HRESET_REQ signal to reset the whole system. We probably need to add abort() in fsl_rstcr_restart() for those silicons:
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c index 2c5388c..c2d07cd 100644 --- a/arch/powerpc/sysdev/fsl_soc.c +++ b/arch/powerpc/sysdev/fsl_soc.c @@ -1434,7 +1434,8 @@ void fsl_rstcr_restart(char *cmd) if (rstcr) /* set reset control register */ out_be32(rstcr, 0x2); /* HRESET_REQ */ - + else + abort(); while (1) ; } #endif I don't have 8540 board to test. Haiying On Tue, 2008-03-25 at 21:20 +0100, Philippe De Muyter wrote: > Hi Haiying, > > On Tue, Mar 25, 2008 at 12:34:55PM -0400, Haiying Wang wrote: > > 8540 doesn't have RSTCR register. You should not use fsl_rstcr_restart > > for reboot your 8540 board. > > > That's what I was thinking also (see my Post-Scriptum below), but current > linux/powerpc sources use fsl_rstcr_restart for the mpc8540_ads board :( > > Philippe > > > On Tue, 2008-03-25 at 17:15 +0100, Philippe De Muyter wrote: > > > Hi all, > > > > > > I have a mpc8540 board that could reboot when driven by a ARCH=ppc linux, > > > but that hangs now in arch/powerpc/sysdev/fsl_soc.c:fsl_rstcr_restart when > > > asked to reboot with a ARCH=powerpc linux. > > > > > > I have found that if I call arch/powerpc/kernel/head_fsl_booke.S:abort > > > from > > > there, my board reboots correctly, but I feel that's not the right place > > > to put that call. Where/how should I do that ? > > > > > > Philippe > > > > > > PS : Does arch/powerpc/sysdev/fsl_soc.c:fsl_rstcr_restart actually work > > > for mpc8540_ads boards ? _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev