summaryrefslogtreecommitdiff
path: root/docs
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
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')
-rw-r--r--docs/firmware-design.md11
-rw-r--r--docs/user-guide.md7
2 files changed, 13 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
diff --git a/docs/user-guide.md b/docs/user-guide.md
index 41e7606..ef5de71 100644
--- a/docs/user-guide.md
+++ b/docs/user-guide.md
@@ -186,6 +186,13 @@ performed.
value of `DEBUG` - i.e. by default this is only enabled for a debug
build of the firmware.
+* `TSP_INIT_ASYNC`: Choose BL3-2 initialization method as asynchronous or
+ synchronous, e.g. "(see "Initializing a BL3-2 Image" section in [Firmware
+ Design])". It can take the value 0 (BL3-2 is initialized using
+ synchronous method) or 1 (BL3-2 is initialized using asynchronous method).
+ Default is 0.
+
+
### Creating a Firmware Image Package
FIPs are automatically created as part of the build instructions described in