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

Patch 1 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.

Patch 2 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().

Signed-off-by: Nikita Shubin <[email protected]>
---
Changes in v5:
- Rephrased commit message for Patch 2.

- Link to v4: 
https://lore.kernel.org/r/20260911-riscv_fix_early_timer_mmode-v4-0-87a7b5abf...@maquefel.me

Changes in v4:
- Change KConfig description for RISCV_TIMER: drop ACLINT warning as we
  define funcs as weak, rephrase note about macros and make int make it
  more compact.

- Link to v3: 
https://lore.kernel.org/r/20260910-riscv_fix_early_timer_mmode-v3-0-52b569fa1...@maquefel.me

Changes in v3:
- reoder patches so weak definitions come first

- Link to v2: 
https://lore.kernel.org/r/20260909-riscv_fix_early_timer_mmode-v2-0-563bff2a5...@maquefel.me

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: Make RISCV_TIMER definitions weak
      riscv: timer: Enable early timer for M‑mode

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

Best regards,
-- 
Nikita Shubin

Reply via email to