.map_io         = autcpu12_map_io,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
+       .restart        = clps711x_restart,
 MACHINE_END
 
 
        .map_io         = cdb89712_map_io,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
+       .restart        = clps711x_restart,
 MACHINE_END
 
        .map_io         = ceiva_map_io,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
+       .restart        = clps711x_restart,
 MACHINE_END
 
        .map_io         = clps711x_map_io,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
+       .restart        = clps711x_restart,
 MACHINE_END
 
 
        .init           = clps711x_timer_init,
        .offset         = clps711x_gettimeoffset,
 };
+
+void clps711x_restart(char mode, const char *cmd)
+{
+       soft_restart(0);
+}
 
 extern void clps711x_map_io(void);
 extern void clps711x_init_irq(void);
 extern struct sys_timer clps711x_timer;
+extern void clps711x_restart(char mode, const char *cmd);
 
        .reserve        = edb7211_reserve,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
+       .restart        = clps711x_restart,
 MACHINE_END
 
        .map_io         = clps711x_map_io,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
+       .restart        = clps711x_restart,
 MACHINE_END
 
 
 static inline void arch_reset(char mode, const char *cmd)
 {
-       soft_restart(0);
 }
 
 #endif
 
        .map_io         = p720t_map_io,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
+       .restart        = clps711x_restart,
 MACHINE_END
 
 static int p720t_hw_init(void)