diff options
author | Vikram Kanigiri <vikram.kanigiri@arm.com> | 2014-07-15 16:49:22 +0100 |
---|---|---|
committer | Vikram Kanigiri <vikram.kanigiri@arm.com> | 2014-08-01 09:48:07 +0100 |
commit | faaa2e7644ec6101de0e7d4f35b9dd2999f110a7 (patch) | |
tree | 8570f7a45b30ac70b8f6cdd326d8bf71c1666033 /docs | |
parent | 50e27dadbcc4b442f1c5ceb343c6d55783afed54 (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.md | 11 | ||||
-rw-r--r-- | docs/user-guide.md | 7 |
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 |