summaryrefslogtreecommitdiff
path: root/libcpu
diff options
context:
space:
mode:
Diffstat (limited to 'libcpu')
-rw-r--r--libcpu/arm/realview-a8-vmm/context_gcc.S3
-rw-r--r--libcpu/arm/realview-a8-vmm/gic.c3
2 files changed, 3 insertions, 3 deletions
diff --git a/libcpu/arm/realview-a8-vmm/context_gcc.S b/libcpu/arm/realview-a8-vmm/context_gcc.S
index 9bb31e3f10..dba0095632 100644
--- a/libcpu/arm/realview-a8-vmm/context_gcc.S
+++ b/libcpu/arm/realview-a8-vmm/context_gcc.S
@@ -57,9 +57,6 @@ rt_hw_context_switch_to:
ldmfd sp!, {r4} @ pop new task spsr
msr spsr_cxsf, r4
- bic r4, r4, #0x20 @ must be ARM mode
- msr cpsr_cxsf, r4
-
ldmfd sp!, {r0-r12, lr, pc}^ @ pop new task r0-r12, lr & pc
.section .bss.share.isr
diff --git a/libcpu/arm/realview-a8-vmm/gic.c b/libcpu/arm/realview-a8-vmm/gic.c
index db26fc5dcf..4cff1bad3e 100644
--- a/libcpu/arm/realview-a8-vmm/gic.c
+++ b/libcpu/arm/realview-a8-vmm/gic.c
@@ -249,6 +249,9 @@ int arm_gic_dist_init(rt_uint32_t index, rt_uint32_t dist_base, int irq_start)
for (i = 0; i < _gic_max_irq; i += 32)
GIC_DIST_IGROUP(dist_base, i) = 0xffffffff;
+ /* Enable group0 and group1 interrupt forwarding. */
+ GIC_DIST_CTRL(dist_base) = 0x03;
+
return 0;
}