From 5cbbec15acbfabcfc9ed330fdd840532d0bd6245 Mon Sep 17 00:00:00 2001
From: Grzegorz Daniluk <grzegorz.daniluk@cern.ch>
Date: Tue, 7 Mar 2017 10:52:13 +0100
Subject: [PATCH] generate net reset when LM32 starts

---
 dev/syscon.c     | 6 ++++++
 include/syscon.h | 2 ++
 wrc_main.c       | 1 +
 3 files changed, 9 insertions(+)

diff --git a/dev/syscon.c b/dev/syscon.c
index 01aa51c90..80834ce99 100644
--- a/dev/syscon.c
+++ b/dev/syscon.c
@@ -104,3 +104,9 @@ int diag_write_word(uint32_t adr, uint32_t val)
 
 	return 0;
 }
+
+void net_rst(void)
+{
+	syscon->GPSR |= SYSC_GPSR_NET_RST;
+}
+
diff --git a/include/syscon.h b/include/syscon.h
index d0c8e4f68..4fb89f4a9 100644
--- a/include/syscon.h
+++ b/include/syscon.h
@@ -111,5 +111,7 @@ void diag_read_info(uint32_t *id, uint32_t *ver, uint32_t *nrw, uint32_t *nro);
 int diag_read_word(uint32_t adr, int bank, uint32_t *val);
 int diag_write_word(uint32_t adr, uint32_t val);
 
+void net_rst(void);
+
 #endif /* CONFIG_WR_NODE */
 #endif
diff --git a/wrc_main.c b/wrc_main.c
index a85bd4b88..ff06bfbe6 100644
--- a/wrc_main.c
+++ b/wrc_main.c
@@ -80,6 +80,7 @@ static void wrc_initialize(void)
 		mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3],
 		mac_addr[4], mac_addr[5]);
 
+	net_rst();
 	ep_init(mac_addr);
 	ep_enable(1, 1);
 
-- 
GitLab