mpc8540 : Fix restart
PATCH 1/1 mpc8540 : Fix restart
Hi everybody,
Previously, with the arch/ppc tree, mpc8540 boards could reboot. Now with the arch/powerpc tree, they can not anymore. Fix that.
arch/powerpc/sysdev/fsl_soc.c +5 -1
@@ -1428,13 +1433,17 @@arch_initcall (setup_rstcr); +extern void abort (void ); +void fsl_rstcr_restart (char *cmd) {local_irq_disable ();if (rstcr)/* set reset control register */ out_be32 (rstcr,0x2 );/* HRESET_REQ */ - +else +abort ();while (1 ) ; + }#endif
Quoted 20 lines · Philippe De Muyter
Hi everybody,
Previously, with the
arch/ppctree, mpc8540 boards could reboot. Now with thearch/powerpctree, they can not anymore. Fix that.Signed-off-by Philippe De Muyter <[email protected]>---
a/arch/powerpc/sysdev/fsl_soc.c2008-03-21 14:53:41.000000000
+0000
+++b/arch/powerpc/sysdev/fsl_soc.c2008-03-26 12:08:25.000000000
+0000arch/powerpc/sysdev/fsl_soc.c +2
-0@@ -1428,13 +1433,17 @@arch_initcall (setup_rstcr); +extern void abort (void ); +void fsl_rstcr_restart (char *cmd) {
arch/powerpc/sysdev/fsl_soc.c line 1448
Quoted 10 lines
arch/powerpc/sysdev/fsl_soc.c +3
-1local_irq_disable ();if (rstcr)/* set reset control register */ out_be32 (rstcr,0x2 );/* HRESET_REQ */ - +else +abort ();while (1 ) ; + }
This was on purpose. abort() doesn't really do a restart and thus I didn't want it to be used that way.
- k
Quoted 25 lines · Kumar Gala
Quoted 23 lines · Philippe De Muyter
Hi everybody,
Previously, with the
arch/ppctree, mpc8540 boards could reboot. Now with thearch/powerpctree, they can not anymore. Fix that.Signed-off-by Philippe De Muyter <[email protected]>arch/powerpc/sysdev/fsl_soc.c +2
-1@@ -1428,13 +1433,17 @@arch_initcall (setup_rstcr); +extern void abort (void ); +void fsl_rstcr_restart (char *cmd) {local_irq_disable ();if (rstcr)/* set reset control register */ out_be32 (rstcr,0x2 );/* HRESET_REQ */ -
Quoted 9 lines
arch/powerpc/sysdev/fsl_soc.c line 1448
Quoted 5 lines
arch/powerpc/sysdev/fsl_soc.c +3
-0+else +abort ();while (1 ) ; + }This was on purpose.
abort()doesn't really do a restart and thus I didn't want it to be used that way.
What do you propose then ? The ability to reboot without power-off is really needed for embedded targets. And abort() from head_fsl.S seems really close to reboot.
Philippe
Quoted 4 lines
Quoted 1 line
What do you propose then ? The ability to reboot without power-off is really needed for embedded targets. And
abort()fromhead_fsl.Sseems really close to reboot.
Boards should provide system logic mechanism that should be used. The problem is abort() only resets the core. The rest of the SoC wlll not be properly reset.
- k