aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/runtime/runtime_tkey_baremetal.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/runtime_tkey_baremetal.go')
-rw-r--r--src/runtime/runtime_tkey_baremetal.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/runtime/runtime_tkey_baremetal.go b/src/runtime/runtime_tkey_baremetal.go
new file mode 100644
index 000000000..a83bd4408
--- /dev/null
+++ b/src/runtime/runtime_tkey_baremetal.go
@@ -0,0 +1,24 @@
+//go:build tkey && !qemu
+
+package runtime
+
+import "device/riscv"
+
+// ticksToNanoseconds converts ticks (at 18MHz) to 10 µs.
+func ticksToNanoseconds(ticks timeUnit) int64 {
+ return int64(ticks) * 10000
+}
+
+// nanosecondsToTicks converts 10 µs to ticks (at 18MHz).
+func nanosecondsToTicks(ns int64) timeUnit {
+ return timeUnit(ns / 10000)
+}
+
+func exit(code int) {
+ abort()
+}
+
+func abort() {
+ // Force illegal instruction to halt CPU
+ riscv.Asm("unimp")
+}