mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-26 23:04:50 +00:00
Add optional bl1_plat_prepare_exit() API
This patch adds an optional API to the platform port: void bl1_plat_prepare_exit(void); This function is called prior to exiting BL1 in response to the RUN_IMAGE_SMC request raised by BL2. It should be used to perform platform specific clean up or bookkeeping operations before transferring control to the next image. A weak empty definition of this function has been provided to preserve platform backwards compatibility. Change-Id: Iec09697de5c449ae84601403795cdb6aca166ba1
This commit is contained in:
parent
1fe4d4537e
commit
e3f6712409
3 changed files with 23 additions and 0 deletions
|
@ -207,6 +207,8 @@ func smc_handler64
|
||||||
bl disable_mmu_icache_el3
|
bl disable_mmu_icache_el3
|
||||||
tlbi alle3
|
tlbi alle3
|
||||||
|
|
||||||
|
bl bl1_plat_prepare_exit
|
||||||
|
|
||||||
ldp x6, x7, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x30)]
|
ldp x6, x7, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x30)]
|
||||||
ldp x4, x5, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x20)]
|
ldp x4, x5, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x20)]
|
||||||
ldp x2, x3, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x10)]
|
ldp x2, x3, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x10)]
|
||||||
|
|
|
@ -788,6 +788,17 @@ the entry point set by loader and also set the security state and SPSR which
|
||||||
represents the entry point system state for BL2.
|
represents the entry point system state for BL2.
|
||||||
|
|
||||||
|
|
||||||
|
### Function : bl1_plat_prepare_exit() [optional]
|
||||||
|
|
||||||
|
Argument : void
|
||||||
|
Return : void
|
||||||
|
|
||||||
|
This function is called prior to exiting BL1 in response to the `RUN_IMAGE_SMC`
|
||||||
|
request raised by BL2. It should be used to perform platform specific clean up
|
||||||
|
or bookkeeping operations before transferring control to the next image. This
|
||||||
|
function runs with MMU disabled.
|
||||||
|
|
||||||
|
|
||||||
3.2 Boot Loader Stage 2 (BL2)
|
3.2 Boot Loader Stage 2 (BL2)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
.weak plat_crash_console_putc
|
.weak plat_crash_console_putc
|
||||||
.weak plat_reset_handler
|
.weak plat_reset_handler
|
||||||
.weak plat_disable_acp
|
.weak plat_disable_acp
|
||||||
|
.weak bl1_plat_prepare_exit
|
||||||
|
|
||||||
#if !ENABLE_PLAT_COMPAT
|
#if !ENABLE_PLAT_COMPAT
|
||||||
.globl platform_get_core_pos
|
.globl platform_get_core_pos
|
||||||
|
@ -111,3 +112,12 @@ endfunc plat_reset_handler
|
||||||
func plat_disable_acp
|
func plat_disable_acp
|
||||||
ret
|
ret
|
||||||
endfunc plat_disable_acp
|
endfunc plat_disable_acp
|
||||||
|
|
||||||
|
/* -----------------------------------------------------
|
||||||
|
* void bl1_plat_prepare_exit(void);
|
||||||
|
* Called before exiting BL1. Default: do nothing
|
||||||
|
* -----------------------------------------------------
|
||||||
|
*/
|
||||||
|
func bl1_plat_prepare_exit
|
||||||
|
ret
|
||||||
|
endfunc bl1_plat_prepare_exit
|
||||||
|
|
Loading…
Add table
Reference in a new issue