No description
Find a file
Raghu Krishnamurthy 7c2fe62f13 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
2022-08-30 08:29:25 -07:00
.husky build(hooks): add commitlint hook 2021-04-19 14:06:25 +01:00
bl1 fix(bl1): invalidate SP in data cache during secure SMC 2022-05-18 09:32:08 +01:00
bl2 fix(bl2): define RAM_NOLOAD for XIP 2022-03-31 14:52:04 +02:00
bl2u Avoid the use of linker *_SIZE__ macros 2021-04-21 15:05:57 +02:00
bl31 fix(bl31): allow use of EHF with S-EL2 SPMC 2022-08-30 08:29:25 -07:00
bl32 fix(security): update Cortex-A15 CPU lib files for CVE-2022-23960 2022-04-28 20:33:09 +02:00
common feat(bl): add interface to query TF-A semantic ver 2022-08-02 16:04:23 -05:00
docs fix(bl31): allow use of EHF with S-EL2 SPMC 2022-08-30 08:29:25 -07:00
drivers Merge changes from topic "st_fip_uuid" into integration 2022-08-01 16:45:49 +02:00
fdts refactor(stm32mp1-fdts): add missing spaces for consistent codestyle 2022-07-08 15:26:47 +02:00
include fix(bl31): allow use of EHF with S-EL2 SPMC 2022-08-30 08:29:25 -07:00
lib Merge "fix(errata): workaround for Neoverse-V1 erratum 1618635" into integration 2022-08-11 22:51:42 +02:00
licenses docs(license): rectify arm-gic.h license 2021-04-26 12:36:00 +01:00
make_helpers Merge "feat(bl): add interface to query TF-A semantic ver" into integration 2022-08-11 18:02:30 +02:00
plat Merge "fix(versal): use only one space for indentation" into integration 2022-08-08 00:00:44 +02:00
services fix(doc): document missing RMM-EL3 runtime services 2022-07-21 12:36:45 +01:00
tools Merge "fix(sptool): fix concurrency issue for SP packages" into integration 2022-06-29 15:27:32 +02:00
.checkpatch.conf Re-apply GIT_COMMIT_ID check for checkpatch 2019-07-12 11:06:24 +01:00
.commitlintrc.js build(commitlint): make the scope optional 2022-05-03 11:06:50 +02:00
.cz.json refactor(hooks): replace cz-conventional-changelog with cz-commitlint 2022-01-24 12:55:00 +00:00
.editorconfig .editorconfig: set max line length to 100 2020-12-03 15:39:23 +00:00
.gitignore feat(sptool): delete c version of the sptool 2022-05-04 15:37:47 +01:00
.gitreview Specify integration as the default branch for git-review 2020-04-02 07:57:17 +00:00
.versionrc.js docs(changelog): fix broken version bumping 2022-01-24 12:55:34 +00:00
changelog.yaml build(changelog): add stm32mp13 and stm32mp15 fdts scopes 2022-07-08 17:01:33 +02:00
dco.txt Drop requirement for CLA in contribution.md 2016-09-27 21:52:03 +01:00
license.rst doc: De-duplicate readme and license files 2019-10-08 16:36:15 +00:00
Makefile Merge "fix(build): disable default PIE when linking" into integration 2022-08-11 19:08:51 +02:00
package-lock.json docs(changelog): changelog for v2.7 release 2022-06-01 15:19:37 +01:00
package.json docs(changelog): changelog for v2.7 release 2022-06-01 15:19:37 +01:00
readme.rst doc: Formatting fixes for readme.rst 2019-10-09 15:37:59 +00:00

Trusted Firmware-A
==================

Trusted Firmware-A (TF-A) is a reference implementation of secure world software
for `Arm A-Profile architectures`_ (Armv8-A and Armv7-A), including an Exception
Level 3 (EL3) `Secure Monitor`_. It provides a suitable starting point for
productization of secure world boot and runtime firmware, in either the AArch32
or AArch64 execution states.

TF-A implements Arm interface standards, including:

-  `Power State Coordination Interface (PSCI)`_
-  `Trusted Board Boot Requirements CLIENT (TBBR-CLIENT)`_
-  `SMC Calling Convention`_
-  `System Control and Management Interface (SCMI)`_
-  `Software Delegated Exception Interface (SDEI)`_

The code is designed to be portable and reusable across hardware platforms and
software models that are based on the Armv8-A and Armv7-A architectures.

In collaboration with interested parties, we will continue to enhance TF-A
with reference implementations of Arm standards to benefit developers working
with Armv7-A and Armv8-A TrustZone technology.

Users are encouraged to do their own security validation, including penetration
testing, on any secure world code derived from TF-A.

More Info and Documentation
---------------------------

To find out more about Trusted Firmware-A, please `view the full documentation`_
that is available through `trustedfirmware.org`_.

--------------

*Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.*

.. _Armv7-A and Armv8-A: https://developer.arm.com/products/architecture/a-profile
.. _Secure Monitor: http://www.arm.com/products/processors/technologies/trustzone/tee-smc.php
.. _Power State Coordination Interface (PSCI): PSCI_
.. _PSCI: http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf
.. _Trusted Board Boot Requirements CLIENT (TBBR-CLIENT): https://developer.arm.com/docs/den0006/latest/trusted-board-boot-requirements-client-tbbr-client-armv8-a
.. _SMC Calling Convention: http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf
.. _System Control and Management Interface (SCMI): SCMI_
.. _SCMI: http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf
.. _Software Delegated Exception Interface (SDEI): SDEI_
.. _SDEI: http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf
.. _Arm A-Profile architectures: https://developer.arm.com/architectures/cpu-architecture/a-profile
.. _view the full documentation: https://www.trustedfirmware.org/docs/tf-a
.. _trustedfirmware.org: http://www.trustedfirmware.org