summaryrefslogtreecommitdiff
path: root/libcpu
diff options
context:
space:
mode:
Diffstat (limited to 'libcpu')
-rw-r--r--libcpu/aarch64/common/gic.c2
-rw-r--r--libcpu/aarch64/common/gicv3.c2
-rw-r--r--libcpu/arm/cortex-a/gic.c2
-rw-r--r--libcpu/arm/cortex-a/gicv3.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/libcpu/aarch64/common/gic.c b/libcpu/aarch64/common/gic.c
index 3cb9052cfc..498cc9ea00 100644
--- a/libcpu/aarch64/common/gic.c
+++ b/libcpu/aarch64/common/gic.c
@@ -195,7 +195,7 @@ void arm_gic_set_configuration(rt_uint64_t index, int irq, uint32_t config)
shift = (irq % 16U) << 1U;
icfgr &= (~(3U << shift));
- icfgr |= (config << shift);
+ icfgr |= (config << (shift + 1));
GIC_DIST_CONFIG(_gic_table[index].dist_hw_base, irq) = icfgr;
}
diff --git a/libcpu/aarch64/common/gicv3.c b/libcpu/aarch64/common/gicv3.c
index eb7c8f2f6e..18fdcddc7f 100644
--- a/libcpu/aarch64/common/gicv3.c
+++ b/libcpu/aarch64/common/gicv3.c
@@ -308,7 +308,7 @@ void arm_gic_set_configuration(rt_uint64_t index, int irq, rt_uint32_t config)
shift = (irq % 16) << 1;
icfgr &= (~(3 << shift));
- icfgr |= (config << shift);
+ icfgr |= (config << (shift + 1));
GIC_DIST_CONFIG(_gic_table[index].dist_hw_base, irq) = icfgr;
}
diff --git a/libcpu/arm/cortex-a/gic.c b/libcpu/arm/cortex-a/gic.c
index e65bb5413e..072ddc302b 100644
--- a/libcpu/arm/cortex-a/gic.c
+++ b/libcpu/arm/cortex-a/gic.c
@@ -193,7 +193,7 @@ void arm_gic_set_configuration(rt_uint32_t index, int irq, rt_uint32_t config)
shift = (irq % 16U) << 1U;
icfgr &= (~(3U << shift));
- icfgr |= (config << shift);
+ icfgr |= (config << (shift + 1));
GIC_DIST_CONFIG(_gic_table[index].dist_hw_base, irq) = icfgr;
}
diff --git a/libcpu/arm/cortex-a/gicv3.c b/libcpu/arm/cortex-a/gicv3.c
index 5039b0c5a1..7d0b9f28f5 100644
--- a/libcpu/arm/cortex-a/gicv3.c
+++ b/libcpu/arm/cortex-a/gicv3.c
@@ -201,7 +201,7 @@ void arm_gic_set_configuration(rt_uint32_t index, int irq, rt_uint32_t config)
shift = (irq % 16U) << 1U;
icfgr &= (~(3U << shift));
- icfgr |= (config << shift);
+ icfgr |= (config << (shift + 1));
GIC_DIST_CONFIG(_gic_table[index].dist_hw_base, irq) = icfgr;
}