Merge pull request #1904 from lmayencourt/lm/move_pie_fixup

PIE: Fix reloc at the beginning of bl31 entrypoint
This commit is contained in:
Soby Mathew 2019-03-25 11:00:46 +00:00 committed by GitHub
commit 2c269b4736
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,7 +23,6 @@
*/
func bl31_entrypoint
#if !RESET_TO_BL31
/* ---------------------------------------------------------------
* Stash the previous bootloader arguments x0 - x3 for later use.
* ---------------------------------------------------------------
@ -33,6 +32,18 @@ func bl31_entrypoint
mov x22, x2
mov x23, x3
/* --------------------------------------------------------------------
* If PIE is enabled, fixup the Global descriptor Table and dynamic
* relocations
* --------------------------------------------------------------------
*/
#if ENABLE_PIE
mov_imm x0, BL31_BASE
mov_imm x1, BL31_LIMIT
bl fixup_gdt_reloc
#endif /* ENABLE_PIE */
#if !RESET_TO_BL31
/* ---------------------------------------------------------------------
* For !RESET_TO_BL31 systems, only the primary CPU ever reaches
* bl31_entrypoint() during the cold boot flow, so the cold/warm boot
@ -50,6 +61,7 @@ func bl31_entrypoint
_init_c_runtime=1 \
_exception_vectors=runtime_exceptions
#else
/* ---------------------------------------------------------------------
* For RESET_TO_BL31 systems which have a programmable reset address,
* bl31_entrypoint() is executed only on the cold boot path so we can
@ -76,17 +88,6 @@ func bl31_entrypoint
mov x23, 0
#endif /* RESET_TO_BL31 */
/* --------------------------------------------------------------------
* If PIE is enabled, fixup the Global descriptor Table and dynamic
* relocations
* --------------------------------------------------------------------
*/
#if ENABLE_PIE
mov_imm x0, BL31_BASE
mov_imm x1, BL31_LIMIT
bl fixup_gdt_reloc
#endif /* ENABLE_PIE */
/* --------------------------------------------------------------------
* Perform BL31 setup
* --------------------------------------------------------------------