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
