blob: 8d6398dff4c5094f7c121f499692237fc3d7f8b3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
device: 0.855
performance: 0.841
other: 0.837
files: 0.818
vnc: 0.809
graphic: 0.778
network: 0.694
socket: 0.635
semantic: 0.524
debug: 0.465
permissions: 0.447
boot: 0.385
KVM: 0.146
PID: 0.138
sifive_e : erroneous CLINT frequency
Description of problem:
CLINT's `mtime` updates at a clock frequency of [10 MHz](https://gitlab.com/qemu-project/qemu/-/blob/master/hw/riscv/sifive_e.c?ref_type=heads#L228), whereas [SiFive documentation](https://cdn.sparkfun.com/assets/7/f/0/2/7/fe310-g002-manual-v19p05.pdf?_gl=1*w2ieef*_ga*MTcyNDI2MjM0Ny4xNjk2ODcwNTM3*_ga_T369JS7J9N*MTY5Njg3MDUzNy4xLjAuMTY5Njg3MDUzNy42MC4wLjA.) shows that its clock frequency is 32.768 kHz (i.e., the RTC clock).
This difference leads to unexpected timing behavior. Due to the difference, it can even trigger multiple nested interrupts as the IRQ routine is not able to return before a new timer interrupt is triggered.
|