aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2013-01-07 13:50:44 +0000
committerMark Rutland <mark.rutland@arm.com>2013-06-05 13:56:14 +0100
commit85c331041d99a56c17a3723afa5d378acd2c82d6 (patch)
tree8ad1a207d005af11635b5496720218d7e53e2585
parentfc9e28de1da7c08886ee0cf46d5cbe74ea31b0fe (diff)
downloadboot-wrapper-aarch64-85c331041d99a56c17a3723afa5d378acd2c82d6.tar.gz
Use immediate offsets rather than post-increment
When we set the GICD_IGROUPRn registers, we have a dangling post-increment at the end which is never useful, being overwritten in every path. As we're only writing to 3 registers, the offsets of which can be represented in immediates, use movs with immediate offsets to perform the writes. Reported-by: Nigel Stephens <nigel.stephens@arm.com> Signed-off-by: Mark Rutland <mark.rutland@arm.com>
-rw-r--r--boot.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/boot.S b/boot.S
index 7c28e84..95dc41e 100644
--- a/boot.S
+++ b/boot.S
@@ -43,10 +43,10 @@ _start:
1: ldr x1, =GIC_DIST_BASE + 0x80 // GICD_IGROUPR
mov w0, #~0 // Grp1 interrupts
- str w0, [x1], #4
+ str w0, [x1]
b.ne 2f // Only local interrupts for secondary CPUs
- str w0, [x1], #4
- str w0, [x1], #4
+ str w0, [x1, #4]
+ str w0, [x1, #8]
2: ldr x1, =GIC_CPU_BASE // GICC_CTLR
mov w0, #3 // EnableGrp0 | EnableGrp1