summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSoby Mathew <soby.mathew@arm.com>2018-02-21 15:48:03 +0000
committerSoby Mathew <soby.mathew@arm.com>2018-02-22 15:19:52 +0000
commit7af7038e87b133bb0de0240bb54f837ca79dbc3b (patch)
treeb75b904b8a2f3058dd4055c88fc44c7225676147 /lib
parent4535554e681d2057825a7cb6d5ebc478ff4d0425 (diff)
Fixup AArch32 errata printing framework
The AArch32 assembly implementation of `print_errata_status` did not save a register which was getting clobbered by a `get_cpu_ops_ptr`. This patch fixes that. Change-Id: Id0711e46b7c685a18a10328d4b513e952a5d860b Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/cpus/aarch32/cpu_helpers.S5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/cpus/aarch32/cpu_helpers.S b/lib/cpus/aarch32/cpu_helpers.S
index 72e42c67..ddc08084 100644
--- a/lib/cpus/aarch32/cpu_helpers.S
+++ b/lib/cpus/aarch32/cpu_helpers.S
@@ -206,7 +206,8 @@ endfunc cpu_rev_var_hs
*/
.globl print_errata_status
func print_errata_status
- push {r4, lr}
+ /* r12 is pushed only for the sake of 8-byte stack alignment */
+ push {r4, r5, r12, lr}
#ifdef IMAGE_BL1
/*
* BL1 doesn't have per-CPU data. So retrieve the CPU operations
@@ -241,6 +242,6 @@ func print_errata_status
blxne r4
1:
#endif
- pop {r4, pc}
+ pop {r4, r5, r12, pc}
endfunc print_errata_status
#endif