|
@@ -127,16 +127,10 @@ int checkcpu(void)
|
|
|
int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|
|
{
|
|
|
ulong msr;
|
|
|
-#ifndef MPC83xx_RESET
|
|
|
- ulong addr;
|
|
|
-#endif
|
|
|
-
|
|
|
volatile immap_t *immap = (immap_t *) CONFIG_SYS_IMMR;
|
|
|
|
|
|
puts("Resetting the board.\n");
|
|
|
|
|
|
-#ifdef MPC83xx_RESET
|
|
|
-
|
|
|
/* Interrupts and MMU off */
|
|
|
msr = mfmsr();
|
|
|
msr &= ~(MSR_EE | MSR_IR | MSR_DR);
|
|
@@ -156,24 +150,6 @@ int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|
|
/* perform reset, only one bit */
|
|
|
immap->reset.rcr = RCR_SWHR;
|
|
|
|
|
|
-#else /* ! MPC83xx_RESET */
|
|
|
-
|
|
|
- immap->reset.rmr = RMR_CSRE; /* Checkstop Reset enable */
|
|
|
-
|
|
|
- /* Interrupts and MMU off */
|
|
|
- msr = mfmsr();
|
|
|
- msr &= ~(MSR_ME | MSR_EE | MSR_IR | MSR_DR);
|
|
|
- mtmsr(msr);
|
|
|
-
|
|
|
- /*
|
|
|
- * Trying to execute the next instruction at a non-existing address
|
|
|
- * should cause a machine check, resulting in reset
|
|
|
- */
|
|
|
- addr = CONFIG_SYS_RESET_ADDRESS;
|
|
|
-
|
|
|
- ((void (*)(void)) addr) ();
|
|
|
-#endif /* MPC83xx_RESET */
|
|
|
-
|
|
|
return 1;
|
|
|
}
|
|
|
#endif
|