summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Brodkin <abrodkin@synopsys.com>2018-10-10 14:20:11 +0300
committerAlexey Brodkin <abrodkin@synopsys.com>2018-10-12 15:14:41 +0300
commit7d388add5592dd65eac21fcbc77ca1cccec5fa38 (patch)
tree1c785042b418ccc72b2cb92f0bd4f03cca2ea3ef
parent5b86ca96d03c781f2035c0ecfea526d42f6999f6 (diff)
iot_dk: Implement board reset
It is done by writing some magic sequence in a special register. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
-rw-r--r--board/synopsys/iot_devkit/iot_devkit.c8
1 files changed, 8 insertions, 0 deletions
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");