From: Alexey Brodkin Date: Wed, 10 Oct 2018 11:20:11 +0000 (+0300) Subject: iot_dk: Implement board reset X-Git-Tag: v2018.11-rc2~2^2~5 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=7d388add5592dd65eac21fcbc77ca1cccec5fa38;p=oweals%2Fu-boot.git iot_dk: Implement board reset It is done by writing some magic sequence in a special register. Signed-off-by: Alexey Brodkin --- diff --git a/board/synopsys/iot_devkit/iot_devkit.c b/board/synopsys/iot_devkit/iot_devkit.c index 1d848dde03..fb39e6d50c 100644 --- a/board/synopsys/iot_devkit/iot_devkit.c +++ b/board/synopsys/iot_devkit/iot_devkit.c @@ -17,6 +17,7 @@ DECLARE_GLOBAL_DATA_PTR; #define AHBCKDIV (void *)(SYSCON_BASE + 0x04) #define APBCKDIV (void *)(SYSCON_BASE + 0x08) #define APBCKEN (void *)(SYSCON_BASE + 0x0C) +#define RESET_REG (void *)(SYSCON_BASE + 0x18) #define CLKSEL (void *)(SYSCON_BASE + 0x24) #define CLKSTAT (void *)(SYSCON_BASE + 0x28) #define PLLCON (void *)(SYSCON_BASE + 0x2C) @@ -161,6 +162,13 @@ int board_mmc_init(bd_t *bis) return 0; } +#define IOTDK_RESET_SEQ 0x55AA6699 + +void reset_cpu(ulong addr) +{ + writel(IOTDK_RESET_SEQ, RESET_REG); +} + int checkboard(void) { puts("Board: Synopsys IoT Development Kit\n");