[PATCH] riscv: timer: Add thead,c900-clint compatible

Yao Zi ziyao at disroot.org
Thu Feb 20 11:31:53 CET 2025


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 <ziyao at disroot.org>
---

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



More information about the U-Boot mailing list