]> git.baikalelectronics.ru Git - arm-tf.git/commit
fix(bl31): allow use of EHF with S-EL2 SPMC
authorRaghu Krishnamurthy <raghu.ncstate@gmail.com>
Mon, 25 Jul 2022 21:44:33 +0000 (14:44 -0700)
committerRaghu Krishnamurthy <raghu.ncstate@gmail.com>
Tue, 30 Aug 2022 15:29:25 +0000 (08:29 -0700)
commit7c2fe62f1347bb94d82e9fdd3bc5eaebedaf0bc7
tree64db9c876c12a98c59bc100c0ee68d6d09919d93
parent6a5022278b0bda10708534ef5cc6c1b5256081ee
fix(bl31): allow use of EHF with S-EL2 SPMC

Currently, when SPMC at S-EL2 is used, we cannot use the RAS framework
to handle Group 0 interrupts. This is required on platforms where first
level of triaging needs to occur at EL3, before forwarding RAS handling
to a secure partition running atop an SPMC (hafnium).
The RAS framework depends on EHF and EHF registers for Group 0
interrupts to be trapped to EL3 when execution is both in secure world
and normal world. However, an FF-A compliant SPMC requires secure
interrupts to be trapped by the SPMC when execution is in S-EL0/S-EL1.
Consequently, the SPMC (hafnium) is incompatible with EHF, since it is
not re-entrant, and a Group 0 interrupt trapped to EL3 when execution is
in secure world, cannot be forwarded to an SP running atop SPMC.
This patch changes EHF to only register for Group 0 interrupts to be
trapped to EL3 when execution is in normal world and also makes it a
valid routing model to do so, when EL3_EXCEPTION_HANDLING is set (when
enabling the RAS framework).

Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com>
Change-Id: I72d4cf4d8ecc549a832d1c36055fbe95866747fe
bl31/ehf.c
docs/getting_started/build-options.rst
include/bl31/interrupt_mgmt.h