1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * (C) Copyright 2002 4 * Lineo, Inc. <www.lineo.com> 5 * Bernhard Kuhn <bkuhn@lineo.com> 6 * 7 * (C) Copyright 2002 8 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 9 * Marius Groeger <mgroeger@sysgo.de> 10 * 11 * (C) Copyright 2002 12 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 13 * Alex Zuepke <azu@sysgo.de> 14 */ 15 16 #include <common.h> 17 #include <cpu_func.h> 18 #include <asm/io.h> 19 #include <asm/arch/hardware.h> 20 #include <asm/arch/at91_st.h> 21 board_reset(void)22void __attribute__((weak)) board_reset(void) 23 { 24 /* true empty function for defining weak symbol */ 25 } 26 reset_cpu(ulong ignored)27void reset_cpu(ulong ignored) 28 { 29 at91_st_t *st = (at91_st_t *) ATMEL_BASE_ST; 30 31 board_reset(); 32 33 /* Reset the cpu by setting up the watchdog timer */ 34 writel(AT91_ST_WDMR_RSTEN | AT91_ST_WDMR_EXTEN | AT91_ST_WDMR_WDV(2), 35 &st->wdmr); 36 writel(AT91_ST_CR_WDRST, &st->cr); 37 /* and let it timeout */ 38 while (1) 39 ; 40 /* Never reached */ 41 } 42