|
@@ -49,6 +49,7 @@
|
|
|
#include <osl.h>
|
|
#include <osl.h>
|
|
|
#include <sbutils.h>
|
|
#include <sbutils.h>
|
|
|
#include <bcmnvram.h>
|
|
#include <bcmnvram.h>
|
|
|
|
|
+#include <bcmdevs.h>
|
|
|
#include <sbhndmips.h>
|
|
#include <sbhndmips.h>
|
|
|
#include <hndmips.h>
|
|
#include <hndmips.h>
|
|
|
#include <trxhdr.h>
|
|
#include <trxhdr.h>
|
|
@@ -89,9 +90,21 @@ bcm947xx_machine_restart(char *command)
|
|
|
{
|
|
{
|
|
|
printk("Please stand by while rebooting the system...\n");
|
|
printk("Please stand by while rebooting the system...\n");
|
|
|
|
|
|
|
|
|
|
+ if (sb_chip(sbh) == BCM4785_CHIP_ID)
|
|
|
|
|
+ MTC0(C0_BROADCOM, 4, (1 << 22));
|
|
|
|
|
+
|
|
|
/* Set the watchdog timer to reset immediately */
|
|
/* Set the watchdog timer to reset immediately */
|
|
|
__cli();
|
|
__cli();
|
|
|
sb_watchdog(sbh, 1);
|
|
sb_watchdog(sbh, 1);
|
|
|
|
|
+
|
|
|
|
|
+ if (sb_chip(sbh) == BCM4785_CHIP_ID) {
|
|
|
|
|
+ __asm__ __volatile__(
|
|
|
|
|
+ ".set\tmips3\n\t"
|
|
|
|
|
+ "sync\n\t"
|
|
|
|
|
+ "wait\n\t"
|
|
|
|
|
+ ".set\tmips0");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
while (1);
|
|
while (1);
|
|
|
}
|
|
}
|
|
|
|
|
|