mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 01:24:27 +00:00
feat(bl31): aarch64: RESET_TO_BL31_WITH_PARAMS
It is not always the case that RESET_TO_BL31 enabled platforms don't execute a bootloader before BL31. For those use cases, being able to receive arguments from that first loader (i.e: a DTB with TPM logs) might be necessary feature. This code has been validated on iMX8mm. Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Change-Id: Ibf00c3867cb1d1012b8b376e64ccaeca1c9d2bff
This commit is contained in:
parent
e96ffdc8b4
commit
25844ff728
3 changed files with 8 additions and 1 deletions
2
Makefile
2
Makefile
|
@ -996,6 +996,7 @@ $(eval $(call assert_booleans,\
|
|||
PROGRAMMABLE_RESET_ADDRESS \
|
||||
PSCI_EXTENDED_STATE_ID \
|
||||
RESET_TO_BL31 \
|
||||
RESET_TO_BL31_WITH_PARAMS \
|
||||
SAVE_KEYS \
|
||||
SEPARATE_CODE_AND_RODATA \
|
||||
SEPARATE_BL2_NOLOAD_REGION \
|
||||
|
@ -1127,6 +1128,7 @@ $(eval $(call add_defines,\
|
|||
PSCI_EXTENDED_STATE_ID \
|
||||
RAS_EXTENSION \
|
||||
RESET_TO_BL31 \
|
||||
RESET_TO_BL31_WITH_PARAMS \
|
||||
SEPARATE_CODE_AND_RODATA \
|
||||
SEPARATE_BL2_NOLOAD_REGION \
|
||||
SEPARATE_NOBITS_REGION \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2021, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2022, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -67,6 +67,7 @@ func bl31_entrypoint
|
|||
_exception_vectors=runtime_exceptions \
|
||||
_pie_fixup_size=BL31_LIMIT - BL31_BASE
|
||||
|
||||
#if !RESET_TO_BL31_WITH_PARAMS
|
||||
/* ---------------------------------------------------------------------
|
||||
* For RESET_TO_BL31 systems, BL31 is the first bootloader to run so
|
||||
* there's no argument to relay from a previous bootloader. Zero the
|
||||
|
@ -77,6 +78,7 @@ func bl31_entrypoint
|
|||
mov x21, 0
|
||||
mov x22, 0
|
||||
mov x23, 0
|
||||
#endif /* RESET_TO_BL31_WITH_PARAMS */
|
||||
#endif /* RESET_TO_BL31 */
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
|
|
|
@ -254,6 +254,9 @@ RAS_EXTENSION := 0
|
|||
# By default, BL1 acts as the reset handler, not BL31
|
||||
RESET_TO_BL31 := 0
|
||||
|
||||
# By default, clear the input registers when RESET_TO_BL31 is enabled
|
||||
RESET_TO_BL31_WITH_PARAMS := 0
|
||||
|
||||
# For Chain of Trust
|
||||
SAVE_KEYS := 0
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue