Commit graph

2801 commits

Author SHA1 Message Date
Manish Pandey
8936321932 Merge "feat(d128): add support for FEAT_D128" into integration 2024-10-28 21:49:58 +01:00
Govindraj Raja
98e7a83e09 Merge "fix(mte): remove deprecated CTX_INCLUDE_MTE_REGS/FEAT_MTE" into integration 2024-10-25 16:37:34 +02:00
Govindraj Raja
306551362c feat(d128): add support for FEAT_D128
This patch disables trapping to EL3 when the FEAT_D128
specific registers are accessed by setting the SCR_EL3.D128En bit.

If FEAT_D128 is implemented, then FEAT_SYSREG128 is implemented.
With FEAT_SYSREG128 certain system registers are treated as 128-bit,
so we should be context saving and restoring 128-bits instead of 64-bit
when FEAT_D128 is enabled.

FEAT_SYSREG128 adds support for MRRS and MSRR instruction which
helps us to read write to 128-bit system register.
Refer to Arm Architecture Manual for further details.

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.

Change-Id: I1a53db5eac29e56c8fbdcd4961ede3abfcb2411a
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2024-10-24 14:51:55 -05:00
Sona Mathew
6f2b8810f6 fix(mte): remove deprecated CTX_INCLUDE_MTE_REGS/FEAT_MTE
Remove all instances of macros CTX_INCLUDE_MTE_REGS and FEAT_MTE
since these have been deprecated in v2.11

Change-Id: I7838a865755326f03668e43768140929a2d9e418
Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>
2024-10-24 10:00:19 -05:00
Manish V Badarkhe
72447cad65 Merge "docs: add Govind as new TF-A maintainer" into integration 2024-10-22 13:53:51 +02:00
Olivier Deprez
cec6f11f40 docs: add Govind as new TF-A maintainer
Also update Raghu's email address.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: Icea15fa5eaf5413b0be7c42e8ef376cfeb9d5f27
2024-10-22 10:13:30 +02:00
Manish Pandey
b6f2e376a8 Merge "feat(sctlr2): add support for FEAT_SCTLR2" into integration 2024-10-16 16:58:04 +02:00
Manish Pandey
1cafc96f28 Merge "feat(the): add support for FEAT_THE" into integration 2024-10-16 15:36:33 +02:00
Govindraj Raja
368e4fa551 docs: update TF-A May'25 release dates
Tentatively updating the plan for TF-A v2.13 release in May'25.

Change-Id: I98abe5f72901b71179a1efe3762046756d5ab6ac
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2024-10-15 14:47:08 -05:00
Jayanth Dodderi Chidanand
4ec4e545c6 feat(sctlr2): add support for FEAT_SCTLR2
Arm v8.9 introduces FEAT_SCTLR2, adding SCTLR2_ELx registers.
Support this, context switching the registers and disabling
traps so lower ELs can access the new registers.

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.

Change-Id: I0c4cba86917b6b065a7e8dd6af7daf64ee18dcda
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2024-10-13 18:44:54 -05:00
Jayanth Dodderi Chidanand
6d0433f040 feat(the): add support for FEAT_THE
Arm v8.9 introduces FEAT_THE, adding Translation Hardening Extension
Read-Check-Write mask registers, RCWMASK_EL1 and RCWSMASK_EL1.
Support this, context switching the registers and disabling
traps so lower ELs can access the new registers.

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.

Change-Id: I8775787f523639b39faf61d046ef482f73b2a562
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2024-10-13 18:44:54 -05:00
Bharath N
cc0f5b0892 docs(maintainers): update qti maintainer
Add Saurabh Gorecha in qti maintainer

Change-Id: I24c8453288444ec9f60dca7c4019fd1635090b33
Signed-off-by: Bharath N <quic_bharn@quicinc.com>
2024-10-10 19:07:51 +05:30
Manish V Badarkhe
e0ac845e25 docs: deprecate Arm TC2 FVP platform
Arm has made the strategic decision to deprecate the TC2 platform. As
a result, software development and the creation of fast models for TC2
have been officially discontinued. The TC2 platform, now considered
obsolete, has been succeeded by the TC3 and TC4 platforms. Notably,
both TC3 and TC4 are already integrated into TF-A, with TC3 included
in the CI repository. Work to add CI support for TC4 is currently in
progress.

Change-Id: I4df3c3e947faa1849a0f4742593c604cb2ee43b9
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2024-10-08 15:03:55 +01:00
Manish V Badarkhe
a100a1c847 Merge "fix(cpus): workaround for Cortex-X4 erratum 3076789" into integration 2024-10-07 14:09:06 +02:00
Olivier Deprez
07e806add1 Merge "docs(build): update GCC to 13.3.Rel1 version" into integration 2024-10-07 11:59:06 +02:00
Manish V Badarkhe
26467bf3ec Merge changes from topic "rd1ae-upstream" into integration
* changes:
  docs(rd1ae): add RD-1 AE documentation
  feat(rd1ae): enabling Trusted Board Boot(TBB) for RD-1 AE
  feat(rd1ae): introduce BL31 for RD-1 AE platform
  feat(rd1ae): add device tree files
  feat(rd1ae): introduce Arm RD-1 AE platform
  build(bl2): enable check for bl2 base overflow assert
  feat(arm): add support for loading CONFIG from BL2
2024-10-01 14:16:35 +02:00
Jayanth Dodderi Chidanand
764c66bbfb docs(build): update GCC to 13.3.Rel1 version
Updating toolchain to the latest production release version
13.3.Rel1 publicly available on:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

We build TF-A in CI using x86_64 Linux hosted cross toolchains:
---------------------------------------------------------------
* AArch32 bare-metal target (arm-none-eabi)
* AArch64 bare-metal target (aarch64-none-elf)

Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Change-Id: If5915fdc14a6c65ce58ac7fccfddd6fe85c0d7c9
2024-09-30 18:23:25 +01:00
Ryan Everett
db7eb68817 fix(cpus): workaround for Cortex-X4 erratum 3076789
Cortex-X4 erratum 3076789 is a Cat B erratum that is present
in revisions r0p0, r0p1 and is fixed in r0p2.

The workaround is to set chicken bits CPUACTLR3_EL1[14:13]=0b11
and CPUACTLR_EL1[52] = 1.
Expected performance degradation is < 0.5%, but isolated
benchmark components might see higher impact.

SDEN documentation:
https://developer.arm.com/documentation/SDEN2432808/latest

Change-Id: Ib100bfab91efdb6330fdcdac127bcc5732d59196
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-09-30 13:49:13 +01:00
Madhukar Pappireddy
bccc22756a Merge changes from topic "nxp-s32g274a/err051700" into integration
* changes:
  feat(s32g274a): enable workaround for ERR051700
  fix(s32g274a): workaround for ERR051700 erratum
2024-09-27 18:30:42 +02:00
Divin Raj
53e75cfa3e docs(rd1ae): add RD-1 AE documentation
Documenting RD-1 AE features, boot sequence, and build
procedure.

Signed-off-by: Divin Raj <divin.raj@arm.com>
Change-Id: Ie93438931e9ead42a2a6dd2d752d37bc06fa2e32
2024-09-27 15:01:43 +01:00
Peter Hoyes
f661c74b52 feat(rd1ae): introduce Arm RD-1 AE platform
Create a new platform for the RD-1 AE automotive FVP.
This platform contains:
 * Neoverse-V3AE, Arm9.2-A application processor
 * A GICv4-compatible GIC-720AE
 * 128 MB of SRAM, of which 1 MB is reserved for TF-A

and BL2 runs at ELmax (EL3).

Additionally, this commit updates the maintainers.rst file and
the changelog.yaml to add scope for RD-1 AE variants.

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Signed-off-by: Divin Raj <divin.raj@arm.com>
Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Change-Id: I9ae64b3f05a52653ebd1d334b15b7f21821264e2
2024-09-27 14:59:36 +01:00
Divin Raj
973e0b7f2c feat(arm): add support for loading CONFIG from BL2
This commit introduces a new ARM platform-specific build option called
`ARM_FW_CONFIG_LOAD_ENABLE`. This option enables the loading of the
`fw_config` device tree when resetting to the BL2 scenario.

Additionally, the FW_CONFIG image reference has been added to the
fdts/tbbr_cot_descriptors.dtsi file in order to use in the scenario of
RESET_TO_BL2.

Signed-off-by: Divin Raj <divin.raj@arm.com>
Change-Id: I11de497b7dbb1386ed84d939d6fd2a11856e9e1b
2024-09-27 14:58:58 +01:00
Ghennadi Procopciuc
b47d085a3b fix(s32g274a): workaround for ERR051700 erratum
ERR051700 erratum is present on all S32CC-based SoCs and relates to
reset. Releasing multiple Software Resettable Domains (SRDs) from
reset simultaneously, may cause a false error in the fault control
unit.

The workaround is to clear the SRD resets sequentially instead of
simultaneously.

Change-Id: I883bc223bf6834907259e6964a5702d7186e4c7f
Signed-off-by: Alexandru-Catalin Ionita <alexandru-catalin.ionita@nxp.com>
Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
2024-09-25 15:13:33 +03:00
Arvind Ram Prakash
609d08a86d fix(cpus): workaround for Cortex-X4 erratum 2897503
Cortex-X4 erratum 2897503 is a Cat B erratum that applies
to all revisions <= r0p1 and is fixed in r0p2.

The workaround is to set CPUACTLR4_EL1[8] to 1.

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

Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: I3178a890b6f1307b310e817af75f8fdfb8668cc9
2024-09-24 23:16:12 +02:00
Manish V Badarkhe
87633319fa Merge "docs: update TF-A Nov'24 release dates" into integration 2024-09-23 13:34:19 +02:00
Ryan Everett
5acc316466 docs(prerequisites): update MbedTLS version to 3.6.1
This new update to the LTS branch of MbedTLS provides minor
enhancements and bug fixes; including some security
fixes, and a fix to a compilation warning which
previously affected TF-A.
Full patch notes to this MbedTLS update can be found at
https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.1.

Change-Id: I1a68dfcb52a8361c1689cb6ef12d265a6462fda3
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-09-19 10:36:55 +02:00
Madhukar Pappireddy
3406ff00aa docs: fix ff-a manifest binding document
The support for runtime-model has never been implemented by any SPMC.
Hence, remove the corresponding field from binding document.

Also, fix the incorrect description of the `managed-exit-virq` property.

Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
Change-Id: I0a5ef3f08202a8c76edd9a6e1ac680ac3a38ca60
2024-09-18 15:10:13 -05:00
Olivier Deprez
b80feed760 docs: update TF-A Nov'24 release dates
Planning TF-A v2.12 release in Nov'24.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I0fa6885cc67e13560a79f8144bc23df6172a05c0
2024-09-18 14:29:15 +02:00
Davidson K
ac22a77c96 docs: add load address relative offset node
When this is provided in the partition manifest, it should be added to
the load address to get the base address of the region.

Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
Change-Id: Ib6d3d6a29af0a3eb87fac67c58220ba25342e1cd
2024-09-16 14:23:14 +05:30
Manish V Badarkhe
ccd580c453 Merge changes I09ab0a5c,I87d0a492,I613a52ae,I2fcd8d32,Ie91527a7, ... into integration
* changes:
  feat(stm32mp2): manage DDR FW via FIP
  feat(stm32mp2): introduce DDR type compilation flags
  feat(stm32mp2): add RISAB registers description
  feat(stm32mp2-fdts): add BL31 info in fw-config
  feat(stm32mp2): add minimal support for BL31
  feat(st): manage BL31 FCONF load_info struct
2024-09-16 10:34:52 +02:00
Maxime Méré
ae84525f44 feat(stm32mp2): manage DDR FW via FIP
This feature is enabled by default using STM32MP_DDR_FIP_IO_STORAGE.

DDR firmware binary is loaded from FIP to SRAM1 which needs to be
mapped.
Only half of the SRAM1 will be allocated to TF-A.
RISAB3 has to be configured to allow access to SRAM1.
Add image ID and update maximum number on platform side also.

Fill related descriptor information, add policy and update numbers.
DDR_TYPE variable is used to identify binary file, and image is now
added in the fiptool command line.

The DDR PHY firmware is not in TF-A repository. It can be found at
https://github.com/STMicroelectronics/stm32-ddr-phy-binary
To ease the selection of the firmware path, STM32MP_DDR_FW_PATH is added
to platform.mk file.

Change-Id: I09ab0a5c63406055a7b5ccd16d65e443de47ca2f
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Maxime Méré <maxime.mere@foss.st.com>
2024-09-13 17:57:58 +02:00
Manish V Badarkhe
056b4154ae Merge changes from topic "draft-ffm-rats-cca-token-00" into integration
* changes:
  refactor(docs): update RSE docs to match the example CCA token
  refactor(qemu): use the example CCA platform token from iat-verifier
  refactor(fvp): use the example CCA platform token from iat-verifier
2024-09-13 16:22:46 +02:00
Juan Pablo Conde
42cf602662 refactor(rmmd): plat token requests in pieces
Until now, the attestation token size was limited by the size of the
shared buffer between RMM and TF-A. With this change, RMM can now
request the token in pieces, so they fit in the shared buffer. A new
output parameter was added to the SMC call, which will return (along
with the size of bytes copied into the buffer) the number of bytes
of the token that remain to be retrieved.

TF-A will keep an offset variable that will indicate the position in
the token where the next call will retrieve bytes from. This offset
will be increased on every call by adding the number number of bytes
copied. If the received hash size is not 0, TF-A will reset the
offset to 0 and copy from that position on.

The SMC call will now return at most the size of the shared buffer
in bytes on every call. Therefore, from now on, multiple SMC calls
may be needed to be issued if the token size exceeds the shared
buffer size.

Change-Id: I591f7013d06f64e98afaf9535dbea6f815799723
Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com>
2024-09-13 16:04:16 +02:00
Tamas Ban
5c8b5f9f8b refactor(docs): update RSE docs to match the example CCA token
The RSE documentation includes binary and JSON dumps of the CCA platform
token. This change updates those to match the example CCA platform
token from [1] and [2], which is also the one returned by the FVP and
QEMU platforms.

[1] https://review.trustedfirmware.org/c/TF-M/tf-m-tools/+/30812
[2] https://review.trustedfirmware.org/c/TF-M/tf-m-tools/+/31036

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: Icf91035c5a56c8fa34a7055a969a6ebd8242d460
2024-09-13 13:04:53 +02:00
Manish V Badarkhe
afcb696e20 docs: fix typos in cot binding
Fixed a few typos in the cot binding document.

Change-Id: I043187b3f4b516db944e82569307834df2c3c72a
Signed-off-by: sah01 <sahil@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2024-08-29 17:31:35 +01:00
Olivier Deprez
241ec3a5af Merge changes from topic "mb/cot-fixes" into integration
* changes:
  fix(cot-dt2c): fix various breakages
  fix(cot-dt2c): use processed Device Tree source file as input
2024-08-29 12:06:50 +02:00
Soby Mathew
881b041e86 Merge "feat(rme): change the default max GPT block size to 512MB" into integration 2024-08-29 12:01:43 +02:00
Julius Werner
b5a0c9bee2 docs(maintainers): remove jwerner from Rockchip
I originally added myself here because I had experience with the rk3399
code, when there were no other maintainers and that was the only
supported Rockchip SoC. Nowadays there are maintainers from the actual
manufacturer and most changes concern other SoCs, so I don't think it
makes sense for me to still be on here.

Change-Id: Id75089e62cf1a8b4cf1a27903808922968520636
Signed-off-by: Julius Werner <jwerner@chromium.org>
2024-08-27 16:24:06 -07:00
Manish V Badarkhe
e19977d664 fix(cot-dt2c): use processed Device Tree source file as input
Update the test files to eliminate the use of preprocessor macros,
as the tool now requires processed output. The documentation has
also been revised accordingly.

Additionally, remove the Device Tree Source test files that were
added to test the #ifdef conditions.

Change-Id: I13a682db20e5e44170fc25a2e2dbedd45b9c7321
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2024-08-27 12:50:20 +01:00
Mark Dykes
44418fce30 Merge changes from topics "rockchip", "rockchip-rk3588" into integration
* changes:
  feat(rk3588): support SCMI for clock/reset domain
  feat(rk3588): support rk3588
2024-08-22 21:53:05 +02:00
Soby Mathew
01faa994ce feat(rme): change the default max GPT block size to 512MB
Previously the max GPT block size was set to 2MB as a conservative
default. For workloads making use of SMMU in Normal world, and has
a Stage 2 block mapping of large sizes like 512MB or 1GB, then a
max GPT block size of 2MB may result in performance regression.
Hence this patch changes the default max GPT block size from 2MB to 512MB.

Change-Id: If90f12f494ec0f44d3e5974df8d58fcb528cfd34
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
2024-08-22 13:40:17 +02:00
Mark Dykes
31826ba221 Merge "fix(cpus): workaround for Cortex-A720 erratum 2792132" into integration 2024-08-21 16:41:19 +02:00
Manish V Badarkhe
4b6e4e618e Merge changes from topic "mp/simd_ctxt_mgmt" into integration
* changes:
  feat(fvp): allow SIMD context to be put in TZC DRAM
  docs(simd): introduce CTX_INCLUDE_SVE_REGS build flag
  feat(fvp): add Cactus partition manifest for EL3 SPMC
  chore(simd): remove unused macros and utilities for FP
  feat(el3-spmc): support simd context management upon world switch
  feat(trusty): switch to simd_ctx_save/restore apis
  feat(pncd): switch to simd_ctx_save/restore apis
  feat(spm-mm): switch to simd_ctx_save/restore APIs
  feat(simd): add rules to rationalize simd ctxt mgmt
  feat(simd): introduce simd context helper APIs
  feat(simd): add routines to save, restore sve state
  feat(simd): add sve state to simd ctxt struct
  feat(simd): add data struct for simd ctxt management
2024-08-20 22:30:06 +02:00
Arvind Ram Prakash
b1bde25ed9 fix(cpus): workaround for Cortex-A720 erratum 2792132
Cortex-A720 erratum 2792132 is a Cat B erratum that is present
in revision r0p0, r0p1 and is fixed in r0p2.

The workaround is to set bit[26] of the CPUACTLR2_EL1 to 1.

SDEN documentation:
https://developer.arm.com/documentation/SDEN2439421/latest

Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: I8d11fe65a2ab5f79244cc3395d0645f77256304c
2024-08-19 15:19:08 -05:00
Madhukar Pappireddy
50fba2db86 docs(simd): introduce CTX_INCLUDE_SVE_REGS build flag
This patch documents the support for the newly introduced
CTX_INCLUDE_SVE_REGS build flag. Since this build flag is influenced
by other build flags, the relevant sections have been updated with
proper guidance.

This patch also documents the SEPARATE_SIMD_SECTION build flag.

Change-Id: I07852c4a65239c6a9c6de18a95c61aac429bec1c
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
2024-08-19 11:12:06 -05:00
Manish V Badarkhe
553b70c3ef Merge changes from topic "ar/asymmetricSupport" into integration
* changes:
  feat(tc): enable trbe errata flags for Cortex-A520 and X4
  feat(cm): asymmetric feature support for trbe
  refactor(errata-abi): move EXTRACT_PARTNUM to arch.h
  feat(cpus): workaround for Cortex-A520(2938996) and Cortex-X4(2726228)
  feat(tc): make SPE feature asymmetric
  feat(cm): handle asymmetry for SPE feature
  feat(cm): support for asymmetric feature among cores
  feat(cpufeat): add new feature state for asymmetric features
2024-08-19 11:56:49 +02:00
Arvind Ram Prakash
4a97ff5111 feat(cpus): workaround for Cortex-A520(2938996) and Cortex-X4(2726228)
This patch implements errata functions for two errata, both of them
disable TRBE as a workaround. This patch doesn't have functions
that disable TRBE but only implemented helper functions that are
used to detect cores affected by Errata 2938996(Cortex-A520) & 2726228(Cortex-X4)

Cortex-X4 SDEN documentation:
    https://developer.arm.com/documentation/SDEN2432808/latest

Cortex-A520 SDEN Documentation:
    https://developer.arm.com/documentation/SDEN-2444153/latest

Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: I8f886a1c21698f546a0996c719cc27dc0a23633a
2024-08-17 09:37:55 +01:00
Manish Pandey
43d1d951dd feat(cpufeat): add new feature state for asymmetric features
Introduce a new feature state CHECK_ASYMMETRIC to cater for the features
which are asymmetric across cores. This state is useful for platforms
which has architectural asymmetric cores (A feature is only present in
one type of core e.g. big).
This state is similar to FEAT_STATE_CHECK (dynamic detection) except
that feature state is also checked on each core during warmboot path and
override the context (just for asymmetric features) which was setup by
core executing CPU_ON call.

Only Non-secure context will be re-checked as secure and realm context
is created on same core.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: Ic78a0b6ca996e0d7881c43da1a6a0c422f528ef3
2024-08-17 09:35:13 +01:00
Manish V Badarkhe
2d4f264ba5 Merge changes from topic "romlib-fixes" into integration
* changes:
  fix(romlib): wrap indirectly included functions
  fix(arm): remove duplicate jumptable entry
2024-08-17 10:09:06 +02:00
Mark Dykes
abeb8ad6c1 Merge "fix(cpus): workaround for Cortex-A720 erratum 2844092" into integration 2024-08-17 00:18:54 +02:00