[PATCH v5 1/9] riscv: Rework riscv timer driver to only support S-mode

Rick Chen rickchen36 at gmail.com
Tue Sep 22 05:22:38 CEST 2020


> The riscv-timer driver currently serves as a shim for several riscv timer
> drivers. This is not too desirable because it bypasses the usual timer
> selection via the driver model. There is no easy way to specify an
> alternate timing driver, or have the tick rate depend on the cpu's
> configured frequency. The timer drivers also do not have device structs,
> and so have to rely on storing parameters in gd_t. Lastly, there is no
> initialization call, so driver init is done in the same function which
> reads the time. This can result in confusing error messages. To a user, it
> looks like the driver failed when trying to read the time, whereas it may
> have failed while initializing.
>
> This patch removes the shim functionality from the riscv-timer driver, and
> has it instead implement the former rdtime.c timer driver. This is because
> existing u-boot users who pass in a device tree (e.g. qemu) do not create a
> timer device for S-mode u-boot. The existing behavior of creating the
> riscv-timer device in the riscv cpu driver must be kept. The actual reading
> of the CSRs has been redone in the style of Linux's get_cycles64.
>
> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
> Reviewed-by: Bin Meng <bin.meng at windriver.com>
> ---
>
> (no changes since v4)
>
> Changes in v4:
> - Modify RISCV_TIMER KConfig
>   - Now depends on RISCV
>   - Implied by S-Mode (with or without SPL)
>
> Changes in v2:
> - Remove RISCV_RDTIME KConfig option
>
>  arch/riscv/Kconfig             |  8 -------
>  arch/riscv/cpu/ax25/Kconfig    |  2 +-
>  arch/riscv/cpu/fu540/Kconfig   |  2 +-
>  arch/riscv/cpu/generic/Kconfig |  2 +-
>  arch/riscv/lib/Makefile        |  1 -
>  arch/riscv/lib/rdtime.c        | 38 ---------------------------------
>  drivers/timer/Kconfig          |  4 ++--
>  drivers/timer/riscv_timer.c    | 39 +++++++++++++++++-----------------
>  8 files changed, 25 insertions(+), 71 deletions(-)
>  delete mode 100644 arch/riscv/lib/rdtime.c
>

Reviewed-by: Rick Chen <rick at andestech.com>


More information about the U-Boot mailing list