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 <asm/io.h> 18 #include <asm/arch/hardware.h> 19 #include <asm/arch/at91_st.h> 20 board_reset(void)21void __attribute__((weak)) board_reset(void) 22 { 23 /* true empty function for defining weak symbol */ 24 } 25 reset_cpu(ulong ignored)26void reset_cpu(ulong ignored) 27 { 28 at91_st_t *st = (at91_st_t *) ATMEL_BASE_ST; 29 30 board_reset(); 31 32 /* Reset the cpu by setting up the watchdog timer */ 33 writel(AT91_ST_WDMR_RSTEN | AT91_ST_WDMR_EXTEN | AT91_ST_WDMR_WDV(2), 34 &st->wdmr); 35 writel(AT91_ST_CR_WDRST, &st->cr); 36 /* and let it timeout */ 37 while (1) 38 ; 39 /* Never reached */ 40 } 41