--- busybox-1.1.0-pre1.orig/init/init.c	2005-11-01 01:55:36 +0200
+++ busybox-1.1.0-pre1/init/init.c	2006-08-07 17:20:21 +0300
@@ -42,6 +42,7 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <sys/reboot.h>
+#include <sys/io.h>
 #include "busybox.h"
 
 #include "init_shared.h"
@@ -660,6 +661,18 @@
 	waitpid (pid, NULL, 0);
 }
 
+static void r8610_reset(void)
+{
+	int i;
+	
+	iopl(3);
+	outl(0x80003840,0xCF8);
+	i=inl(0xCFC);
+	i |= 0x1600;
+	outl(i,0xCFC);
+	outb(1,0x92);
+}
+
 static void shutdown_system(void)
 {
 	sigset_t block_signals;
@@ -700,6 +713,7 @@
 	sleep(1);
 
 	sync();
+	r8610_reset();
 }
 
 static void exec_signal(int sig)
