[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 4/6] riscv: Fix SiFive E CLINT clock frequency
|
From: |
Alistair Francis |
|
Subject: |
[PULL 4/6] riscv: Fix SiFive E CLINT clock frequency |
|
Date: |
Wed, 22 Nov 2023 15:37:58 +1000 |
From: Román Cárdenas <rcardenas.rod@gmail.com>
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>
---
hw/riscv/sifive_e.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c
index 0d37adc542..87d9602383 100644
--- a/hw/riscv/sifive_e.c
+++ b/hw/riscv/sifive_e.c
@@ -225,7 +225,7 @@ static void sifive_e_soc_realize(DeviceState *dev, Error
**errp)
RISCV_ACLINT_SWI_SIZE,
RISCV_ACLINT_DEFAULT_MTIMER_SIZE, 0, ms->smp.cpus,
RISCV_ACLINT_DEFAULT_MTIMECMP, RISCV_ACLINT_DEFAULT_MTIME,
- RISCV_ACLINT_DEFAULT_TIMEBASE_FREQ, false);
+ SIFIVE_E_LFCLK_DEFAULT_FREQ, false);
sifive_e_prci_create(memmap[SIFIVE_E_DEV_PRCI].base);
/* AON */
--
2.42.0
- [PULL 0/6] riscv-to-apply queue, Alistair Francis, 2023/11/22
- [PULL 1/6] linux-user/riscv: Add Zicboz block size to hwprobe, Alistair Francis, 2023/11/22
- [PULL 2/6] hw/riscv/virt.c: do create_fdt() earlier, add finalize_fdt(), Alistair Francis, 2023/11/22
- [PULL 3/6] target/riscv: don't verify ISA compatibility for zicntr and zihpm, Alistair Francis, 2023/11/22
- [PULL 4/6] riscv: Fix SiFive E CLINT clock frequency,
Alistair Francis <=
- [PULL 5/6] target/riscv/cpu_helper.c: Invalid exception on MMU translation stage, Alistair Francis, 2023/11/22
- [PULL 6/6] target/riscv/cpu_helper.c: Fix mxr bit behavior, Alistair Francis, 2023/11/22
- Re: [PULL 0/6] riscv-to-apply queue, Stefan Hajnoczi, 2023/11/22
- Re: [PULL 0/6] riscv-to-apply queue, Michael Tokarev, 2023/11/25