]> git.ipfire.org Git - thirdparty/qemu.git/commit
riscv: Fix SiFive E CLINT clock frequency
authorRomán Cárdenas <rcardenas.rod@gmail.com>
Fri, 17 Nov 2023 08:28:42 +0000 (09:28 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Wed, 29 Nov 2023 13:15:22 +0000 (16:15 +0300)
commit837148a31ac68068cd8411118a96ada650bbbef9
tree0ef71349d2dbbd528f3741e2f1b67bbc943f27ff
parent9ac76067abf74f8dc12f7c9ef2acb0df543ebcbb
riscv: Fix SiFive E CLINT clock frequency

If you check the manual of SiFive E310 (https://cdn.sparkfun.com/assets/7/f/0/2/7/fe310-g002-manual-v19p05.pdf),
you can see in Figure 1 that the CLINT is connected to the real time clock, which also feeds the AON peripheral (they share the same clock).
In page 43, the docs also say that the timer registers of the CLINT count ticks from the rtcclk.

I am currently playing with bare metal applications both in QEMU and a physical SiFive E310 board and
I confirm that the CLINT clock in the physical board runs at 32.768 kHz.
In QEMU, the same app produces a completely different outcome, as sometimes a new CLINT interrupt is triggered before finishing other tasks.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1978

Signed-off-by: Rom\ufffd\ufffdn C\ufffd\ufffdrdenas <rcardenas.rod@gmail.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20231117082840.55705-1-rcardenas.rod@gmail.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit a7472560ca5f7a61ef3a46b52118f680de81058c)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/riscv/sifive_e.c