Commit graph

13662 commits

Author SHA1 Message Date
Sandrine Bailleux
b65dfe40ae chore(auth)!: remove CryptoCell-712/713 support
CryptoCell-712 and CryptoCell-713 drivers have been deprecated since
TF-A v2.9 and their removal was announced for TF-A v2.10 release.
See [1].

As the release is approaching, this patch deletes these drivers' code as
well as all references to them in the documentation and Arm platforms
code (Nuvoton platform is taken care in a subsequent patch). Associated
build options (ARM_CRYPTOCELL_INTEG and PLAT_CRYPTOCELL_BASE) have also
been removed and thus will have no effect if defined.

This is a breaking change for downstream platforms which use these
drivers.

[1] https://trustedfirmware-a.readthedocs.io/en/v2.9/about/release-information.html#removal-of-deprecated-drivers
    Note that TF-A v3.0 release later got renumbered into v2.10.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: Idabbc9115f6732ac1a0e52b273d3380677a39813
2023-11-08 10:42:33 +02:00
Manish Pandey
d4f5063337 Merge changes Ia72b2542,I1eba5671 into integration
* changes:
  chore(compiler-rt): update compiler-rt source files
  chore(zlib): update zlib to version 1.3
2023-11-07 17:56:50 +01:00
Manish Pandey
2f306f892e Merge "chore(libfdt): update header files to v1.7.0 tag" into integration 2023-11-07 17:25:56 +01:00
Manish Pandey
e5e39c3514 Merge "refactor(cm): introduce INIT_UNUSED_NS_EL2 macro" into integration 2023-11-07 17:24:56 +01:00
Olivier Deprez
5e86ba2138 Merge "fix(el3-spmc): remove experimental flag" into integration 2023-11-07 16:02:02 +01:00
Manish V Badarkhe
c1701c8ec9 Merge changes from topic "ns/spmc_at_el3" into integration
* changes:
  feat(sgi): increase sp memmap size
  feat(build): include plat header in fdt build
  feat(docs): save BL32 image base and size in entry point info
  feat(arm): save BL32 image base and size in entry point info
2023-11-07 15:47:44 +01:00
Olivier Deprez
e0c7d8f56c Merge "fix(smccc): ensure that mpidr passed through SMC is valid" into integration 2023-11-07 13:35:30 +01:00
Olivier Deprez
630a06c4c6 fix(el3-spmc): remove experimental flag
The EL3 SPMC is known to be deployed into end products and properly
tested since its introduction into TF-A v2.7.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I96bb897cfefef20c33cfc39627b10746dce5485c
2023-11-07 12:14:47 +01:00
Nishant Sharma
7c33bcab59 feat(sgi): increase sp memmap size
With FF-A enabled on SP at SEL0 enabled, SPMC at EL3 needs more entries
to map newly added regions(SP, Rx/Tx buffer and Manifest).

Increase the PLAT_SP_IMAGE_MMAP_REGIONS to 14 and MAX_XLAT_TABLES to 9.

Signed-off-by: Sayanta Pattanayak <sayanta.pattanayak@arm.com>
Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
Change-Id: I96fd291db8eb178f7aa73b5a9e38cfc67c66fa91
2023-11-07 10:36:53 +00:00
Nishant Sharma
e03dcc8f5e feat(build): include plat header in fdt build
Include platform headers in DT build to enable build time configuration
of number of execution context supported by the platform.

Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
Change-Id: I5b9ffc9865f198a1f802fcb5e0950a5fabb48727
2023-11-07 10:36:53 +00:00
Nishant Sharma
31dcf23451 feat(docs): save BL32 image base and size in entry point info
There is no platform function to retrieve the info in the generic code.
Populate the BL32 image base, size and max limit in arg2, arg3 and arg4.

Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
Change-Id: I35527fb41829102083b488a5150c0c707c5ede15
2023-11-07 10:36:53 +00:00
Nishant Sharma
821b01fa75 feat(arm): save BL32 image base and size in entry point info
There is no platform function to retrieve the info in the generic code.
Populate the BL32 image base, size and max limit in arg2, arg3 and arg4.

Signed-off-by: Achin Gupta <achin.gupta@arm.com>
Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
Change-Id: Id41cedd790ca1713787e5516fb84666d1ccb0b03
2023-11-07 10:36:53 +00:00
Arvind Ram Prakash
183329a584 refactor(cm): introduce INIT_UNUSED_NS_EL2 macro
Introducing INIT_UNUSED_NS_EL2 macro which guards the code that
disables the unused EL2 when a platform hands off from EL3
to NS-EL1 instead of NS-EL2. Platforms without NS-EL2 in use
must enable this flag.

BREAKING CHANGE: Initialisation code for handoff from EL3 to NS-EL1
disabled by default. Platforms which do that need to enable this macro
going forward

Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: I61431cc4f7e2feb568d472828e5fd79cc73e51f5
2023-11-06 22:57:16 +01:00
Manish Pandey
cdd6089db0 chore(compiler-rt): update compiler-rt source files
Update the compiler-rt source files to the tip of llvm-project [1].

[1] https://github.com/llvm/llvm-project/commit/ab97b89d03a7

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: Ia72b25423896a530bf5bb68ff067184b2314e2be
2023-11-06 21:14:01 +00:00
Manish Pandey
fd39217a74 chore(zlib): update zlib to version 1.3
Update the zlib source files to the latest tagged version 1.3 [1].

[1] https://github.com/madler/zlib/tree/v1.3

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I1eba5671efab75699e68fc2f2aa9400d0f5aba7d
2023-11-06 21:13:38 +00:00
Manish Pandey
d3a9990c6a chore(libfdt): update header files to v1.7.0 tag
As part of TF-A 2.9.0 release, libfdt version was updated to its last
tagged version (1.7.0) with commit 058e017e5. This commit has only
updated the source files of libfdt but did not update header files.

This patch updates the libfdt header files in include/lib/libfdt to
the tagged version v1.7.0

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I09a0f51435b343c3e1cac45075fe7d28cbcae867
2023-11-06 21:13:22 +00:00
Manish Pandey
e60c18471f fix(smccc): ensure that mpidr passed through SMC is valid
There are various SMC calls which pass mpidr as an argument which is
currently tested at random places in SMC call path.
To make the mpidr validation check consistent across SMC calls, do
this check as part of SMC argument validation.

This patch introduce a helper function is_valid_mpidr() to validate
mpidr and call it as part of validating SMC arguments at starting of
SMC handlers (which expect mpidr as an argument).

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I11ea50e22caf17896cf4b2059b87029b2ba136b1
2023-11-06 20:43:38 +00:00
Manish Pandey
5a4c3f0baa Merge "fix(sdei): ensure that interrupt ID is valid" into integration 2023-11-06 19:01:26 +01:00
Joanna Farley
1684c8d6a1 Merge changes from topic "enable_assertion" into integration
* changes:
  feat(zynqmp): enable assertion
  feat(versal-net): enable assertion
  feat(versal): enable assertion
2023-11-06 17:55:20 +01:00
Lauren Wehrmeister
11a8a3e935 Merge changes from topic "errata" into integration
* changes:
  fix(cpus): workaround for Cortex-X2 erratum 2742423
  fix(cpus): workaround for Cortex-A710 erratum 2742423
  fix(cpus): workaround for Neoverse N2 erratum 2340933
  fix(cpus): workaround for Neoverse N2 erratum 2346952
2023-11-06 17:33:30 +01:00
Madhukar Pappireddy
9ac3bcdd9a Merge "fix(ti): release lock in all TI-SCI xfer return paths" into integration 2023-11-06 15:50:27 +01:00
Joanna Farley
bfb8d8eba6 Merge "feat(xilinx): switch boot console to runtime" into integration 2023-11-06 14:55:07 +01:00
Olivier Deprez
29683ef78f Merge "docs: add TF-A version numbering information" into integration 2023-11-06 13:51:33 +01:00
Joanna Farley
d5fe7088ce Merge "feat(zynqmp): remove pm_ioctl_set_sgmii_mode api" into integration 2023-11-06 09:21:54 +01:00
Andrew Davis
e92375e07c fix(ti): release lock in all TI-SCI xfer return paths
Failing to send a message is often not fatal and we will end up trying
to send again. This would fail as some exit paths do not release the
secure proxy xfer lock. Release this lock on all return paths.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: I3939015774f819572dbd26720b2c105fba7574cb
2023-11-03 14:46:47 -05:00
Manish V Badarkhe
9bb15ab53a Merge changes from topic "morello/firmware-revision" into integration
* changes:
  feat(morello): add TF-A version string to NT_FW_CONFIG
  feat(morello): set NT_FW_CONFIG properties for MCC, PCC and SCP version
2023-11-03 14:31:40 +01:00
Joanna Farley
dd532b9e1d Merge changes from topic "xlnx_tsp_feat" into integration
* changes:
  docs(versal-net): add TSP build documentation
  docs(versal): add TSP build documentation
  feat(versal-net): add tsp support
  feat(versal): add tsp support
  refactor(xilinx): add generic TSP makefile
  chore(zynqmp): reorganize tsp code into common path
  refactor(xilinx): rename platform function to generic name
2023-11-03 14:29:49 +01:00
Yann Gautier
3e56c69f3f docs: add TF-A version numbering information
Add a chapter "Version numbering" in release information file that
explains macros used for TF-A version. It also introduces VERSION_PATCH
macro that is used for LTS releases. A comment for this macro is also
added in Makefile.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I946b6cb91bb8454131f07b24534d28ab1aef1771
2023-11-03 10:57:56 +01:00
Werner Lewis
f4e64d1f5e feat(morello): add TF-A version string to NT_FW_CONFIG
TF-A version string is passed into NT_FW_CONFIG to allow access in
UEFI.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
Change-Id: I9da7b93d30c9d9230ea9a2cd2730cde897ffc580
2023-11-03 09:30:52 +00:00
Werner Lewis
10fd85d8f4 feat(morello): set NT_FW_CONFIG properties for MCC, PCC and SCP version
SDS firmware version structure is added with MCC, PCC and SCP firmware
version members. These are set in NT_FW_CONFIG to provide access to
firmware version information in UEFI.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
Change-Id: Ib0c476e54ef428fb7904f0de5c6f4df6a5fbd7db
2023-11-03 09:30:52 +00:00
Ronak Jain
7414aaa1a1 feat(zynqmp): remove pm_ioctl_set_sgmii_mode api
There are no existing users of pm_ioctl_set_sgmii_mode() API so
cleanup the dead code.

Change-Id: I1088d2f5c944bf54fc5fdd554360bdd321ad798a
Signed-off-by: Ronak Jain <ronak.jain@amd.com>
2023-11-03 01:54:46 -07:00
Soby Mathew
93823fb6ec Merge "fix(rmmd): enable sme using sme_enable_per_world" into integration 2023-11-02 19:52:22 +01:00
Arunachalam Ganapathy
c0e16d30ab fix(rmmd): enable sme using sme_enable_per_world
Enable SME for RMM using sme_enable_per_world as well as sme_enable.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I6070f4778e507ac9cbc7442e727bedad9b40e635
2023-11-02 20:49:31 +02:00
Bipin Ravi
fe06e118ab fix(cpus): workaround for Cortex-X2 erratum 2742423
Cortex-X2 erratum 2742423 is a Cat B erratum that applies to all
revisions <= r2p1 and is still open.
The workaround is to set CPUACTLR5_EL1[56:55] to 2'b01.

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

Change-Id: I03897dc2a7f908937612c2b66ce7a043c1b7575d
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
2023-11-02 10:12:36 -05:00
Bipin Ravi
d7bc2cb430 fix(cpus): workaround for Cortex-A710 erratum 2742423
Cortex-A710 erratum 2742423 is a Cat B erratum that applies to all
revisions <= r2p1 and is still open. The workaround is to set
CPUACTLR5_EL1[56:55] to 2'b01.

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

Change-Id: I4d9d3760491f1e6c59b2667c16d59b99cc7979f1
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
2023-11-02 10:12:36 -05:00
Bipin Ravi
68085ad482 fix(cpus): workaround for Neoverse N2 erratum 2340933
Neoverse N2 erratum 2340933 is a Cat B erratum that applies to
revision r0p0 and is fixed in r0p1. The workaround is to set
CPUACTLR5_EL1[61] to 1.

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

Change-Id: I121add0dd35072c53392d33f049d893a5ff6354f
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
2023-11-02 10:12:36 -05:00
Bipin Ravi
6cb8be17a5 fix(cpus): workaround for Neoverse N2 erratum 2346952
Neoverse N2 erratum 2346952 is a Cat B erratum that applies to all
revisions <= r0p2 and is fixed in r0p3.
The workaround is to set L2 TQ size statically to it's full size.

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

Change-Id: I03c3cf1f951fbc906fdebcb99a523c5ac8ba055d
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
2023-11-02 10:12:33 -05:00
Manish Pandey
d7cff32a46 Merge "fix(build): remove duplicated include order" into integration 2023-11-02 15:39:17 +01:00
Manish Pandey
6f802c44e9 Merge changes from topic "mp/exceptions" into integration
* changes:
  docs(ras): update RAS documentation
  docs(el3-runtime): update BL31 exception vector handling
  fix(el3-runtime): restrict lower el EA handlers in FFH mode
  fix(ras): remove RAS_FFH_SUPPORT and introduce FFH_SUPPORT
  fix(ras): restrict ENABLE_FEAT_RAS to have only two states
  feat(ras): use FEAT_IESB for error synchronization
  feat(el3-runtime): modify vector entry paths
2023-11-02 14:34:53 +01:00
Manish Pandey
5fc1a32a94 Merge "docs: deletion of a few deprecated platforms not yet confirmed" into integration 2023-11-02 10:57:21 +01:00
Prasad Kummari
41b5a23c8f docs(versal-net): add TSP build documentation
Add information about Versal NET platform for TSP and provide
the build commands.

Change-Id: Id7c9d75f8a42813ca2bfd18494bfc6b73df0af52
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
2023-11-02 07:29:42 +01:00
Prasad Kummari
7b7c535064 docs(versal): add TSP build documentation
Add information about Versal platform for TSP and provide
the build commands.

Change-Id: I7106ab477a881c58e1c45863bd6854d188982282
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
2023-11-02 07:29:34 +01:00
Prasad Kummari
639b3676cc feat(versal-net): add tsp support
Introduces support for the Test Secure Payload (TSP) for AMD-Xilinx
Versal NET platform. TSP is a component for testing  and validating
secure OS and trusted execution environments.

If a BL32 image is present, then there must be a matching Secure-EL1
Payload Dispatcher (SPD) service called TSPD, this service is
responsible for Initializing the TSP. During initialization that
service must register a function to carry out initialization of BL32
once the runtime services are fully initialized. BL31 invokes such
a registered function to initialize BL32 before running BL33.

The GICv3 driver is initialized in EL3 and does not need to be
initialized again in SEL1 GICv3 driver is initialized in EL3 This is
because the S-EL1 can use GIC system registers to manage interrupts
and does not need GIC interface base addresses to be configured.

The secure code load address is initially being pointed to 0x0 in the
handoff parameters, which is different from the default or user-provided
load address of 0x60000000. In this case, set up the PC to the
requested BL32_BASE address to ensure that the secure code is loaded
and executed from the correct location.

Change-Id: I58fe256dc9d6be5cee384c5ebb9baca2737c02a6
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
2023-11-02 11:56:32 +05:30
Prasad Kummari
7ff4d4fbe5 feat(versal): add tsp support
Introduces support for the Test Secure Payload (TSP) for AMD-Xilinx
Versal platform. TSP is a component for testing  and validating
secure OS and trusted execution environments.

If a BL32 image is present, then there must be a matching Secure-
EL1 Payload Dispatcher (SPD) service called TSPD, this service
is responsible for Initializing the TSP. During initialization that
service must register a function to carry out initialization of
BL32 once the runtime services are fully initialized. BL31 invokes
such a registered function to initialize BL32 before running BL33.

The GICv3 driver is initialized in EL3 and does not need to be
initialized again in SEL1 GICv3 driver is initialized in EL3
This is because the S-EL1 can use GIC system registers to manage
interrupts and does not need GIC interface base addresses to be
configured.

The secure code load address is initially being pointed to 0x0
in the handoff parameters, which is different from the default
or user-provided load address of 0x60000000. In this case, set up
the PC to the requested BL32_BASE address to ensure that the secure
code is loaded and executed from the correct location.

Change-Id: Ida0fc6467a10bfde8927ff9b3755a83f3e16f068
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
2023-11-02 06:04:56 +01:00
Prasad Kummari
0561070ebf refactor(xilinx): add generic TSP makefile
Updated the generic TSP makefile in the common path for reuse in
different platforms.

Change-Id: Idd14675bc547e0a4a95132653a181e7ff39a547a
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
2023-11-02 10:11:20 +05:30
Madhukar Pappireddy
857c764325 Merge changes from topic "fw-caps" into integration
* changes:
  feat(ti): query firmware for suspend capability
  feat(ti): add TI-SCI query firmware capabilities command support
  feat(ti): remove extra core counts in cluster 2 and 3
2023-11-01 21:26:33 +01:00
Govindraj Raja
c189adbd55 fix(build): remove duplicated include order
Commit(3547270f5 refactor(build): reorder platform Makefile
evaluation) re-ordered platform makefile inclusion before
arch_features evaluations, but then it fails to remove the dependency
that were moved and thus have double evaluation of some build
variables apparently this breaks BUILD_PLAT.

Additionally remove duplicate checks in SPMD similar checks are in
place in main level makefile.

Change-Id: I5a71624fc43977054467ec6502ce359fb1d08838
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2023-11-01 13:54:58 -05:00
Manish Pandey
a7eff3477d fix(sdei): ensure that interrupt ID is valid
As per SDEI spec (section 5.1.14.1), SDEI_INTERRUPT_BIND interface
expects a valid PPI or SPI. SGI's are not allowed to be bounded.
Current check in the code only checks for an SGI and returns invalid
ID. This check is insufficient as it will not catch architecturally
invalid interrupt IDs.

Modify the check to ensure that interrupt is either PPI or SPI.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I52eb0a6d7f88a12f6816cff9b68fb3a7ca12cbb7
2023-11-01 18:42:34 +00:00
Manish Pandey
899bcc8458 Merge "fix(tegra): return correct error code for plat_core_pos_by_mpidr" into integration 2023-11-01 19:41:38 +01:00
Manish Pandey
6bd79b13f8 fix(tegra): return correct error code for plat_core_pos_by_mpidr
The error code for plat_core_pos_by_mpidr() for an invalid mpidr should
be -1 as mandated by portig guide, but for tegra t186 return value is
PSCI_E_NOT_PRESENT (-7) even though the comment at top of function says
that it should return -1.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I2b69bc1a56f7966f21b2a3c89c515ebde41e3eb8
2023-11-01 19:41:32 +01:00