diff options
Diffstat (limited to 'cpu/mpc83xx/cpu.c')
-rw-r--r-- | cpu/mpc83xx/cpu.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c index 73d125a..c84aeb4 100644 --- a/cpu/mpc83xx/cpu.c +++ b/cpu/mpc83xx/cpu.c @@ -22,7 +22,7 @@ * Change log: * * 20050101: Eran Liberty (liberty@freescale.com) - * Initial file creating (porting from 85XX & 8260) + * Initial file creating (porting from 85XX & 8260) */ /* @@ -74,7 +74,10 @@ void upmconfig (uint upm, uint *table, uint size) int do_reset (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) { - ulong msr, addr; + ulong msr; +#ifndef MPC83xx_RESET + ulong addr; +#endif volatile immap_t *immap = (immap_t *) CFG_IMMRBAR; @@ -97,12 +100,14 @@ do_reset (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) udelay(200); /* perform reset, only one bit */ - immap->reset.rcr = RCR_SWHR; -#else - immap->reset.rmr = RMR_CSRE; /* Checkstop Reset enable */ + immap->reset.rcr = RCR_SWHR; + +#else /* ! MPC83xx_RESET */ - /* Interrupts and MMU off */ - __asm__ __volatile__ ("mfmsr %0":"=r" (msr):); + immap->reset.rmr = RMR_CSRE; /* Checkstop Reset enable */ + + /* Interrupts and MMU off */ + __asm__ __volatile__ ("mfmsr %0":"=r" (msr):); msr &= ~(MSR_ME | MSR_EE | MSR_IR | MSR_DR); __asm__ __volatile__ ("mtmsr %0"::"r" (msr)); @@ -116,7 +121,8 @@ do_reset (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) printf("resetting the board."); printf("\n"); ((void (*)(void)) addr) (); -#endif +#endif /* MPC83xx_RESET */ + return 1; } |