Exemplo n.º 1
0
static void nino_machine_restart(char *command)
{
	unsigned long flags;
	static void (*back_to_prom)(void) = (void (*)(void)) 0xbfc00000;
#ifdef CONFIG_RTL_EB8186	
	outl(0,GIMR0);  
#endif

#if defined(CONFIG_RTL865X) || defined(CONFIG_RTL8196B)
	REG32(GIMR)=0;	
#endif

	save_flags(flags); cli();
	shutdown_netdev();
	printk("Enable Watch Dog to Reset whole system\n");

#ifdef CONFIG_RTL_EB8186
	*(volatile unsigned long *)(0xBD010058)=0x10; // this is to enable watch dog reset
	*(volatile unsigned long *)(0xBD01005c)=0x00; // this is to enable watch dog reset
#endif

#if defined(CONFIG_RTL865X) || defined(CONFIG_RTL8196B)
	*(volatile unsigned long *)(0xB800311c)=0; /*this is to enable 865xc watch dog reset*/
#endif
	
	for(;;);
	/* Reboot */
	back_to_prom();
}
Exemplo n.º 2
0
static void brcm_machine_restart(char *command)
{
	static void (*back_to_prom)(void) = (void (*)(void)) 0xbfc00000;

/* PR21527 - Fix SMP reboot problem */
#ifdef CONFIG_SMP
	smp_send_stop();
	udelay(10);
#endif

	/*
	 * If NAND is on CS0, we need to revert to direct access in order to
	 * re-enable XIP so CFE can boot.  This was once done through a
	 * call to brcmnand_prepare_reboot() from this function, but is
	 * now handled through the FS/MTD notifier.
	 */

	/* enable chip reset, then do it */
	BDEV_WR_F(SUN_TOP_CTRL_RESET_CTRL, master_reset_en, 1);
	BDEV_RD(BCHP_SUN_TOP_CTRL_RESET_CTRL);

	BDEV_WR_F(SUN_TOP_CTRL_SW_RESET, chip_master_reset, 1);
	BDEV_RD(BCHP_SUN_TOP_CTRL_SW_RESET);

	udelay(10);

	/* NOTREACHED */

	/* Reboot */
	back_to_prom();
}
Exemplo n.º 3
0
static void brcm_machine_restart(char *command)
{
	static void (*back_to_prom)(void) = (void (*)(void)) 0xbfc00000;

#if defined( CONFIG_MIPS_BCM7401 ) || defined( CONFIG_MIPS_BCM7400 ) \
	|| defined( CONFIG_MIPS_BCM3560 ) || defined( CONFIG_MIPS_BCM7038C0 )
#define SUN_TOP_CTRL_RESET_CTRL		0xb0404008
#define MASTER_RESET_ENABLE 		(1<<3)
  #if defined( CONFIG_MIPS_BCM7401 ) || defined( CONFIG_MIPS_BCM3560 ) || defined( CONFIG_MIPS_BCM7038C0 )
#define SUN_TOP_CTRL_SW_RESET		0xb0404010
  #elif defined( CONFIG_MIPS_BCM7400 )
  #define SUN_TOP_CTRL_SW_RESET		0xb0404014
  #endif
#define CHIP_MASTER_RESET 			(1<<31)

	volatile unsigned long* ulp;

	ulp = (volatile unsigned long*) SUN_TOP_CTRL_RESET_CTRL;
	*ulp |= MASTER_RESET_ENABLE;
	ulp = (volatile unsigned long*) SUN_TOP_CTRL_SW_RESET;
	*ulp |= CHIP_MASTER_RESET;
	udelay(10);

	/* NOTREACHED */
#endif

	/* Reboot */
	back_to_prom();
}
Exemplo n.º 4
0
static void markeins_machine_restart(char *command)
{
    static void (*back_to_prom) (void) = (void (*)(void))0xbfc00000;

    printk("cannot EMMA2RH Mark-eins restart.\n");
    markeins_led("restart.");
    back_to_prom();
}
Exemplo n.º 5
0
static void nino_machine_restart(char *command)
{
	unsigned long flags;
	static void (*back_to_prom)(void) = (void (*)(void)) 0xbfc00000;
	printk("Enable Watch Dog to Reset whole system\n");
	save_flags(flags); cli();
	*(volatile unsigned long *)(0xBD010058)=0x10; // this is to enable watch dog reset
	*(volatile unsigned long *)(0xBD01005c)=0x00; // this is to enable watch dog reset
	for(;;);
	/* Reboot */
	back_to_prom();
}
Exemplo n.º 6
0
static void ddb_machine_restart(char *command)
{
	u32 t;

	/* PCI cold reset */
	t = nile4_in32(NILE4_PCICTRL + 4);
	t |= 0x40000000;
	nile4_out32(NILE4_PCICTRL + 4, t);
	/* CPU cold reset */
	t = nile4_in32(NILE4_CPUSTAT);
	t |= 1;
	nile4_out32(NILE4_CPUSTAT, t);
	/* Call the PROM */
	back_to_prom();
}
Exemplo n.º 7
0
static void nino_machine_restart(char *command)
{
	unsigned long flags;
	static void (*back_to_prom)(void) = (void (*)(void)) 0xbe000000;
	printk("Enable Watch Dog to Reset whole system\n");
	save_flags(flags); cli();
	#ifdef CONFIG_RTL865XC
	*(volatile unsigned long *)(0xB800311c)=0; /*this is to enable 865xc watch dog reset*/
	#else
	*(volatile unsigned long *)(0xBD01203c)=0; /* this is to enable 865xb watch dog reset*/
	#endif
	for(;;);
	/* Reboot */
	back_to_prom();
}
Exemplo n.º 8
0
void ATTRIB_NORET dec_machine_power_off(void)
{
    /* DECstations don't have a software power switch */
	back_to_prom();
}
Exemplo n.º 9
0
void ATTRIB_NORET dec_machine_halt(void)
{
	back_to_prom();
}
Exemplo n.º 10
0
void ATTRIB_NORET dec_machine_restart(char *command)
{
	back_to_prom();
}
Exemplo n.º 11
0
static void tc3162_machine_restart(char *command)
{
	printk("Machine restart ... \n");
	hw_reset();
	back_to_prom();
}
Exemplo n.º 12
0
void dec_machine_restart(char *command)
{
	back_to_prom();
}
Exemplo n.º 13
0
void dec_machine_halt(void)
{
	back_to_prom();
}