aboutsummaryrefslogtreecommitdiff
path: root/src/lib/sbi
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-31 21:41:05 +0200
committerHimbeer <himbeer@disroot.org>2024-07-31 21:41:05 +0200
commitfb37ec1eddfe97e4832701a2a9cd820e36694475 (patch)
tree6c368f8699b8dfa2781fdb35cf8d6b453cf07e60 /src/lib/sbi
parent07ca84475f66a1aa804ee28124a6c4a1ec519ceb (diff)
sbi/time: Make timer increment more accurate by reading the 'time' register as late as possible
Diffstat (limited to 'src/lib/sbi')
-rw-r--r--src/lib/sbi/time.zig3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/lib/sbi/time.zig b/src/lib/sbi/time.zig
index 6abdd4e..eed5324 100644
--- a/src/lib/sbi/time.zig
+++ b/src/lib/sbi/time.zig
@@ -25,11 +25,10 @@ pub fn setTimer(stime_absolute: u64) !void {
}
pub fn interruptInMillis(millis: u64) !void {
- const time = riscv.time.read();
-
var cpus = try hwinfo.byKind(.cpus);
const frequency = try cpus.next() orelse return error.NoCpusHwInfo;
const cycles = frequency.value / 1000 * millis;
+ const time = riscv.time.read();
try setTimer(time + cycles);
}