summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared/spw
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2014-05-02 14:28:44 +0200
committerDaniel Hellstrom <daniel@gaisler.com>2015-04-17 01:10:21 +0200
commitd2a94ab97f014c27a86a3183794387dba7d36a22 (patch)
tree0987bcaf167b3288f6cdba0cf3da90736b07a848 /c/src/lib/libbsp/sparc/shared/spw
parentGRSPW_PKT: Add support for Interrupt-codes (diff)
downloadrtems-d2a94ab97f014c27a86a3183794387dba7d36a22.tar.bz2
GRSPW: added clock cycles after GRSPW reset
added clock cycles after GRSPW reset to make sure CTRL.START bit write actually have an effect. Wait until reset is completed.
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/spw')
-rw-r--r--c/src/lib/libbsp/sparc/shared/spw/grspw.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw.c b/c/src/lib/libbsp/sparc/shared/spw/grspw.c
index ebf7fe00ee..4d66d133bb 100644
--- a/c/src/lib/libbsp/sparc/shared/spw/grspw.c
+++ b/c/src/lib/libbsp/sparc/shared/spw/grspw.c
@@ -1649,6 +1649,19 @@ static void grspw_hw_reset(GRSPW_DEV *pDev)
SPW_CTRL_WRITE(pDev, SPW_CTRL_RESET); /*reset core*/
SPW_STATUS_WRITE(pDev, SPW_STATUS_TO | SPW_STATUS_CE | SPW_STATUS_ER | SPW_STATUS_DE | SPW_STATUS_PE |
SPW_STATUS_WE | SPW_STATUS_IA | SPW_STATUS_EE); /*clear status*/
+
+ /* Add extra writes to make sure we wait the number of clocks required
+ * after reset
+ */
+ SPW_STATUS_WRITE(pDev, SPW_STATUS_TO | SPW_STATUS_CE | SPW_STATUS_ER | SPW_STATUS_DE | SPW_STATUS_PE |
+ SPW_STATUS_WE | SPW_STATUS_IA | SPW_STATUS_EE); /*clear status*/
+ SPW_STATUS_WRITE(pDev, SPW_STATUS_TO | SPW_STATUS_CE | SPW_STATUS_ER | SPW_STATUS_DE | SPW_STATUS_PE |
+ SPW_STATUS_WE | SPW_STATUS_IA | SPW_STATUS_EE); /*clear status*/
+ SPW_STATUS_WRITE(pDev, SPW_STATUS_TO | SPW_STATUS_CE | SPW_STATUS_ER | SPW_STATUS_DE | SPW_STATUS_PE |
+ SPW_STATUS_WE | SPW_STATUS_IA | SPW_STATUS_EE); /*clear status*/
+ SPW_STATUS_WRITE(pDev, SPW_STATUS_TO | SPW_STATUS_CE | SPW_STATUS_ER | SPW_STATUS_DE | SPW_STATUS_PE |
+ SPW_STATUS_WE | SPW_STATUS_IA | SPW_STATUS_EE); /*clear status*/
+
SPW_CTRL_WRITE(pDev, SPW_CTRL_LINKSTART); /*start link core*/
}