Commit graph

2160 commits

Author SHA1 Message Date
Manish Pandey
f50107d3df Merge changes I9d06e0ee,I6980e84f into integration
* changes:
  feat(tegra): implement 'pwr_domain_off_early' handler
  feat(psci): introduce 'pwr_domain_off_early' hook
2023-05-03 15:10:45 +02:00
Manish Pandey
d494b0eff5 Merge "feat(el3-runtime): handle traps for IMPDEF registers accesses" into integration 2023-05-02 16:51:14 +02:00
Manish V Badarkhe
fda676d3d2 Merge "build: deprecate Arm rde1edge" into integration 2023-05-02 14:31:01 +02:00
Sandrine Bailleux
e23d442d17 Merge "docs(measured-boot): update the build command" into integration 2023-05-02 09:16:01 +02:00
Varun Wadekar
0ed3be6fc2 feat(el3-runtime): handle traps for IMPDEF registers accesses
This patch introduces support to handle traps from lower ELs for
IMPDEF system register accesses. The actual support is left to the
platforms to implement.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: I623d5c432b4ce4328b68f238c15b1c83df97c1e5
2023-04-30 11:04:59 +01:00
Manish Pandey
76b225d41d Merge "docs(juno): refer to SCP v2.12.0" into integration 2023-04-28 15:58:05 +02:00
Manish V Badarkhe
a49bb6f838 Merge "docs: fix a typo in the glossary" into integration 2023-04-28 12:08:09 +02:00
Manish Pandey
1ff41ba333 Merge "feat(sme): enable SME2 functionality for NS world" into integration 2023-04-28 11:57:25 +02:00
Jayanth Dodderi Chidanand
03d3c0d729 feat(sme): enable SME2 functionality for NS world
FEAT_SME2 is an extension of FEAT_SME and an optional feature
from v9.2. Its an extension of SME, wherein it not only
processes matrix operations efficiently, but also provides
outer-product instructions to accelerate matrix operations.
It affords instructions for multi-vector operations.
Further, it adds an 512 bit architectural register ZT0.

This patch implements all the changes introduced with FEAT_SME2
to ensure that the instructions are allowed to access ZT0
register from Non-secure lower exception levels.

Additionally, it adds support to ensure FEAT_SME2 is aligned
with the existing FEATURE DETECTION mechanism, and documented.

Change-Id: Iee0f61943304a9cfc3db8f986047b1321d0a6463
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
2023-04-27 16:02:27 +01:00
Sandrine Bailleux
6fc9c1cdb9 docs: fix a typo in the glossary
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: I4c76fde5e487ab4b2495f1ea692ae07f8be81d57
2023-04-27 13:29:56 +02:00
Manish V Badarkhe
bb5b2632e1 docs(measured-boot): update the build command
As per recent changes to OPTEE's fvp.mk file, both options
"MEASURED_BOOT" and "MEASURED_BOOT_FTPM" are required for the fTPM
application to be built.

Change-Id: I621113c3fbd47e9f5be015ea65e9b8d0f218e4e8
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2023-04-27 07:28:41 +01:00
Joanna Farley
1982a6ac62 Merge "docs: patch Poetry build instructions" into integration 2023-04-26 16:45:02 +02:00
Sandrine Bailleux
00cdd81ea7 Merge changes from topics "sb/deprecate-cryptocell", "sb/deprecation-policy" into integration
* changes:
  docs: deprecate CryptoCell-712/713 drivers
  docs: split deprecated interfaces and drivers
  docs: extend deprecation policy
2023-04-26 13:39:28 +02:00
Chris Kay
7cff6565bc docs(juno): refer to SCP v2.12.0
Change-Id: I2844fb569abcc403525982162484dc0aa7e5a9d6
Signed-off-by: Chris Kay <chris.kay@arm.com>
2023-04-26 12:07:50 +01:00
Manish Pandey
44fcbb4a12 Merge "docs(juno): update SCP downloads link" into integration 2023-04-26 12:59:41 +02:00
Varun Wadekar
6cf4ae979a feat(psci): introduce 'pwr_domain_off_early' hook
This patch introduces the 'pwr_domain_off_early'  hook for
platforms wanting to perform housekeeping steps before the
PSCI framework starts the CPU power off sequence. Platforms
might also want to use ths opportunity to ensure that the
CPU off sequence can proceed.

The PSCI framework expects a return code of PSCI_E_DENIED,
if the platform wants to halt the CPU off sequence.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: I6980e84fc4d6cb80537a178d0d3d26fb28a13853
2023-04-26 09:53:10 +01:00
Harrison Mutai
95f4abed84 docs: patch Poetry build instructions
Some parts of the documentation referring to Poetry provides incorrect
build instructions and has some minor formatting errors. Reformat the
bits that require formatting, and fix the build instructions. These
were originally part of the patch stack that added Poetry support but
were accidentally reverted prior to merge.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
Change-Id: I336d3a7bbe99f75262430ae436f8ebc2cb050d2c
2023-04-25 16:18:10 +01:00
Sandrine Bailleux
100f56d873 Merge "docs(threat-model): add a notes related to the Measured Boot" into integration 2023-04-25 08:58:50 +02:00
Bipin Ravi
760fbfc490 Merge "feat(gcs): support guarded control stack" into integration 2023-04-25 07:50:22 +02:00
Bipin Ravi
833cbe577e Merge "docs(maintainers): make Jimmy Brisson a code owner" into integration 2023-04-24 21:49:39 +02:00
Sandrine Bailleux
7c7e7b621a Merge changes from topic "mb/trusted-boot-update" into integration
* changes:
  refactor(auth)!: unify REGISTER_CRYPTO_LIB
  refactor(auth): replace plat_convert_pk
  docs(auth): add auth_decrypt in CM chapter
  feat(auth): compare platform and certificate ROTPK for authentication
  docs(auth): add 'calc_hash' function's details in CM
2023-04-24 15:46:26 +02:00
Sandrine Bailleux
47c8dcfde7 docs: deprecate CryptoCell-712/713 drivers
We plan to deprecate the CryptoCell-712 and CryptoCell-713 drivers in
TF-A release v2.9 and eventually remove the code from the tree in
release 3.0.

The only upstream platforms which use these drivers today are the Arm
Ltd developpment platforms, such as Juno.

Write this information down into the "Release Processes" document.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: Ib064292733a271ecbff0dde315911017e2c4da7e
2023-04-24 15:09:31 +02:00
Sandrine Bailleux
1dc77d43ef docs: split deprecated interfaces and drivers
Having a dedicated section for deprecated interfaces, and another one
for deprecated drivers, sounds cleaner.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: Iaf65e9f4dabff89b9e86c17062656edd8c344016
2023-04-24 13:45:53 +02:00
Sandrine Bailleux
47801a6985 docs: extend deprecation policy
Our process documentation already mentions that if a platform is no
longer maintained, it is best to deprecate it to keep the project's
source tree clean and healthy.

The same argument stands for drivers or library interfaces so extend
this policy to those.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: Ieb235d6a1fb089343e0e1e3e5f36067552f2f8f0
2023-04-24 13:45:44 +02:00
Sandrine Bailleux
8f55cde216 docs: add a note about downstream platforms
Clarify that downstream platforms generally do not affect code
deprecation / removal decisions.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: I44b979c4e67ee03537852769e96544e19137bda3
2023-04-24 13:45:06 +02:00
Chris Kay
26ad4a87e0 docs(juno): update SCP downloads link
Change-Id: Ibe2a1d2ec019333876a4f82b70fde0a10d667f7c
Signed-off-by: Chris Kay <chris.kay@arm.com>
2023-04-21 14:25:05 +02:00
Yann Gautier
4ac5b3949d refactor(auth): replace plat_convert_pk
Following discussions in the reviews of the patch that introduced
plat_convert_pk() function [1], it was decided to deprecate it to
avoid weak function declaration.
A new optional function pointer convert_pk is added to crypto_lib_desc_t.
A new function crypto_mod_convert_pk() will either call
crypto_lib_desc.convert_pk() if it is defined, or do the same
as what was done by the weak function otherwise.

[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/17174

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Change-Id: I9358867f8bfd5e96b5ee238c066877da368e43c6
2023-04-21 09:46:01 +01:00
Yann Gautier
0ca7b32623 docs(auth): add auth_decrypt in CM chapter
The call to REGISTER_CRYPTO_LIB requires auth_decrypt function to be
provided. Add its prototype and update REGISTER_CRYPTO_LIB call.

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Change-Id: Id1f2a54867ffe5dec36e0bf22490d01858891585
2023-04-21 09:46:01 +01:00
Manish V Badarkhe
f28057a260 docs(auth): add 'calc_hash' function's details in CM
Updated the Crypto Module section to detail the 'calc_hash'
function.

Change-Id: I04a24abba150745e4eba6273bdb7cf12b66bfebc
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2023-04-21 09:46:01 +01:00
Madhukar Pappireddy
e7df41b545 Merge "feat: add support for poetry" into integration 2023-04-20 15:20:23 +02:00
Sandrine Bailleux
226780803a docs(maintainers): make Jimmy Brisson a code owner
For the following modules:
- Trusted boot
- Measured boot
- cert_create tool
- PSA layer.

Change-Id: I18113441a947773b470904573e1b474a2c8e2941
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2023-04-20 09:39:02 +02:00
Manish V Badarkhe
58290c4667 build: deprecate Arm rde1edge
Arm has decided to deprecate the rde1edge platform. The development
of software and fast model for this platform have been discontinued.
Hence, updated the makefile to warn about the deprecation of this
platform, and also reflected it in the documentation.

Change-Id: I0d44de4590dd5dce02c7c4b433df25dc438e6c49
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2023-04-20 05:29:41 +01:00
Harrison Mutai
793f72c06c feat: add support for poetry
New python dependencies are introduced by the memory mapping script.
Rather than add another `requirements.txt` utilise poetry. This is a
proper dependency management framework for Python. The two main upsides
of using poetry instead of the traditional requirements.txt are
maintainability and reproducibility.

Poetry provides a proper lock file for pinning dependencies, similar to
npm for JavaScript. This allows for separate environments (i.e. docs,
tools) to be created efficiently, and in a reproducible manner, wherever
the project is deployed.  Having dependencies pinned in this manner is a
boon as a security focused project. An additional upside is that we will
receive security updates for dependencies via GitHub's Dependabot.

Change-Id: I5a3c2003769b878a464c8feac0f789e5ecf8d56c
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2023-04-19 14:38:24 +01:00
Manish V Badarkhe
7ccefbca3b docs(threat-model): add a notes related to the Measured Boot
TF-A currently does not have any TPM2 driver for extending
measurements into a discrete TPM chip. In TPM-based attestation
scheme, measurements are just stored into a TCG-compatible event
log buffer in secure memory.

In light of the fact that Event Log measurements are taken by BL1 and
BL2, we need to trust these components to store genuine measurements,
and the Generic Threat Model always mitigates against attacks on these
components, therefore, there is no explicit document for the Measured
Boot threat model at this time is needed.

Change-Id: I41b037b2f5956d327b53cd834345e5aefdcfb5ef
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2023-04-19 13:54:52 +01:00
Manish V Badarkhe
1cf3e2f0a8 feat(fvp): add Event Log maximum size property in DT
Updated the code to get and set the 'tpm_event_log_max_size' property
in the event_log.dtsi.

In this change, the maximum Event Log buffer size allocated by BL1 is
passed to BL2, rather than both relying on the maximum Event Log buffer
size macro.

Change-Id: I7aa6256390872171e362b6f166f3f7335aa6e425
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2023-04-18 17:13:17 +02:00
Sandrine Bailleux
0223d15764 Merge "feat(docs): allow verbose build" into integration 2023-04-18 17:10:04 +02:00
Mark Brown
688ab57b93 feat(gcs): support guarded control stack
Arm v9.4 introduces support for Guarded Control Stack, providing
mitigations against some forms of RPO attacks and an efficient mechanism
for obtaining the current call stack without requiring a full stack
unwind. Enable access to this feature for EL2 and below, context
switching the newly added EL2 registers as appropriate.

Change the FVP platform to default to handling this as a dynamic option
so the right decision can be made by the code at runtime.

Signed-off-by: Mark Brown <broonie@kernel.org>
Change-Id: I691aa7c22e3547bb3abe98d96993baf18c5f0e7b
2023-04-18 12:36:52 +01:00
Manish Pandey
15b0a94bb5 Merge "docs(maintainers): update maintainers for n1sdp/morello" into integration 2023-04-13 11:51:14 +02:00
Mark Brown
062b6c6bf2 feat(pie/por): support permission indirection and overlay
Arm v8.9 introduces a series of features providing a new way to set memory
permissions. Instead of directly encoding the permissions in the page
tables the PTEs contain indexes into an array of permissions stored in
system registers, allowing greater flexibility and density of encoding.

Enable access to these features for EL2 and below, context switching the
newly added EL2 registers as appropriate. Since all of FEAT_S[12]P[IO]E
are separately discoverable we have separate build time options for
enabling them, but note that there is overlap in the registers that they
implement and the enable bit required for lower EL access.

Change the FVP platform to default to handling them as dynamic options so
the right decision can be made by the code at runtime.

Signed-off-by: Mark Brown <broonie@kernel.org>
Change-Id: Icf89e444e39e1af768739668b505661df18fb234
2023-04-12 15:03:22 +01:00
Joanna Farley
d2309b49ea Merge "feat(zynqmp): make stack size configurable" into integration 2023-04-12 11:04:09 +02:00
Manish V Badarkhe
a1c924df6d Merge changes from topic "mb/rst-to-bl31-update" into integration
* changes:
  docs: update RESET_TO_BL31 documentation
  fix(bl31): avoid clearing of argument registers in RESET_TO_BL31 case
  Revert "docs(bl31): aarch64: RESET_TO_BL31_WITH_PARAMS"
  Revert "feat(bl31): aarch64: RESET_TO_BL31_WITH_PARAMS"
2023-04-11 17:10:23 +02:00
Akshay Belsare
57536653e6 feat(zynqmp): make stack size configurable
If PLATFORM_STACK_SIZE not already defined, use the default value of
PLATFORM_STACK_SIZE.
This makes the stack size value configurable for different interface
like custom packages.

Signed-off-by: Amit Nagal <amit.nagal@amd.com>
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
Change-Id: I87e9fcbfb4c4092378b1ac0ff8fb6d084495d320
2023-04-11 15:10:23 +01:00
Sandrine Bailleux
fd0933516b docs(porting): refer the reader back to the threat model
When porting TF-A to a new platform, it is essential to read the
threat model documents in conjunction with the porting guide to
understand the security responsibilities of each platform interface
to implement.

Add a note to highlight this in the porting guide.

Change-Id: Icd1e41ae4b15032b72531690dd82a9ef95ca0db5
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2023-04-11 10:11:04 +02:00
Sandrine Bailleux
292585be90 docs(porting): move porting guide upper in table of contents
The porting guide is currently hosted under the 'Getting started'
section. Yet, porting the full firmware to a new platform is probably
not the first thing that one would do. Before delving into the
details, one would probably start by building the code for an emulated
platform, such as Arm FVP.

Furthermore, the porting guide is such a big and important document
that it probably deserves being visible in the main table of contents.
Thus, move it just above the list of supported platforms.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: I51b3d2a93832505ab90d73c823f06f9540e84c77
2023-04-11 10:11:04 +02:00
Sandrine Bailleux
24d0fbcddf docs(porting): remove reference to xlat_table lib v1
Version 1 of the translation table library is deprecated. Refer to
version 2 instead.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: I10a4ab7b346ea963345f82baff2deda267c5308d
2023-04-11 09:58:17 +02:00
Sandrine Bailleux
93e1ad7f76 docs(porting): remove pull request terminology
The pull request terminology dates back from when TF-A repository was
hosted on Github. Use a terminology that is more suited to Gerrit
workflow.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: Ieecf47617ca1cdb76b9c4a83f63ba3c402b9e975
2023-04-11 09:58:14 +02:00
Sandrine Bailleux
aa2922a69c Merge "docs(threat-model): refresh top-level page" into integration 2023-04-06 13:29:45 +02:00
Anurag Koul
55b748a0d6 docs(maintainers): update maintainers for n1sdp/morello
Signed-off-by: Anurag Koul <anurag.koul@arm.com>
Change-Id: I305d03ae664f7d6124bf73d3bfdd81d34d760065
2023-04-04 17:02:02 +01:00
Joanna Farley
42fb812a75 Merge changes from topic "ethos-n" into integration
* changes:
  docs(maintainers): update NPU driver files
  docs(ethos-n): update porting-guide.rst for NPU
  feat(ethos-n): add separate RO and RW NSAIDs
  feat(ethos-n)!: add protected NPU firmware setup
  feat(ethos-n): add stream extends and attr support
  feat(ethos-n): add reserved memory address support
  feat(ethos-n): add event and aux control support
  feat(ethos-n): add SMC call to get FW properties
  refactor(ethos-n): split up SMC call handling
  feat(ethos-n): add NPU firmware validation
  feat(ethos-n): add check for NPU in SiP setup
  feat(ethos-n)!: load NPU firmware at BL2
  feat(juno): support ARM_IO_IN_DTB option for Juno
  fix(fconf): fix FCONF_ARM_IO_UUID_NUMBER value
  fix(fvp): incorrect UUID name in FVP tb_fw_config
  fix(ethos-n): add workaround for erratum 2838783
  feat(ethos-n): add support for NPU to cert_create
  feat(ethos-n): add NPU support in fiptool
  feat(ethos-n): add support to set up NSAID
  build(fiptool): add object dependency generation
  feat(ethos-n): add NPU sleeping SMC call
  feat(ethos-n): add multiple asset allocators
  feat(ethos-n): add reset type to reset SMC calls
  feat(ethos-n): add protected NPU TZMP1 regions
  build(ethos-n): add TZMP1 build flag
2023-04-04 16:16:04 +02:00
Sandrine Bailleux
1988677350 docs(threat-model): refresh top-level page
The top-level page for threat model documents is evidently out-dated,
as it contains text which no longer makes sense on its own. Most
likely it relates back to the days where we had a single threat model
document.

Reword it accordingly. While we are at it, explain the motivation and
structure of the documents.

Change-Id: I63c8f38ec32b6edbfd1b4332eeaca19a01ae70e9
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2023-04-04 16:08:05 +02:00