summaryrefslogtreecommitdiff
path: root/code/core/fe310/time.c
diff options
context:
space:
mode:
authorUros Majstorovic <majstor@majstor.org>2018-01-11 18:03:58 +0100
committerUros Majstorovic <majstor@majstor.org>2018-01-11 18:03:58 +0100
commit0b7db1a4555da3f9a153d72f44bc2a5d070df51f (patch)
treeb2459ed047653d8295472bdc58123c2c7145d828 /code/core/fe310/time.c
parentdea99b85dc52341265ae2e8463afee8a9709127a (diff)
fe310 platform introdiced
Diffstat (limited to 'code/core/fe310/time.c')
-rw-r--r--code/core/fe310/time.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/code/core/fe310/time.c b/code/core/fe310/time.c
new file mode 100644
index 0000000..2ff98cb
--- /dev/null
+++ b/code/core/fe310/time.c
@@ -0,0 +1,18 @@
+#include <core.h>
+
+#include "encoding.h"
+#include "platform.h"
+
+static ecp_cts_t t_abstime_ms(ecp_cts_t msec) {
+ volatile uint64_t *mtime = (uint64_t *) (CLINT_CTRL_ADDR + CLINT_MTIME);
+
+ uint64_t now_ms = *mtime * 1000 / RTC_FREQ;
+ return now_ms + msec;
+}
+
+int ecp_time_init(ECPTimeIface *t) {
+ t->init = 1;
+ t->abstime_ms = t_abstime_ms;
+ t->sleep_ms = NULL;
+ return 0;
+}