summaryrefslogtreecommitdiff
path: root/docs/firmware-design.md
diff options
context:
space:
mode:
authorVikram Kanigiri <vikram.kanigiri@arm.com>2014-07-15 16:49:22 +0100
committerVikram Kanigiri <vikram.kanigiri@arm.com>2014-08-01 09:48:07 +0100
commitfaaa2e7644ec6101de0e7d4f35b9dd2999f110a7 (patch)
tree8570f7a45b30ac70b8f6cdd326d8bf71c1666033 /docs/firmware-design.md
parent50e27dadbcc4b442f1c5ceb343c6d55783afed54 (diff)
Support asynchronous method for BL3-2 initialization
This patch adds support for BL3-2 initialization by asynchronous method where BL3-1 transfers control to BL3-2 using world switch. After BL3-2 initialization, it transfers control to BL3-3 via SPD service handler. The SPD service handler initializes the CPU context to BL3-3 entrypoint depending on the return function indentifier from TSP initialization. Fixes ARM-software/TF-issues#184 Change-Id: I7b135c2ceeb356d3bb5b6a287932e96ac67c7a34
Diffstat (limited to 'docs/firmware-design.md')
-rw-r--r--docs/firmware-design.md11
1 files changed, 6 insertions, 5 deletions
diff --git a/docs/firmware-design.md b/docs/firmware-design.md
index 9bdfefb..3203a52 100644
--- a/docs/firmware-design.md
+++ b/docs/firmware-design.md
@@ -811,10 +811,10 @@ and is registered using the `bl31_register_bl32_init()` function.
Trusted Firmware supports two approaches for the SPD to pass control to BL3-2
before returning through EL3 and running the non-trusted firmware (BL3-3):
-1. In the BL3-2 initialization function, set up a secure context (see below
- for more details of CPU context support) for this CPU and use
- `bl31_set_next_image_type()` to request that the exit from `bl31_main()` is
- to the BL3-2 entrypoint in Secure-EL1.
+1. In the BL3-2 setup function, use `bl31_set_next_image_type()` to
+ request that the exit from `bl31_main()` is to the BL3-2 entrypoint in
+ Secure-EL1. BL3-1 will exit to BL3-2 using the asynchronous method by
+ calling bl31_prepare_next_image_entry() and el3_exit().
When the BL3-2 has completed initialization at Secure-EL1, it returns to
BL3-1 by issuing an SMC, using a Function ID allocated to the SPD. On
@@ -824,7 +824,8 @@ before returning through EL3 and running the non-trusted firmware (BL3-3):
the normal world firmware BL3-3. On return from the handler the framework
will exit to EL2 and run BL3-3.
-2. In the BL3-2 initialization function, use an SPD-defined mechanism to
+2. The BL3-2 setup function registers a initialization function using
+ `bl31_register_bl32_init()` which provides a SPD-defined mechanism to
invoke a 'world-switch synchronous call' to Secure-EL1 to run the BL3-2
entrypoint.
NOTE: The Test SPD service included with the Trusted Firmware provides one