summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandrine Bailleux <sandrine.bailleux@arm.com>2015-11-10 15:01:57 +0000
committerAchin Gupta <achin.gupta@arm.com>2015-11-26 21:32:04 +0000
commit862b5dc2d1f45b0195678dcb6556b0721444505f (patch)
tree8dc715be3e0bffcde17c544557aa88080add2660
parent35e8c7661ae12ac95bbf394b2b3d19d2c7d03369 (diff)
Pass the entry point info to bl1_plat_prepare_exit()
This patch modifies the prototype of the bl1_plat_prepare_exit() platform API to pass the address of the entry point info structure received from BL2. The structure contains information that can be useful, depending on the kind of clean up or bookkeeping operations to perform. The weak implementation of this function ignores this argument to preserve platform backwards compatibility. NOTE: THIS PATCH MAY BREAK PLATFORM PORTS THAT ARE RELYING ON THE FORMER PROTOTYPE OF THE BL1_PLAT_PREPARE_EXIT() API. Change-Id: I3fc18f637de06c85719c4ee84c85d6a4572a0fdb
-rw-r--r--bl1/aarch64/bl1_exceptions.S1
-rw-r--r--docs/porting-guide.md9
-rw-r--r--plat/common/aarch64/platform_helpers.S2
3 files changed, 7 insertions, 5 deletions
diff --git a/bl1/aarch64/bl1_exceptions.S b/bl1/aarch64/bl1_exceptions.S
index ee66ef00..5415d395 100644
--- a/bl1/aarch64/bl1_exceptions.S
+++ b/bl1/aarch64/bl1_exceptions.S
@@ -213,6 +213,7 @@ debug_loop:
b debug_loop
#endif
+ mov x0, x20
bl bl1_plat_prepare_exit
ldp x6, x7, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x30)]
diff --git a/docs/porting-guide.md b/docs/porting-guide.md
index 6e71025c..2c828c27 100644
--- a/docs/porting-guide.md
+++ b/docs/porting-guide.md
@@ -810,13 +810,14 @@ represents the entry point system state for BL2.
### Function : bl1_plat_prepare_exit() [optional]
- Argument : void
+ Argument : entry_point_info_t *
Return : void
-This function is called prior to exiting BL1 in response to the `RUN_IMAGE_SMC`
+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.
+or bookkeeping operations before transferring control to the next image. It
+receives the address of the `entry_point_info_t` structure passed from BL2.
+This function runs with MMU disabled.
3.2 Boot Loader Stage 2 (BL2)
diff --git a/plat/common/aarch64/platform_helpers.S b/plat/common/aarch64/platform_helpers.S
index 56b88bc0..29f01ce9 100644
--- a/plat/common/aarch64/platform_helpers.S
+++ b/plat/common/aarch64/platform_helpers.S
@@ -115,7 +115,7 @@ func plat_disable_acp
endfunc plat_disable_acp
/* -----------------------------------------------------
- * void bl1_plat_prepare_exit(void);
+ * void bl1_plat_prepare_exit(entry_point_info_t *ep_info);
* Called before exiting BL1. Default: do nothing
* -----------------------------------------------------
*/