Commit graph

2755 commits

Author SHA1 Message Date
Lauren Wehrmeister
bba792b165 Merge changes Ided750de,Id3cc887c into integration
* changes:
  docs(gxl): add build instructions for booting BL31 from U-Boot SPL
  feat(gxl): add support for booting from U-Boot SPL/with standard params
2025-01-24 23:26:44 +01:00
Govindraj Raja
52e5a3f1e2 docs(maintainers): update LTS maintainers
Updating LTS maintainers list as agreed with other LTS
maintainers.

Change-Id: Ibf087c6b0e24d6faa9dafb6f8a0955a47f583f28
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2025-01-24 11:25:51 -06:00
Govindraj Raja
faa8c65675 docs: updates to LTS
Adding updates to LTS process -

- This is based on review comments in here -
  https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/34069/3/docs/lts.rst#37
- Based on discussions with other LTS maintainers.

Change-Id: Iafc606a66ea3ea69c51b433867b5025b8debebe9
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2025-01-21 08:41:00 -06:00
Govindraj Raja
d39c2f3859 docs: add inital lts doc
Ref: https://linaro.atlassian.net/browse/TFC-669

The initial LTS document was created as pdf and was maintained in a
shared folder location, to avoid pdf getting lost and trying to find
where it is we decided to have LTS details part of docs in TF-A.

This patch directly reflects the data from pdf attached to TFC-669.
Any improvements or amends to this will be done at later phases based
on LTS maintainers comments and agreements.

Change-Id: I1434c29f0236161d2a127596e2cc528bf4cc3e85
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2025-01-21 08:40:34 -06:00
Arvind Ram Prakash
6b8df7b9e5 feat(mops): enable FEAT_MOPS in EL3 when INIT_UNUSED_NS_EL2=1
FEAT_MOPS, mandatory from Arm v8.8, is typically managed in EL2.
However, in configurations where NS_EL2 is not enabled,
EL3 must set the HCRX_EL2.MSCEn bit to 1 to enable the feature.

This patch ensures FEAT_MOPS is enabled by setting HCRX_EL2.MSCEn to 1.

Change-Id: Ic4960e0cc14a44279156b79ded50de475b3b21c5
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
2025-01-14 15:30:19 -06:00
Ferass El Hafidi
043eca9e9c docs(gxl): add build instructions for booting BL31 from U-Boot SPL
Change-Id: Ided750decea924ff8d78d2d345d34bc40b05f0cb
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
2025-01-09 22:19:26 +02:00
Manish Pandey
6157ef37fb Merge changes from topic "bk/smccc_feature" into integration
* changes:
  feat(smccc): implement SMCCC_ARCH_FEATURE_AVAILABILITY
  refactor(cm): clean up per-world context
  refactor(cm): change owning security state when a feature is disabled
2025-01-09 13:57:00 +01:00
Olivier Deprez
696ed16877 fix(build): include platform mk earlier
Move platform.mk inclusion in top level Makefile to permit a platform
specifying BRANCH_PROTECTION option.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I1f662f82cd949eedfdbb61b9f66de15c46fb3106
2025-01-07 17:14:18 +01:00
Boyan Karatotev
8db170524d feat(smccc): implement SMCCC_ARCH_FEATURE_AVAILABILITY
SMCCC_ARCH_FEATURE_AVAILABILITY [1] is a call to query firmware about
the features it is aware of and enables. This is useful when a feature
is not enabled at EL3, eg due to an older FW image, but it is present in
hardware. In those cases, the EL1 ID registers do not reflect the usable
feature set and this call should provide the necessary information to
remedy that.

The call itself is very lightweight - effectively a sanitised read of
the relevant system register. Bits that are not relevant to feature
enablement are masked out and active low bits are converted to active
high.

The implementation is also very simple. All relevant, irrelevant, and
inverted bits combined into bitmasks at build time. Then at runtime the
masks are unconditionally applied to produce the right result. This
assumes that context managers will make sure that disabled features
do not have their bits set and the registers are context switched if
any fields in them make enablement ambiguous.

Features that are not yet supported in TF-A have not been added. On
debug builds, calling this function will fail an assert if any bits that
are not expected are set. In combination with CI this should allow for
this feature to to stay up to date as new architectural features are
added.

If a call for MPAM3_EL3 is made when MPAM is not enabled, the call
will return INVALID_PARAM, while if it is FEAT_STATE_CHECK, it will
return zero. This should be fairly consistent with feature detection.

The bitmask is meant to be interpreted as the logical AND of the
relevant ID registers. It would be permissible for this to return 1
while the ID returns 0. Despite this, this implementation takes steps
not to. In the general case, the two should match exactly.

Finally, it is not entirely clear whether this call replies to SMC32
requests. However, it will not, as the return values are all 64 bits.

[1]: https://developer.arm.com/documentation/den0028/galp1/?lang=en

Co-developed-by: Charlie Bareham <charlie.bareham@arm.com>
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I1a74e7d0b3459b1396961b8fa27f84e3f0ad6a6f
2025-01-07 08:00:11 +00:00
Manish V Badarkhe
5d8c721836 Merge "fix(cert-create): add default keysize to Brainpool ECDSA" into integration 2024-12-31 13:44:30 +01:00
Maxime Méré
0da16fe32f fix(cert-create): add default keysize to Brainpool ECDSA
By default, the ECDSA Brainpool regular and ECDSA Brainpool twisted
algorithms support 256-bit sized keys. Not defining this leads to
an error indicating that '256' is not a valid key size for ECDSA
Brainpool. KEY_SIZES matrix must have a value in its table to avoid
problems when KEY_SIZE is defined.

Signed-off-by: Maxime Méré <maxime.mere@foss.st.com>
Change-Id: I34886659315f59a9582dcee1d92d0e24d4a4138e
2024-12-31 11:48:43 +01:00
Ryan Everett
4639f8909b docs(arm): update docs to reflect rotpk key changes
The hashing algorithm for the rotpk is now HASH_ALG,
not always sha-256. The public development keys are
no longer in the repository and are now generated at
run-time, updates the documentation to reflect this.

Change-Id: Ic336f7aca858e9b6a1af6d6e6dc5f4aa428da179
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-12-30 12:32:22 +01:00
Jaiprakash Singh
508a2f1c87 docs(maintainers): update marvell maintainer
Add Jaiprakash Singh as marvell maintainer

Change-Id: Ica924c0502b0a271b0368255841ef413391de959
Signed-off-by: Jaiprakash Singh <jaiprakashs@marvell.com>
2024-12-23 01:48:05 -08:00
Sona Mathew
af65cbb954 fix(cpus): workaround for CVE-2024-5660 for Cortex-X4
Implements mitigation for CVE-2024-5660 that affects Cortex-X4
revisions r0p0, r0p1, r0p2.
The workaround is to disable the hardware page aggregation at
EL3 by setting CPUECTLR_EL1[46] = 1'b1.

Public Documentation:
https://developer.arm.com/Arm%20Security%20Center/Arm%20CPU%20Vulnerability%20CVE-2024-5660

Change-Id: I378cb4978919cced03e7febc2ad431c572eac72d
Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>
2024-12-17 10:24:33 -06:00
Manish Pandey
885503f4f3 Merge "fix(docs): put INIT_UNUSED_NS_EL2 docs back" into integration 2024-12-16 16:56:42 +01:00
Manish V Badarkhe
f3ad3f48c2 Merge "feat(qti): platform support for qcs615" into integration 2024-12-13 11:30:50 +01:00
quic_assethi
f60617d3b1 feat(qti): platform support for qcs615
Change-Id: Ibbe78a196d77530fa9d94d7d12b2f08a4b66d62e
Signed-off-by: Amarinder Singh Sethi <quic_assethi@quicinc.com>
2024-12-13 14:54:22 +05:30
Manish Pandey
f8872c9440 Merge "fix(cpus): workaround for Cortex-X4 erratum 2923985" into integration 2024-12-12 22:43:22 +01:00
Arvind Ram Prakash
a57e18e433 feat(fpmr): disable FPMR trap
This patch enables support of FEAT_FPMR by enabling access
to FPMR register. It achieves it by setting the EnFPM bit of
SCR_EL3. This feature is currently enabled for NS world only.

Reference:
https://developer.arm.com/documentation/109697/2024_09/
Feature-descriptions/The-Armv9-5-architecture-extension?lang=en

Change-Id: I580c409b9b22f8ead0737502280fb9093a3d5dd2
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
2024-12-12 10:03:23 -06:00
Arvind Ram Prakash
cc46166144 fix(cpus): workaround for Cortex-X4 erratum 2923985
Cortex-X4 erratum 2923935 is a Cat B erratum that applies
to all revisions <= r0p1 and is fixed in r0p2.

The workaround is to set CPUACTLR4_EL1[11:10] to 0b11.

SDEN documentation:
https://developer.arm.com/documentation/SDEN-2432808/latest

Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: I9207802ad479919a7f77c1271019fa2479e076ee
2024-12-11 16:09:20 -06:00
Boyan Karatotev
4557c0c001 fix(docs): put INIT_UNUSED_NS_EL2 docs back
Commit b65dfe40a removed the documentation for this flag in error. Put
it back.

Change-Id: I61a352553a010385997c47116b53d2fbe939ccd4
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
2024-12-11 09:17:32 +00:00
Ryan Everett
95037029a7 docs(prerequisites): update mbedtls to version 3.6.2
This new update to the LTS branch of MbedTLS provides
the fix for a buffer underrun vulnerability. TF-A does
not use the previously vulnerable functions
`mbedtls_pk_write_key_der` or `mbedtls_pk_write_key_pem`.
Full patch notes to this MbedTLS update can be found at
https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.2.

Change-Id: Ibc4a8712c92019648fe0e75390cd3540d86b735d
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-12-09 15:59:58 +00:00
Manish Pandey
ae952c1e51 Merge "docs(auth): extrapolate on the functions within a CM" into integration 2024-12-09 15:34:29 +01:00
Ryan Everett
8edd6c6f45 docs(auth): extrapolate on the functions within a CM
Add descriptions for the various parameters for each
function.
Add more description to the example implementation.

Change-Id: I4b7a1ff38914d061e499c1b67e762a484688ee05
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-12-09 14:00:33 +00:00
Levi Yun
8953568a2d feat(lib): introduce Hob creation library
According to Platform Initialization (PI) Specification [1] and
discussion on edk2 mailing list [2],
StandaloneMm shouldn't create Hob but it should be passed from TF-A.
IOW, TF-A should pass boot information via HOB list to initialise
StandaloneMm properly.

And this HOB lists could be delivered via
    - SPM_MM: Transfer List according to the firmware handoff spec[3]

    - FF-A v1.1 >= : FF-A boot protocol.

This patch introduces a TF-A HOB creation library and
some of definitions which StandaloneMm requires to boot.

Link: https://uefi.org/sites/default/files/resources/PI_Spec_1_6.pdf [1]
Link: https://edk2.groups.io/g/devel/topic/103675962#114283 [2]
Link: https://github.com/FirmwareHandoff/firmware_handoff [3]
Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
Change-Id: I5e0838adce487110206998a8b79bc3adca922cec
2024-12-06 13:26:31 +00:00
Levi Yun
6b68b4a42f feat(lib): modify Hob creation code imported from edk2
According to Platform Initialization (PI) Specification [1] and
Discussion on edk2 mailing list [2],
StandaloneMm shouldn't create Hob but it should be passed from TF-A.
IOW, TF-A should pass boot information via PHIT Hob to initialize
StandaloneMm properly.

This patch modifies Hob creation code from edk2 codebase
so that TF-A could create Hob information properly to boot StandaloneMm

Link: https://uefi.org/sites/default/files/resources/PI_Spec_1_6.pdf [1]
Link: https://edk2.groups.io/g/devel/topic/103675962#114283 [2]
Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
Change-Id: I5e427b620d8006b118b266370bd08d4b0ff56a83
2024-12-06 13:26:31 +00:00
Gavin Liu
a65fadfbbd feat(mt8196): initialize platform for MediaTek MT8196
- Add basic platform setup.
- Add MT8196 documentation at docs/plat/.
- Add generic CPU helper functions.
- Add basic register address.
- Add timer driver configuration.

Change-Id: I07fcdeb785fcda4a955c11c39a345da4ad05ef04
Signed-off-by: Gavin Liu <gavin.liu@mediatek.com>
2024-12-02 09:20:48 +08:00
Manish V Badarkhe
3df50a0699 Merge changes from topic "rd1ae-bl32" into integration
* changes:
  feat(rd1ae): add Generic Timer in device tree
  docs(rd1ae): update documentation to include BL32
  feat(rd1ae): add support for OP-TEE SPMC
2024-11-29 13:33:05 +01:00
Ziad Elhanafy
428f4169ab docs(rd1ae): update documentation to include BL32
Update the boot sequence in the RD-1 AE documentation
to include BL32 (OP-TEE).

Signed-off-by: Ziad Elhanafy <ziad.elhanafy@arm.com>
Change-Id: I25fdc114bb71d3ad7e1bb2d845f758d6af037e3d
2024-11-29 10:17:47 +00:00
Yann Gautier
8f6ab4b5df Merge "docs(maintainers): update qti maintainer" into integration 2024-11-26 09:36:35 +01:00
Yann Gautier
480561f297 Merge "fix(docs): fix the indent and the build command for MT8188" into integration 2024-11-25 17:08:51 +01:00
Govindraj Raja
4ec2948fe3 Merge "docs(changelog): changelog for v2.12 release" into integration 2024-11-20 23:30:24 +01:00
Govindraj Raja
46bafc1769 Merge "docs: update build tool prerequisites" into integration 2024-11-20 18:11:52 +01:00
Govindraj Raja
8a48bca36d Merge "docs(tc): deprecate tc2 in documentation" into integration 2024-11-20 18:11:39 +01:00
Icen Zeyada
74606e76e2 docs(tc): deprecate tc2 in documentation
added a note to specify that tc2 has been deprecated

Change-Id: I7ab69a2560e0e56379f4e144d41da20671c1ca9d
Signed-off-by: Icen Zeyada <Icen.Zeyada2@arm.com>
2024-11-20 10:49:26 +00:00
Govindraj Raja
07a6a65443 docs(changelog): changelog for v2.12 release
Generated this change-log using below command:
npm run release -- --skip.commit --skip.tag --release-as 2.12.0

Change-Id: Idb74f6a31bf2691e7666e2738030d6f0e2b8c519
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2024-11-19 18:08:58 -06:00
Manish V Badarkhe
5699f84007 docs(fvp): update FVP model versions as per usage
Update the documentation to reflect the various FVP models
used in the OpenCI environment.

Change-Id: I6144ab7c41d3776421164125d07371dadc9252b5
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2024-11-19 20:29:17 +00:00
Harrison Mutai
40c0a64c6f docs: update build tool prerequisites
Bump `dtc`, `clang` and `sphinx` to reconcile our minimum requirements
with the versions used in CI.

Change-Id: Ia848b4bdd93dc833ea03eda5b002561468042f52
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-11-18 16:44:12 +00:00
Govindraj Raja
74c0783d1d Merge changes Ic92c2abf,Id9182f65 into integration
* changes:
  docs(juno): update PSCI instrumentation data
  docs(n1sdp): update PSCI instrumentation data
2024-11-18 17:19:56 +01:00
Govindraj Raja
7a444c3df7 Merge "docs(prerequisites): add Poetry installation instructions" into integration 2024-11-18 02:54:53 +01:00
Zachary Leaf
a0db5c74ab docs(juno): update PSCI instrumentation data
Update for v2.12 release based on v2.12-rc0

Change-Id: Ic92c2abfc65dc1e9f979564eecd65cb2c285cb25
Signed-off-by: Zachary Leaf <zachary.leaf@arm.com>
2024-11-15 13:16:28 +00:00
Zachary Leaf
012cc2cb61 docs(n1sdp): update PSCI instrumentation data
Update for v2.12 release based on v2.12-rc0

Change-Id: Id9182f65518c0b41d478d3f24edc3befbd9d2cf6
Signed-off-by: Zachary Leaf <zachary.leaf@arm.com>
2024-11-15 13:16:28 +00:00
Chris Kay
0c9cd67d56 docs(prerequisites): add Poetry installation instructions
This small change removes the footnote from Poetry that it is only used
for building documentation, as it is now used for some of the Python
tooling in the repository from the build system.

Additionally, add a link to the official installation guide for Poetry.

Change-Id: Ie36b7ecd8066cbf2a14a1085d84fa9bd9c4409ba
Signed-off-by: Chris Kay <chris.kay@arm.com>
2024-11-15 14:42:43 +02:00
Jayanth Dodderi Chidanand
0f3cd5150c docs(context-mgmt): add Root-Context documentation
* This patch adds some details on the EL3/Root-Context
  and its related interfaces.

* Additionally it updates the existing details on the
  interfaces, related to various CPU context entries which
  have been improvised recently.

Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Change-Id: I81a992fe09feca4dc3d579a48e54a4763425e052
2024-11-15 10:44:39 +00:00
Arvind Ram Prakash
918c5459dd docs(juno): update Juno tested SCP version to 2.15
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: I29452d0abadf9b5980ca9680ca2c78080c4c33a0
2024-11-12 10:56:37 -06:00
Govindraj Raja
212993ae7c Merge "feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA" into integration 2024-11-06 21:56:22 +01:00
Andre Przywara
19d52a83b7 feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA
Armv8.6 introduced the FEAT_LS64 extension, which provides a 64 *byte*
store instruction. A related instruction is ST64BV0, which will replace
the lowest 32 bits of the data with a value taken from the ACCDATA_EL1
system register (so that EL0 cannot alter them).
Using that ST64BV0 instruction and accessing the ACCDATA_EL1 system
register is guarded by two SCR_EL3 bits, which we should set to avoid a
trap into EL3, when lower ELs use one of those.

Add the required bits and pieces to make this feature usable:
- Add the ENABLE_FEAT_LS64_ACCDATA build option (defaulting to 0).
- Add the CPUID and SCR_EL3 bit definitions associated with FEAT_LS64.
- Add a feature check to check for the existing four variants of the
  LS64 feature and detect future extensions.
- Add code to save and restore the ACCDATA_EL1 register on
  secure/non-secure context switches.
- Enable the feature with runtime detection for FVP and Arm FPGA.

Please note that the *basic* FEAT_LS64 feature does not feature any trap
bits, it's only the addition of the ACCDATA_EL1 system register that
adds these traps and the SCR_EL3 bits.

Change-Id: Ie3e2ca2d9c4fbbd45c0cc6089accbb825579138a
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2024-11-06 16:52:12 +01:00
Tamas Ban
50d9383bec build: install dependencies before doc build
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I0448caa4e22c13d4dd821261642833d49ff7a234
2024-11-06 15:18:06 +01:00
Tamas Ban
9db2b059eb fix(docs): fix the example command for doc build
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I8ee666ee4cd135d09380ce31751ddba9962ff831
2024-11-06 15:18:06 +01:00
Raghu Krishnamurthy
b226357bdb docs: el3 token signing
Add documentation for the feature where EL3 can be used to sign realm
attestation token requests using RMM_EL3_TOKEN_SIGN command.
This patch also adds documentation for the RMM_EL3_FEATURES features
command that can be used to discover support for features such as
RMM_EL3_TOKEN_SIGN.

Change-Id: Iab5a157761ed17931210c3702f813198fc9c4b3a
Signed-off-by: Raghu Krishnamurthy <raghupathyk@nvidia.com>
2024-11-06 14:38:28 +01:00