void arch_reset(char mode, const char *cmd) { if (machine_arch_reset) machine_arch_reset(mode, cmd); else { void *base = IO_ADDRESS(CLKCTRL_PHYS_ADDR); __raw_writel(BM_CLKCTRL_RESET_CHIP, base + HW_CLKCTRL_RESET); } cpu_reset(0); }
void arch_reset(char mode, const char *cmd) { if (machine_arch_reset) machine_arch_reset(mode, cmd); else { void *base = IO_ADDRESS(RTC_PHYS_ADDR); __raw_writel(1, base + HW_RTC_WATCHDOG); __raw_writel(0x80000000, base + HW_RTC_PERSISTENT1_SET); __raw_writel(BM_RTC_CTRL_WATCHDOGEN, base + HW_RTC_CTRL_SET); } cpu_reset(0); }