Shell 65ffe4e13e [libcpu/rv64] feat: unify tick.c
The changes unify the tick.c implementations for all risc-v64
architectures, leveraging the CPUTIME feature. This refactoring was
necessary to streamline the codebase, and ensure consistent timer
handling across different platforms.

Changes:
- Updated `Kconfig` in `bsp/cvitek/cv18xx_risc-v` to fix formatting issues.
- Updated .config for BSPs to update `CPUTIME_TIMER_FREQ`
- Updated header of for API `riscv_cputime_init`
- Initialized riscv timer on `rt_hw_tick_init`
- Refactored `tick.c` and `tick.h` in `libcpu/risc-v/t-head/c906` and `libcpu/risc-v/virt64`:
  - Replaced direct use of `rdtime` with `clock_cpu_gettime`.
  - Removed redundant timer frequency definitions.
  - Added static assertions to check the value of `CPUTIME_TIMER_FREQ`.
  - Initialized `tick_cycles` based on `CPUTIME_TIMER_FREQ`.
  - Integrated `ktime` support for tick initialization.

Signed-off-by: Shell <smokewood@qq.com>
Reviewed-on: https://github.com/RT-Thread/rt-thread/pull/9164
Reviewed-by: Chen Wang <unicorn_wang@outlook.com>
2024-07-15 12:06:39 +08:00

78 lines
1.3 KiB
Plaintext
Executable File

mainmenu "RT-Thread Project Configuration"
BSP_DIR := .
RTT_DIR := ../../..
PKGS_DIR := packages
source "$(RTT_DIR)/Kconfig"
osource "$PKGS_DIR/Kconfig"
rsource "board/Kconfig"
config BSP_USING_CV18XX
bool
select ARCH_RISCV64
select ARCH_USING_RISCV_COMMON64
select RT_USING_SYSTEM_WORKQUEUE
select RT_USING_COMPONENTS_INIT
select RT_USING_USER_MAIN
select RT_USING_CACHE
select ARCH_MM_MMU
select RT_USING_DEVICE_OPS
default y
config C906_PLIC_PHY_ADDR
hex
default 0x70000000
config IRQ_MAX_NR
int
default 64
config TIMER_CLK_FREQ
int
default 25000000
config GPIO_IRQ_BASE
int
default 60
config SYS_GPIO_IRQ_BASE
int
default 70
config __STACKSIZE__
int "stack size for interrupt"
default 4096
config SOC_TYPE_CV180X
bool
default n
config SOC_TYPE_SG2002
bool
default n
choice
prompt "Board Type"
default BOARD_TYPE_MILKV_DUO256M
config BOARD_TYPE_MILKV_DUO
select SOC_TYPE_CV180X
bool "milkv-duo"
config BOARD_TYPE_MILKV_DUO_SPINOR
select SOC_TYPE_CV180X
bool "milkv-duo-spinor"
config BOARD_TYPE_MILKV_DUO256M
select SOC_TYPE_SG2002
bool "milkv-duo256m"
config BOARD_TYPE_MILKV_DUO256M_SPINOR
select SOC_TYPE_SG2002
bool "milkv-duo256m-spinor"
endchoice