diff options
author | davidcunado-arm <david.cunado@arm.com> | 2018-03-06 19:39:48 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-06 19:39:48 +0000 |
commit | 887f24029eeda1414ca77fc9d1375379054341a4 (patch) | |
tree | 07fe559c1686b3a1667bf3dbf5a143686d7a1f54 | |
parent | f918bca3b7cbbb67e4e165c17591dd627804a777 (diff) | |
parent | a24dbdcc12990c085f55795b5c0c9d6746bb0433 (diff) |
Merge pull request #1301 from ldebieve/lde/issue-tf#562
bl2-el3: Fix bl32 lr_svc used for bl33 entry address
-rw-r--r-- | bl2/aarch32/bl2_el3_entrypoint.S | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/bl2/aarch32/bl2_el3_entrypoint.S b/bl2/aarch32/bl2_el3_entrypoint.S index 997b069c..0c7b0645 100644 --- a/bl2/aarch32/bl2_el3_entrypoint.S +++ b/bl2/aarch32/bl2_el3_entrypoint.S @@ -78,6 +78,11 @@ func bl2_run_next_image ldr r1, [r8, #(ENTRY_POINT_INFO_PC_OFFSET + 4)] msr spsr, r1 + /* Some BL32 stages expect lr_svc to provide the BL33 entry address */ + cps #MODE32_svc + ldr lr, [r8, #ENTRY_POINT_INFO_LR_SVC_OFFSET] + cps #MODE32_mon + add r8, r8, #ENTRY_POINT_INFO_ARGS_OFFSET ldm r8, {r0, r1, r2, r3} eret |