No description
Find a file
Govindraj Raja 7e619ecc89 refactor(aarch64): refactor usage of elx_panic
Currently we call el3_panic for panics from EL3 and elx_panic for
panics from lower ELs.

When we boot into a rich OS environment and interact with BL31 using
SMC/ABI calls and we can also decide to handle any lower EL panics in
EL3. Panic can occur in lower EL from rich OS or during SMC/ABI calls
after context switch to EL3.

But after booting into any rich OS we may land in panic either from
rich OS or while servicing any SMC call, here the logic to use
el3_panic or elx_panic is flawed as spsr_el3[3:0] is always EL3h
and end up in elx_panic even if panic occurred from EL3 during
SMC handling.

We try to decouple the elx_panic usage for its intended purpose,
introduce lower_el_panic which would call elx_panic, currently
lower_el_panic is called from default platform_ea_handle which
would be called due to panic from any of the lower ELs.

Also remove the weak linkage for elx_panic and rename it to
report_elx_panic which could be used with lower_el_panic.

Change-Id: I268bca89c01c60520d127ef6c7ba851460edc747
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2023-02-21 17:26:01 +00:00
.husky feat(git-hooks): add pre-commit hook 2023-02-09 17:27:25 +00:00
bl1 build: clarify linker script generation 2023-02-10 17:01:46 +00:00
bl2 build: clarify linker script generation 2023-02-10 17:01:46 +00:00
bl2u build: clarify linker script generation 2023-02-10 17:01:46 +00:00
bl31 refactor(aarch64): refactor usage of elx_panic 2023-02-21 17:26:01 +00:00
bl32 build: clarify linker script generation 2023-02-10 17:01:46 +00:00
common refactor(aarch64): refactor usage of elx_panic 2023-02-21 17:26:01 +00:00
docs Merge "fix(docs): add few missed links for Security Advisories" into integration 2023-02-20 09:50:54 +01:00
drivers refactor(allwinner): use fdt_node_is_enabled() in AXP driver 2023-02-03 13:31:28 +00:00
fdts feat(morello): add GPU DT node 2023-02-20 11:52:39 +00:00
include refactor(aarch64): refactor usage of elx_panic 2023-02-21 17:26:01 +00:00
lib Merge changes from topic "bk/python_dependencies" into integration 2023-02-14 16:14:06 +01:00
licenses docs(license): rectify arm-gic.h license 2021-04-26 12:36:00 +01:00
make_helpers build: permit multiple linker scripts 2023-02-10 17:01:47 +00:00
plat refactor(aarch64): refactor usage of elx_panic 2023-02-21 17:26:01 +00:00
services Merge "feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS" into integration 2023-02-17 19:49:04 +01:00
tools fix(cert-create): change WARN to VERBOSE 2023-02-09 11:55:33 -06: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 chore: add encrypt_fw to gitignore 2023-02-02 13:30:53 +01:00
.gitreview Specify integration as the default branch for git-review 2020-04-02 07:57:17 +00:00
.nvmrc build(npm): add NVM version file 2022-10-10 13:24:22 +01:00
.readthedocs.yaml fix(docs): python version must be string 2023-02-16 15:29:52 +00:00
.versionrc.js docs(changelog): fix broken version bumping 2022-01-24 12:55:34 +00:00
changelog.yaml refactor(cpufeat): move helpers into .c file, rename FEAT_STATE_ 2023-01-11 16:02:58 +00: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): allow warnings when using lld" into integration 2023-02-14 17:09:35 +01:00
package-lock.json docs(changelog): changelog for v2.8 release 2022-11-16 14:10:49 -06:00
package.json docs(changelog): changelog for v2.8 release 2022-11-16 14:10:49 -06: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