diff options
author | Soby Mathew <soby.mathew@arm.com> | 2018-02-21 15:48:03 +0000 |
---|---|---|
committer | Soby Mathew <soby.mathew@arm.com> | 2018-02-22 15:19:52 +0000 |
commit | 7af7038e87b133bb0de0240bb54f837ca79dbc3b (patch) | |
tree | b75b904b8a2f3058dd4055c88fc44c7225676147 /lib | |
parent | 4535554e681d2057825a7cb6d5ebc478ff4d0425 (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.S | 5 |
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 |