1 /* 2 * Copyright (C) 2013 Altera Corporation <www.altera.com> 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 8 #include <common.h> 9 #include <asm/io.h> 10 #include <asm/arch/reset_manager.h> 11 12 DECLARE_GLOBAL_DATA_PTR; 13 14 static const struct socfpga_reset_manager *reset_manager_base = 15 (void *)SOCFPGA_RSTMGR_ADDRESS; 16 17 /* 18 * Write the reset manager register to cause reset 19 */ 20 void reset_cpu(ulong addr) 21 { 22 /* request a warm reset */ 23 writel(1 << RSTMGR_CTRL_SWWARMRSTREQ_LSB, 24 &reset_manager_base->ctrl); 25 /* 26 * infinite loop here as watchdog will trigger and reset 27 * the processor 28 */ 29 while (1) 30 ; 31 } 32