summaryrefslogtreecommitdiffstats
path: root/bsps/arm/shared
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-04-12 07:55:31 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-04-12 09:44:48 +0200
commitad40d05eba230a2c7b78cea9b8c612cc84de5b5e (patch)
treec9df1fcbc393c49e88230afcb129bacee7941e3f /bsps/arm/shared
parentscore: Improve _SMP_Multicast_action() (diff)
downloadrtems-ad40d05eba230a2c7b78cea9b8c612cc84de5b5e.tar.bz2
score: Remove _SMP_Before_multitasking_action()
Use _SMP_Multicast_action() instead.
Diffstat (limited to 'bsps/arm/shared')
-rw-r--r--bsps/arm/shared/clock/clock-a9mpcore.c15
-rw-r--r--bsps/arm/shared/clock/clock-generic-timer.c15
2 files changed, 14 insertions, 16 deletions
diff --git a/bsps/arm/shared/clock/clock-a9mpcore.c b/bsps/arm/shared/clock/clock-a9mpcore.c
index 05d3c0961d..2907dff800 100644
--- a/bsps/arm/shared/clock/clock-a9mpcore.c
+++ b/bsps/arm/shared/clock/clock-a9mpcore.c
@@ -102,11 +102,13 @@ typedef struct {
static void a9mpcore_clock_secondary_action(void *arg)
{
- volatile a9mpcore_gt *gt = A9MPCORE_GT;
- a9mpcore_clock_init_data *init_data = arg;
+ if (!_Per_CPU_Is_boot_processor(_Per_CPU_Get())) {
+ volatile a9mpcore_gt *gt = A9MPCORE_GT;
+ a9mpcore_clock_init_data *init_data = arg;
- a9mpcore_clock_gt_init(gt, init_data->cmpval, init_data->interval);
- bsp_interrupt_vector_enable(A9MPCORE_IRQ_GT);
+ a9mpcore_clock_gt_init(gt, init_data->cmpval, init_data->interval);
+ bsp_interrupt_vector_enable(A9MPCORE_IRQ_GT);
+ }
}
#endif
@@ -122,10 +124,7 @@ static void a9mpcore_clock_secondary_initialization(
.interval = interval
};
- _SMP_Before_multitasking_action_broadcast(
- a9mpcore_clock_secondary_action,
- &init_data
- );
+ _SMP_Multicast_action(NULL, a9mpcore_clock_secondary_action, &init_data);
if (cmpval - a9mpcore_clock_get_counter(gt) >= interval) {
bsp_fatal(BSP_ARM_A9MPCORE_FATAL_CLOCK_SMP_INIT);
diff --git a/bsps/arm/shared/clock/clock-generic-timer.c b/bsps/arm/shared/clock/clock-generic-timer.c
index 2d17ada0b7..e851e02104 100644
--- a/bsps/arm/shared/clock/clock-generic-timer.c
+++ b/bsps/arm/shared/clock/clock-generic-timer.c
@@ -122,21 +122,20 @@ static void arm_gt_clock_gt_init(uint64_t cval)
#if defined(RTEMS_SMP) && !defined(CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR)
static void arm_gt_clock_secondary_action(void *arg)
{
- uint64_t *cval;
+ if (!_Per_CPU_Is_boot_processor(_Per_CPU_Get())) {
+ uint64_t *cval;
- cval = arg;
- arm_gt_clock_gt_init(*cval);
- bsp_interrupt_vector_enable(arm_gt_clock_instance.irq);
+ cval = arg;
+ arm_gt_clock_gt_init(*cval);
+ bsp_interrupt_vector_enable(arm_gt_clock_instance.irq);
+ }
}
#endif
static void arm_gt_clock_secondary_initialization(uint64_t cval)
{
#if defined(RTEMS_SMP) && !defined(CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR)
- _SMP_Before_multitasking_action_broadcast(
- arm_gt_clock_secondary_action,
- &cval
- );
+ _SMP_Multicast_action(NULL, arm_gt_clock_secondary_action, &cval);
#endif
}