summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
authorxqyjlj <[email protected]>2023-07-17 20:11:58 +0800
committerGitHub <[email protected]>2023-07-17 20:11:58 +0800
commit0eb75ced70a514051fcc6a8f1d232e195b15b4a0 (patch)
treea025fe349198fa0fe6f972ea1100ac31ba64787a /bsp
parentb424169e1742c1b19d039f9871dd3c672ea7b729 (diff)
[time]时钟框架重构 (#7794)
Diffstat (limited to 'bsp')
-rw-r--r--bsp/qemu-virt64-aarch64/.config2
-rw-r--r--bsp/qemu-virt64-aarch64/applications/mnt.c11
-rw-r--r--bsp/qemu-virt64-aarch64/drivers/board.c3
-rw-r--r--bsp/qemu-virt64-aarch64/drivers/drv_rtc.c4
-rw-r--r--bsp/qemu-virt64-aarch64/drivers/drv_timer.c46
-rw-r--r--bsp/qemu-virt64-aarch64/drivers/drv_timer.h16
-rw-r--r--bsp/qemu-virt64-aarch64/rtconfig.h1
-rw-r--r--bsp/qemu-virt64-riscv/.config12
-rw-r--r--bsp/qemu-virt64-riscv/applications/mnt.c15
-rw-r--r--bsp/qemu-virt64-riscv/rtconfig.h8
10 files changed, 43 insertions, 75 deletions
diff --git a/bsp/qemu-virt64-aarch64/.config b/bsp/qemu-virt64-aarch64/.config
index c6de1d3c7a..44f181b385 100644
--- a/bsp/qemu-virt64-aarch64/.config
+++ b/bsp/qemu-virt64-aarch64/.config
@@ -204,7 +204,7 @@ CONFIG_RT_USING_FDTLIB=y
# CONFIG_FDT_USING_DEBUG is not set
CONFIG_RT_USING_RTC=y
# CONFIG_RT_USING_ALARM is not set
-# CONFIG_RT_USING_SOFT_RTC is not set
+CONFIG_RT_USING_SOFT_RTC=y
# CONFIG_RT_USING_SDIO is not set
# CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set
diff --git a/bsp/qemu-virt64-aarch64/applications/mnt.c b/bsp/qemu-virt64-aarch64/applications/mnt.c
index 6a226db6d8..262c19c4f7 100644
--- a/bsp/qemu-virt64-aarch64/applications/mnt.c
+++ b/bsp/qemu-virt64-aarch64/applications/mnt.c
@@ -22,6 +22,17 @@ int mnt_init(void)
{
rt_kprintf("file system initialization done!\n");
}
+ else
+ {
+ if (dfs_mount("virtio-blk0", "/", "ext", 0, RT_NULL) == 0)
+ {
+ rt_kprintf("file system initialization done!\n");
+ }
+ else
+ {
+ rt_kprintf("file system initialization fail!\n");
+ }
+ }
}
return 0;
diff --git a/bsp/qemu-virt64-aarch64/drivers/board.c b/bsp/qemu-virt64-aarch64/drivers/board.c
index ce8b88151d..7e8dc364da 100644
--- a/bsp/qemu-virt64-aarch64/drivers/board.c
+++ b/bsp/qemu-virt64-aarch64/drivers/board.c
@@ -14,6 +14,7 @@
#include <rthw.h>
#include <rtthread.h>
#include <mmu.h>
+#include <gtimer.h>
#ifdef RT_USING_SMART
#include <lwp_arch.h>
@@ -98,6 +99,8 @@ void rt_hw_board_init(void)
/* initialize hardware interrupt */
rt_hw_interrupt_init();
+ rt_hw_gtimer_init();
+
/* support debug feature before components init */
rt_hw_uart_init();
rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
diff --git a/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c b/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c
index 019c5d5b0e..a899c2a6c9 100644
--- a/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c
+++ b/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c
@@ -115,8 +115,8 @@ int rt_hw_rtc_init(void)
rtc_device.device.user_data = RT_NULL;
/* register a rtc device */
- rt_device_register(&rtc_device.device, "rtc", RT_DEVICE_FLAG_RDWR);
-
+ rt_device_register(&rtc_device.device, "rtc0", RT_DEVICE_FLAG_RDWR);
+ rt_soft_rtc_set_source("rtc0");
return 0;
}
INIT_DEVICE_EXPORT(rt_hw_rtc_init);
diff --git a/bsp/qemu-virt64-aarch64/drivers/drv_timer.c b/bsp/qemu-virt64-aarch64/drivers/drv_timer.c
deleted file mode 100644
index 99eaa7b18c..0000000000
--- a/bsp/qemu-virt64-aarch64/drivers/drv_timer.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2006-2022, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2018-11-22 Jesven first version
- */
-
-#include <rthw.h>
-#include <rtthread.h>
-#include <stdint.h>
-#include "cp15.h"
-#include "board.h"
-#include "gtimer.h"
-
-#define TIMER_IRQ 30
-
-static rt_uint64_t timerStep = 0;
-
-static void rt_hw_timer_isr(int vector, void *param)
-{
- rt_hw_set_gtimer_val(timerStep);
- rt_tick_increase();
-}
-
-void rt_hw_timer_enable(void)
-{
- rt_hw_set_gtimer_val(timerStep);
- rt_hw_interrupt_umask(TIMER_IRQ);
- rt_hw_gtimer_enable();
-}
-
-int rt_hw_timer_init(void)
-{
- rt_hw_interrupt_install(TIMER_IRQ, rt_hw_timer_isr, RT_NULL, "tick");
- __ISB();
- timerStep = rt_hw_get_gtimer_frq();
- __DSB();
- timerStep /= RT_TICK_PER_SECOND;
- rt_hw_timer_enable();
-
- return 0;
-}
-INIT_BOARD_EXPORT(rt_hw_timer_init);
diff --git a/bsp/qemu-virt64-aarch64/drivers/drv_timer.h b/bsp/qemu-virt64-aarch64/drivers/drv_timer.h
deleted file mode 100644
index 784d07ec63..0000000000
--- a/bsp/qemu-virt64-aarch64/drivers/drv_timer.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2006-2022, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2018-11-22 Jesven first version
- */
-
-#ifndef DRV_TIMER_H__
-#define DRV_TIMER_H__
-
-void timer_init(int timer, unsigned int preload);
-
-#endif
diff --git a/bsp/qemu-virt64-aarch64/rtconfig.h b/bsp/qemu-virt64-aarch64/rtconfig.h
index 32757a23cc..5b71c996f6 100644
--- a/bsp/qemu-virt64-aarch64/rtconfig.h
+++ b/bsp/qemu-virt64-aarch64/rtconfig.h
@@ -133,6 +133,7 @@
#define RT_USING_FDT
#define RT_USING_FDTLIB
#define RT_USING_RTC
+#define RT_USING_SOFT_RTC
#define RT_USING_DEV_BUS
#define RT_USING_VIRTIO
#define RT_USING_VIRTIO10
diff --git a/bsp/qemu-virt64-riscv/.config b/bsp/qemu-virt64-riscv/.config
index 571d1fdfe0..d3c3ff2f5a 100644
--- a/bsp/qemu-virt64-riscv/.config
+++ b/bsp/qemu-virt64-riscv/.config
@@ -84,7 +84,7 @@ CONFIG_RT_USING_DEVICE_OPS=y
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
-CONFIG_RT_VER_NUM=0x50000
+CONFIG_RT_VER_NUM=0x50001
# CONFIG_RT_USING_STDC_ATOMIC is not set
CONFIG_ARCH_CPU_64BIT=y
CONFIG_RT_USING_CACHE=y
@@ -122,10 +122,12 @@ CONFIG_FINSH_ARG_MAX=10
CONFIG_RT_USING_DFS=y
CONFIG_DFS_USING_POSIX=y
CONFIG_DFS_USING_WORKDIR=y
+# CONFIG_RT_USING_DFS_MNTTABLE is not set
+CONFIG_DFS_FD_MAX=32
+CONFIG_RT_USING_DFS_V1=y
+# CONFIG_RT_USING_DFS_V2 is not set
CONFIG_DFS_FILESYSTEMS_MAX=4
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
-CONFIG_DFS_FD_MAX=32
-# CONFIG_RT_USING_DFS_MNTTABLE is not set
CONFIG_RT_USING_DFS_ELMFAT=y
#
@@ -174,7 +176,7 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_HWTIMER is not set
CONFIG_RT_USING_CPUTIME=y
CONFIG_RT_USING_CPUTIME_RISCV=y
-CONFIG_CPUTIME_TIMER_FREQ=300000000
+CONFIG_CPUTIME_TIMER_FREQ=10000000
# CONFIG_RT_USING_I2C is not set
# CONFIG_RT_USING_PHY is not set
CONFIG_RT_USING_PIN=y
@@ -190,7 +192,7 @@ CONFIG_RT_USING_RANDOM=y
# CONFIG_RT_USING_FDT is not set
CONFIG_RT_USING_RTC=y
# CONFIG_RT_USING_ALARM is not set
-# CONFIG_RT_USING_SOFT_RTC is not set
+CONFIG_RT_USING_SOFT_RTC=y
# CONFIG_RT_USING_SDIO is not set
# CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set
diff --git a/bsp/qemu-virt64-riscv/applications/mnt.c b/bsp/qemu-virt64-riscv/applications/mnt.c
index d3849c569a..ccf2b39809 100644
--- a/bsp/qemu-virt64-riscv/applications/mnt.c
+++ b/bsp/qemu-virt64-riscv/applications/mnt.c
@@ -19,9 +19,20 @@ int mnt_init(void)
if (rt_device_find("virtio-blk0"))
{
/* mount virtio-blk as root directory */
- if (dfs_mount("virtio-blk0", "/", "elm", 0, RT_NULL) != 0)
+ if (dfs_mount("virtio-blk0", "/", "elm", 0, RT_NULL) == 0)
{
- LOG_E("virtio-blk0 mount failed\n");
+ rt_kprintf("file system initialization done!\n");
+ }
+ else
+ {
+ if (dfs_mount("virtio-blk0", "/", "ext", 0, RT_NULL) == 0)
+ {
+ rt_kprintf("file system initialization done!\n");
+ }
+ else
+ {
+ rt_kprintf("file system initialization fail!\n");
+ }
}
}
diff --git a/bsp/qemu-virt64-riscv/rtconfig.h b/bsp/qemu-virt64-riscv/rtconfig.h
index 2d174cf9d7..7780e1d51d 100644
--- a/bsp/qemu-virt64-riscv/rtconfig.h
+++ b/bsp/qemu-virt64-riscv/rtconfig.h
@@ -53,7 +53,7 @@
#define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE 256
#define RT_CONSOLE_DEVICE_NAME "uart0"
-#define RT_VER_NUM 0x50000
+#define RT_VER_NUM 0x50001
#define ARCH_CPU_64BIT
#define RT_USING_CACHE
#define RT_USING_HW_ATOMIC
@@ -83,9 +83,10 @@
#define RT_USING_DFS
#define DFS_USING_POSIX
#define DFS_USING_WORKDIR
+#define DFS_FD_MAX 32
+#define RT_USING_DFS_V1
#define DFS_FILESYSTEMS_MAX 4
#define DFS_FILESYSTEM_TYPES_MAX 4
-#define DFS_FD_MAX 32
#define RT_USING_DFS_ELMFAT
/* elm-chan's FatFs, Generic FAT Filesystem Module */
@@ -117,12 +118,13 @@
#define RT_SERIAL_RB_BUFSZ 64
#define RT_USING_CPUTIME
#define RT_USING_CPUTIME_RISCV
-#define CPUTIME_TIMER_FREQ 300000000
+#define CPUTIME_TIMER_FREQ 10000000
#define RT_USING_PIN
#define RT_USING_NULL
#define RT_USING_ZERO
#define RT_USING_RANDOM
#define RT_USING_RTC
+#define RT_USING_SOFT_RTC
#define RT_USING_VIRTIO
#define RT_USING_VIRTIO10
#define RT_USING_VIRTIO_BLK