This series addresses two issues with the generic RISC-V timer driver.

Patch 1 adds proper M‑mode support: timer_early_get_rate() is now defined
for M‑mode using RISCV_MMODE_TIMER_FREQ, and timer_early_get_count() is
no longer guarded by RISCV_SMODE, making it available whenever
CONFIG_TIMER_EARLY is enabled. This is necessary because functions like
net_random_ethaddr() rely on get_ticks() which uses timer_early_get_count().

Patch 2 marks timer_early_get_rate() and timer_early_get_count() as __weak
to prevent link conflicts with other drivers (e.g., ACLINT MTIMER) that may
also provide their own implementation.

Changes in v2:
- Updated Kconfig help text and driver comments to clarify M-mode support
- Simplified code a bit
- Added patch to make RISCV_TIMER definitions weak

Signed-off-by: Nikita Shubin <[email protected]>
---
Changes in v2:
- Updated Kconfig help text and driver comments to clarify M-mode support
- Simplified code a bit
- Add patch to make timer_early_get_count() weak (optional)

- Link to v1: 
https://lore.kernel.org/r/20260904-riscv_fix_early_timer_mmode-v1-1-210e769b0...@maquefel.me

---
Nikita Shubin (2):
      riscv: timer: Enable early timer for M‑mode
      riscv: timer: Make RISCV_TIMER definitions weak

 drivers/timer/Kconfig       | 13 +++++++++++--
 drivers/timer/riscv_timer.c | 16 +++++++++++-----
 2 files changed, 22 insertions(+), 7 deletions(-)
---
base-commit: cc557af4553382f6f50e3ed62b9577054e7bc54f
change-id: 20260904-riscv_fix_early_timer_mmode-174f3ee4e106

Best regards,
-- 
Nikita Shubin

Reply via email to