From: Alexey Brodkin <abrodkin@synopsys.com>
Date: Wed, 10 Oct 2018 11:20:11 +0000 (+0300)
Subject: iot_dk: Implement board reset
X-Git-Tag: v2025.01-rc5-pxa1908~3365^2~5
X-Git-Url: http://git.dujemihanovic.xyz/html/static/gitweb.css?a=commitdiff_plain;h=7d388add5592dd65eac21fcbc77ca1cccec5fa38;p=u-boot.git

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>
---

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");