1 /* 2 * (C) Copyright 2009 3 * Vipin Kumar, ST Micoelectronics, vipin.kumar@st.com. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 #include <common.h> 9 #include <asm/io.h> 10 #include <asm/arch/hardware.h> 11 #include <asm/arch/spr_syscntl.h> 12 13 void reset_cpu(ulong ignored) 14 { 15 struct syscntl_regs *syscntl_regs_p = 16 (struct syscntl_regs *)CONFIG_SPEAR_SYSCNTLBASE; 17 18 printf("System is going to reboot ...\n"); 19 20 /* 21 * This 1 second delay will allow the above message 22 * to be printed before reset 23 */ 24 udelay((1000 * 1000)); 25 26 /* Going into slow mode before resetting SOC */ 27 writel(0x02, &syscntl_regs_p->scctrl); 28 29 /* 30 * Writing any value to the system status register will 31 * reset the SoC 32 */ 33 writel(0x00, &syscntl_regs_p->scsysstat); 34 35 /* system will restart */ 36 while (1) 37 ; 38 } 39