mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-26 06:08:20 +00:00
bsps/aarch64: add physical secure timer
This commit is contained in:
@@ -43,6 +43,8 @@ uint64_t arm_gt_clock_get_compare_value(void)
|
||||
__asm__ volatile (
|
||||
#ifdef AARCH64_GENERIC_TIMER_USE_VIRTUAL
|
||||
"mrs %[val], cntv_cval_el0"
|
||||
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
|
||||
"mrs %[val], cntps_cval_el1"
|
||||
#else
|
||||
"mrs %[val], cntp_cval_el0"
|
||||
#endif
|
||||
@@ -56,6 +58,8 @@ void arm_gt_clock_set_compare_value(uint64_t cval)
|
||||
__asm__ volatile (
|
||||
#ifdef AARCH64_GENERIC_TIMER_USE_VIRTUAL
|
||||
"msr cntv_cval_el0, %[cval]"
|
||||
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
|
||||
"msr cntps_cval_el1, %[cval]"
|
||||
#else
|
||||
"msr cntp_cval_el0, %[cval]"
|
||||
#endif
|
||||
@@ -83,6 +87,8 @@ void arm_gt_clock_set_control(uint32_t ctl)
|
||||
__asm__ volatile (
|
||||
#ifdef AARCH64_GENERIC_TIMER_USE_VIRTUAL
|
||||
"msr cntv_ctl_el0, %[ctl]"
|
||||
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
|
||||
"msr cntps_ctl_el1, %[ctl]"
|
||||
#else
|
||||
"msr cntp_ctl_el0, %[ctl]"
|
||||
#endif
|
||||
@@ -102,6 +108,8 @@ void arm_generic_timer_get_config( uint32_t *frequency, uint32_t *irq )
|
||||
|
||||
#ifdef ARM_GENERIC_TIMER_USE_VIRTUAL
|
||||
*irq = BSP_TIMER_VIRT_PPI;
|
||||
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
|
||||
*irq = BSP_TIMER_PHYS_S_PPI;
|
||||
#else
|
||||
*irq = BSP_TIMER_PHYS_NS_PPI;
|
||||
#endif
|
||||
|
||||
@@ -51,6 +51,7 @@ extern "C" {
|
||||
|
||||
/* Interrupts vectors */
|
||||
#define BSP_TIMER_VIRT_PPI 27
|
||||
#define BSP_TIMER_PHYS_S_PPI 29
|
||||
#define BSP_TIMER_PHYS_NS_PPI 30
|
||||
#define VERSAL_IRQ_UART_0 50
|
||||
#define VERSAL_IRQ_UART_1 51
|
||||
|
||||
17
spec/build/bsps/aarch64/optgtuseps.yml
Normal file
17
spec/build/bsps/aarch64/optgtuseps.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
|
||||
actions:
|
||||
- get-boolean: null
|
||||
- define-condition: null
|
||||
build-type: option
|
||||
copyrights:
|
||||
- Copyright (C) 2021 Gedare Bloom <gedare@rtems.org>
|
||||
default: false
|
||||
default-by-variant: []
|
||||
description: |
|
||||
If set to true, and AARCH64_GENERIC_TIMER_USE_VIRTUAL is false, then
|
||||
the clock driver uses the Physical Secure Timer of the AARCH64
|
||||
Generic Timer, otherwise it uses the Physical Non-Secure Timer (EL1).
|
||||
enabled-by: true
|
||||
links: []
|
||||
name: AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE
|
||||
type: build
|
||||
16
spec/build/bsps/aarch64/optgtusevirt.yml
Normal file
16
spec/build/bsps/aarch64/optgtusevirt.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
|
||||
actions:
|
||||
- get-boolean: null
|
||||
- define-condition: null
|
||||
build-type: option
|
||||
copyrights:
|
||||
- Copyright (C) 2021 Gedare Bloom <gedare@rtems.org>
|
||||
default: false
|
||||
default-by-variant: []
|
||||
description: |
|
||||
If set to true, then the clock driver uses the Virtual Timer of the AARCH64
|
||||
Generic Timer, otherwise it uses the Physical Non-Secure Timer (EL1).
|
||||
enabled-by: true
|
||||
links: []
|
||||
name: AARCH64_GENERIC_TIMER_USE_VIRTUAL
|
||||
type: build
|
||||
Reference in New Issue
Block a user