summaryrefslogtreecommitdiffstats
path: root/bsps/arm/shared
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-02-27 15:10:53 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-02-28 11:50:18 +0100
commite33be09cfbf549228fea16f4421b277bfb9ae7dc (patch)
tree95e0ce523a2aa7525b39274edcb76206089ec133 /bsps/arm/shared
parentRemove explicit file names from @file (diff)
downloadrtems-e33be09cfbf549228fea16f4421b277bfb9ae7dc.tar.bz2
bsps/arm: Support GIC group 0/1
Diffstat (limited to 'bsps/arm/shared')
-rw-r--r--bsps/arm/shared/irq/irq-gic.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/bsps/arm/shared/irq/irq-gic.c b/bsps/arm/shared/irq/irq-gic.c
index ea4b6ef06a..6f525b753d 100644
--- a/bsps/arm/shared/irq/irq-gic.c
+++ b/bsps/arm/shared/irq/irq-gic.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2013, 2019 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -157,6 +157,42 @@ rtems_status_code arm_gic_irq_get_priority(
return sc;
}
+rtems_status_code arm_gic_irq_set_group(
+ rtems_vector_number vector,
+ gic_group group
+)
+{
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
+
+ if (bsp_interrupt_is_valid_vector(vector)) {
+ volatile gic_dist *dist = ARM_GIC_DIST;
+
+ gic_id_set_group(dist, vector, group);
+ } else {
+ sc = RTEMS_INVALID_ID;
+ }
+
+ return sc;
+}
+
+rtems_status_code arm_gic_irq_get_group(
+ rtems_vector_number vector,
+ gic_group *group
+)
+{
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
+
+ if (bsp_interrupt_is_valid_vector(vector)) {
+ volatile gic_dist *dist = ARM_GIC_DIST;
+
+ *group = gic_id_get_group(dist, vector);
+ } else {
+ sc = RTEMS_INVALID_ID;
+ }
+
+ return sc;
+}
+
void bsp_interrupt_set_affinity(
rtems_vector_number vector,
const Processor_mask *affinity