Current implementation of riscv_timer.c only assumes readable TIMER CSRs
present (IOW, Zicntr extension is available). Core Local Interruptors
(CLINT) found on T-Head C9xx cores expose its mtime register through
TIME CSR directly instead of a MMIO register, thus is compatible with
the driver.

As running in S-Mode isn't necessary for the driver to operate, Kconfig
and comments are also adapted to avoid confusion.

Reference: https://github.com/riscv-software-src/opensbi/commit/ca7810aecdba
Signed-off-by: Yao Zi <[email protected]>
---

This is necessary for several platforms based on T-Head C9xx to get
system ticks, e.g. TH1520, K230 and CV1800. Tested on
th1520-lichee-pi-4a in both M-mode and S-mode (with mainline OpenSBI).

 drivers/timer/Kconfig       | 4 ++--
 drivers/timer/riscv_timer.c | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig
index cb6fc0e7fda..00c4067a23b 100644
--- a/drivers/timer/Kconfig
+++ b/drivers/timer/Kconfig
@@ -241,8 +241,8 @@ config RISCV_TIMER
        bool "RISC-V timer support"
        depends on TIMER && RISCV
        help
-         Select this to enable support for a generic RISC-V S-Mode timer
-         driver.
+         Select this to enable support for a generic timer driver based
+         on RISC-V TIMER CSR.
 
 config ROCKCHIP_TIMER
        bool "Rockchip timer support"
diff --git a/drivers/timer/riscv_timer.c b/drivers/timer/riscv_timer.c
index 1f4980ceb38..3e6f0cd6d11 100644
--- a/drivers/timer/riscv_timer.c
+++ b/drivers/timer/riscv_timer.c
@@ -7,7 +7,7 @@
  *
  * RISC-V architecturally-defined generic timer driver
  *
- * This driver provides generic timer support for S-mode U-Boot.
+ * This driver provides generic timer support through TIME CSR for U-Boot.
  */
 
 #include <config.h>
@@ -106,6 +106,7 @@ static const struct timer_ops riscv_timer_ops = {
 
 static const struct udevice_id riscv_timer_ids[] = {
        { .compatible = "riscv,timer", },
+       { .compatible = "thead,c900-clint" },
        { }
 };
 
-- 
2.48.1

Reply via email to