summaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorNing Yang <yangn0@qq.com>2024-04-16 18:19:49 +0800
committerJoel Sherrill <joel@rtems.org>2024-04-24 16:41:08 -0500
commitd6afec1859b2a589da52a0d26111affa0b6a1662 (patch)
tree05aced5a1f09b2db35b4790a29cd2920ee11e36e /spec
parentvalidation: Fix typo (diff)
downloadrtems-master.tar.bz2
bsps/aarch64/raspberrypi: Add system timer supportHEADmaster
The clock from the ARM timer is derived from the system clock. This clock can change dynamically e.g. if the system goes into reduced power or in low power mode. Thus the clock speed adapts to the overall system performance capabilities. For accurate timing it is recommended to use the system timers. if BSP_CLOCK_USE_SYSTEMTIMER = 1, use the System Timer, otherwise use the ARM Timer.
Diffstat (limited to '')
-rw-r--r--spec/build/bsps/aarch64/grp.yml3
-rw-r--r--spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml6
-rw-r--r--spec/build/bsps/aarch64/raspberrypi/objclock.yml31
-rw-r--r--spec/build/bsps/aarch64/raspberrypi/objsystemtimer.yml23
-rw-r--r--spec/build/bsps/aarch64/raspberrypi/optsystemtimer.yml25
5 files changed, 83 insertions, 5 deletions
diff --git a/spec/build/bsps/aarch64/grp.yml b/spec/build/bsps/aarch64/grp.yml
index 9428fb9435..8f40a9952e 100644
--- a/spec/build/bsps/aarch64/grp.yml
+++ b/spec/build/bsps/aarch64/grp.yml
@@ -12,9 +12,6 @@ install:
source:
- bsps/aarch64/include/bsp/linker-symbols.h
- bsps/aarch64/include/bsp/start.h
-- destination: ${BSP_INCLUDEDIR}/dev/clock
- source:
- - bsps/include/dev/clock/arm-generic-timer.h
- destination: ${BSP_INCLUDEDIR}/dev/irq
source:
- bsps/aarch64/include/dev/irq/arm-gic-arch.h
diff --git a/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml b/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml
index a579c094ba..7b6511a8cc 100644
--- a/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml
+++ b/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml
@@ -20,6 +20,10 @@ install:
- bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h
links:
- role: build-dependency
+ uid: objclock
+- role: build-dependency
+ uid: objsystemtimer
+- role: build-dependency
uid: ../grp
- role: build-dependency
uid: ../start
@@ -50,10 +54,8 @@ source:
- bsps/aarch64/raspberrypi/start/bspstart.c
- bsps/aarch64/raspberrypi/start/bspstarthooks.c
- bsps/aarch64/raspberrypi/start/bspstartmmu.c
-- bsps/aarch64/shared/clock/arm-generic-timer-aarch64.c
- bsps/aarch64/shared/cache/cache.c
- bsps/aarch64/shared/mmu/vmsav8-64.c
-- bsps/shared/dev/clock/arm-generic-timer.c
- bsps/shared/dev/irq/arm-gicv2.c
- bsps/shared/dev/irq/arm-gicv2-get-attributes.c
- bsps/shared/dev/serial/console-termios-init.c
diff --git a/spec/build/bsps/aarch64/raspberrypi/objclock.yml b/spec/build/bsps/aarch64/raspberrypi/objclock.yml
new file mode 100644
index 0000000000..24f61c93c4
--- /dev/null
+++ b/spec/build/bsps/aarch64/raspberrypi/objclock.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+ - Copyright (C) 2022 Mohd Noor Aman
+ - Copyright (C) 2023 Utkarsh Verma
+ - Copyright (C) 2024 Ning Yang
+
+type: build
+enabled-by:
+ not: BSP_CLOCK_USE_SYSTEMTIMER
+
+build-type: objects
+cflags: []
+cppflags: []
+cxxflags: []
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/dev/clock
+ source:
+ - bsps/include/dev/clock/arm-generic-timer.h
+
+source:
+ - bsps/aarch64/shared/clock/arm-generic-timer-aarch64.c
+ - bsps/shared/dev/clock/arm-generic-timer.c
+
+links:
+ - role: build-dependency
+ uid: ../optgtusevirt
+ - role: build-dependency
+ uid: ../optgtuseps
+ - role: build-dependency
+ uid: optsystemtimer \ No newline at end of file
diff --git a/spec/build/bsps/aarch64/raspberrypi/objsystemtimer.yml b/spec/build/bsps/aarch64/raspberrypi/objsystemtimer.yml
new file mode 100644
index 0000000000..1ead15fdd5
--- /dev/null
+++ b/spec/build/bsps/aarch64/raspberrypi/objsystemtimer.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+ - Copyright (C) 2024 Ning Yang
+
+type: build
+enabled-by:
+- BSP_CLOCK_USE_SYSTEMTIMER
+
+build-type: objects
+cflags: []
+cppflags: []
+cxxflags: []
+includes: []
+install: []
+
+source:
+ - bsps/shared/dev/clock/bcm2835-system-timer.c
+ - bsps/shared/dev/cpucounter/cpucounterfrequency.c
+ - bsps/shared/dev/cpucounter/cpucounterread.c
+
+links:
+ - role: build-dependency
+ uid: optsystemtimer \ No newline at end of file
diff --git a/spec/build/bsps/aarch64/raspberrypi/optsystemtimer.yml b/spec/build/bsps/aarch64/raspberrypi/optsystemtimer.yml
new file mode 100644
index 0000000000..c20371ab8b
--- /dev/null
+++ b/spec/build/bsps/aarch64/raspberrypi/optsystemtimer.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+ - Copyright (C) 2024 Ning Yang
+
+type: build
+build-type: option
+
+enabled-by: true
+name: BSP_CLOCK_USE_SYSTEMTIMER
+description: |
+ The clock from the ARM timer is derived from the system clock. This clock can
+ change dynamically e.g. if the system goes into reduced power or in low power
+ mode. Thus the clock speed adapts to the overall system performance
+ capabilities. For accurate timing it is recommended to use the system timers.
+
+actions:
+ - get-boolean: null
+ - define-condition: null
+ - env-enable: null
+default:
+ - enabled-by:
+ - aarch64/raspberrypi4b
+ value: false
+
+links: [] \ No newline at end of file