mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-09 02:51:21 +00:00
feat: pass SMCCCv1.3 SVE hint bit to dispatchers
SMCCCv1.3 introduces the SVE hint bit added to the SMC FID (bit 16) denoting that the world issuing an SMC doesn't expect the callee to preserve the SVE state (FFR, predicates, Zn vector bits greater than 127). Update the generic SMC handler to copy the SVE hint bit state to SMC flags and mask out the bit by default for the services called by the standard dispatcher. It is permitted by the SMCCC standard to ignore the bit as long as the SVE state is preserved. In any case a callee must preserve the NEON state (FPCR/FPSR, Vn 128b vectors) whichever the SVE hint bit state. Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: I2b163ed83dc311b8f81f96b23c942829ae9fa1b5
This commit is contained in:
parent
54b3fc63e4
commit
0fe7b9f2bc
3 changed files with 28 additions and 4 deletions
|
@ -990,9 +990,10 @@ The service's ``handle()`` callback is provided with five of the SMC parameters
|
|||
directly, the others are saved into memory for retrieval (if needed) by the
|
||||
handler. The handler is also provided with an opaque ``handle`` for use with the
|
||||
supporting library for parameter retrieval, setting return values and context
|
||||
manipulation; and with ``flags`` indicating the security state of the caller. The
|
||||
framework finally sets up the execution stack for the handler, and invokes the
|
||||
services ``handle()`` function.
|
||||
manipulation. The ``flags`` parameter indicates the security state of the caller
|
||||
and the state of the SVE hint bit per the SMCCCv1.3. The framework finally sets
|
||||
up the execution stack for the handler, and invokes the services ``handle()``
|
||||
function.
|
||||
|
||||
On return from the handler the result registers are populated in X0-X7 as needed
|
||||
before restoring the stack and CPU state and returning from the original SMC.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue