mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-08 18:41:22 +00:00
Docs: Clarify IRQ/FIQ handler API in Interrupt Design Guide
The API description currently states that interrupt handlers (interrupt_type_handler_t pointers) SHOULD return a pointer to the target cpu_context. This patch rewords the description of the interrupts handlers to state that it MUST return a pointer to the target security context. It also warns about potential portability issue. Specifically, this pointer is not used on AArch64 and calls to context library APIs must be used to ask BL31 to return to a specific context. However, this could change in the future and interrupt handlers must always return the pointer. Change-Id: I3f82a046de4d7a5b51a8cbebe7eb2a00dbbdb4f0 Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
This commit is contained in:
parent
90d2956aea
commit
94a8ca24cb
1 changed files with 22 additions and 16 deletions
|
@ -358,10 +358,16 @@ The `handle` parameter points to the `cpu_context` structure of the current CPU
|
|||
for the security state specified in the `flags` parameter.
|
||||
|
||||
Once the handler routine completes, execution will return to either the secure
|
||||
or non-secure state. The handler routine should return a pointer to
|
||||
`cpu_context` structure of the current CPU for the target security state. It
|
||||
should treat all error conditions as critical errors and take appropriate action
|
||||
within its implementation e.g. use assertion failures.
|
||||
or non-secure state. The handler routine must return a pointer to
|
||||
`cpu_context` structure of the current CPU for the target security state. On
|
||||
AArch64, this return value is currently ignored by the caller as the
|
||||
appropriate `cpu_context` to be used is expected to be set by the handler
|
||||
via the context management library APIs.
|
||||
A portable interrupt handler implementation must set the target context both in
|
||||
the structure pointed to by the returned pointer and via the context management
|
||||
library APIs. The handler should treat all error conditions as critical errors
|
||||
and take appropriate action within its implementation e.g. use assertion
|
||||
failures.
|
||||
|
||||
The runtime firmware provides the following API for registering a handler for a
|
||||
particular type of interrupt. A Secure Payload Dispatcher service should use
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue