Commit graph

15397 commits

Author SHA1 Message Date
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
Divin Raj
2638496965 feat(rd1ae): enabling Trusted Board Boot(TBB) for RD-1 AE
In this commit, Trusted Board Boot has been enabled for the RD-1 AE
platform, and the non-volatile counter remains at the default
values since the non-volatile counter is read-only for Arm
development platforms.

Signed-off-by: Divin Raj <divin.raj@arm.com>
Change-Id: I2e1072101e56da0e474d2a3e9802e5d65a77fd55
2024-09-27 15:00:38 +01:00
Peter Hoyes
daf934ca91 feat(rd1ae): introduce BL31 for RD-1 AE platform
This commit introduces BL31 to the RD-1 AE platform. The RD-1 AE
platform incorporates an SCP for CPU power control.

Additinaly introducing the memory descriptor provides BL image
information that gets used by BL2 to load the images

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Signed-off-by: Divin Raj <divin.raj@arm.com>
Change-Id: I035cbfd09f254aa47483ad35676f1cb3ffb661bd
2024-09-27 15:00:19 +01:00
Divin Raj
bb7c7e7130 feat(rd1ae): add device tree files
This commit Add FW_CONFIG and HW_CONFIG device trees

Signed-off-by: Divin Raj <divin.raj@arm.com>
Change-Id: Ia6cbf06def8ec9b74ef9040bab801278a3117899
2024-09-27 14:59:57 +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
8d5c762731 build(bl2): enable check for bl2 base overflow assert
Currently, the BL2 base overflow check asserts for all cases,
but this check is only necessary if not reset to BL2 case.
Therefore, adding a condition for this check.

Signed-off-by: Divin Raj <divin.raj@arm.com>
Change-Id: Ia129921d76bcd32058ea0767db0319e6724be8ab
2024-09-27 14:59:14 +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
Madhukar Pappireddy
bcce173da3 Merge changes from topic "rd-v3-reset-to-bl31" into integration
* changes:
  feat(neoverse-rd): allow RESET_TO_BL31 for third gen platforms
  feat(arm): setup GPT in BL31 in RESET_TO_BL31 boot flow
  feat(neoverse-rd): enable RESET_TO_BL31 for RD-V3
  feat(neoverse-rd): add a routine to update NT_FW_CONFIG in BL31
2024-09-26 21:23:43 +02:00
Yann Gautier
fb02c4b290 Merge "fix(xilinx): fix comment about MEM_BASE/SIZE" into integration 2024-09-26 18:01:45 +02:00
Manish Pandey
b1cbcc46d9 Merge "fix(el3-spmc): use write_el1_ctx_timer() macro to set cntkctl_el1 value" into integration 2024-09-26 16:50:08 +02:00
Michal Simek
1e2a5e2851 fix(xilinx): fix comment about MEM_BASE/SIZE
Comment is not showing correct macro name that's why fix it.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: I8bc38534309285af8a27ee43782e03e9d0470267
2024-09-26 14:41:53 +02:00
Mark Dykes
e6f7929d12 Merge "fix(cpus): workaround for Cortex-X4 erratum 2897503" into integration 2024-09-25 17:04:20 +02:00
Manish V Badarkhe
1297a45d6a Merge changes from topic "dynamic-toolchain" into integration
* changes:
  build: allow multiple toolchain defaults
  build: determine toolchain tools dynamically
2024-09-25 13:53:54 +02:00
Vijayenthiran Subramaniam
4abcfd8b2c feat(neoverse-rd): allow RESET_TO_BL31 for third gen platforms
Allow building RESET_TO_BL31 for third generation neoverse-rd
platforms.

Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Signed-off-by: Rakshit Goyal <rakshit.goyal@arm.com>
Change-Id: I30256969e5671043b3e58c76922985f7252429af
2024-09-25 12:13:38 +05:30
Rakshit Goyal
1547e5e666 feat(arm): setup GPT in BL31 in RESET_TO_BL31 boot flow
In the normal boot flow, BL2 sets up the Granule Protection Tables
(GPT). As BL2 is not a part of RESET_TO_BL31, BL31 needs to set up GPT
for CPUs supporting FEAT_RME.

Signed-off-by: Rakshit Goyal <rakshit.goyal@arm.com>
Change-Id: I9ad16bd93ea9fbad422dd56e2ba1d600a30eea30
2024-09-25 12:12:57 +05:30
Vivek Gautam
527fc46541 feat(neoverse-rd): enable RESET_TO_BL31 for RD-V3
Update addresses for BL31, BL33 and NT_FW_CONFIG. Also add the PAS
entries to setup GPT tables in BL31.

Signed-off-by: Vivek Gautam <vivek.gautam@arm.com>
Signed-off-by: Rakshit Goyal <rakshit.goyal@arm.com>
Change-Id: I8947660bb96fdf2f178e560b387e4bc93bf68abf
2024-09-25 12:08:04 +05:30
Rakshit Goyal
c6b27c4916 feat(neoverse-rd): add a routine to update NT_FW_CONFIG in BL31
In the BL1 based boot-flow, the non-secure DTB, NT_FW_CONFIG, is parsed
in BL2. As BL1 and BL2 are not part of RESET_TO_BL31, add support to
parse and configure this DTB in BL31. NT_FW_CONFIG contains the platform
information which is needed by BL33.

Signed-off-by: Rakshit Goyal <rakshit.goyal@arm.com>
Signed-off-by: Vivek Gautam <vivek.gautam@arm.com>
Change-Id: Ib1fb5417c36523eb2ec02aa22845218de68809aa
2024-09-25 11:47:15 +05:30
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
Madhukar Pappireddy
833e59c0c1 Merge changes from topic "nxp-drivers/add-get-parent-callback" into integration
* changes:
  feat(nxp-clk): refactor clock enablement
  feat(nxp-clk): add get_parent callback
  fix(nxp-clk): broken UART clock initalization
2024-09-24 15:14:35 +02:00
Manish Pandey
7ea6ebfbcd Merge changes I14df5d21,I7f952205,I6f52ec2c,Ibe0cacf8 into integration
* changes:
  feat(stm32mp2-fdts): describe stpmic2 power supplies
  feat(stm32mp2-fdts): add I2C7 pin muxing
  feat(stm32mp2-fdts): add UART and I2C nodes for STM32MP2
  feat(st-pmic): add STPMIC2 driver
2024-09-24 13:54:42 +02:00
Manish Pandey
69ca6d54dd Merge "feat(stm32mp2): improve BL31 size management" into integration 2024-09-24 13:36:07 +02:00
Manish Pandey
afd8ff535a Merge changes from topic "hm/tlc" into integration
* changes:
  feat(handoff): make tl generation flexible
  feat(tlc): add command gen-header
  feat(tlc): add support for tox
  refactor(tlc): fix static check errors and code style
2024-09-24 13:32:02 +02:00
Mark Dykes
f17b741030 Merge "fix(intel): add cache invalidation during BL31 initialization" into integration 2024-09-23 22:11:21 +02:00
Tanmay Kathpalia
3c640c124e fix(intel): add cache invalidation during BL31 initialization
During warm boot, the data cache is invalidated before
enabling them in u-boot proper, this cache
invalidation (+ cleaning) leads to the sync-up of stale
values in the cache to be synced with the main memory.
So, before the cache cleaning is done in u-boot proper,
it is invalidated in BL31 so that the cache data gets in
sync with u-boot proper memory address space and when
u-boot proper does its initialization which in turn clears
its BSS and heap section.

Change-Id: Ic8d8672f1e371868be7f54f5a1fae9229ab15164
Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@intel.com>
Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com>
2024-09-23 20:11:21 +02:00
Mark Dykes
0623183af1 Merge "fix(intel): bridge ack timing issue causing fpga config hung" into integration 2024-09-23 20:10:27 +02:00
Jit Loon Lim
9a402d2f0f fix(intel): bridge ack timing issue causing fpga config hung
Increase the timeout of waiting for bridge ack to solve the
fpga config hung.

Change-Id: I967af02b336c296206b4947be718953ff8ca30cf
Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com>
2024-09-23 17:21:46 +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
Manish V Badarkhe
64237dc0a5 Merge changes from topic "update-mbedtls-to-3.6.1" into integration
* changes:
  refactor(mbedtls): remove hack in LIBMBEDTLS_CFLAGS
  docs(prerequisites): update MbedTLS version to 3.6.1
2024-09-23 10:25:22 +02:00
Mark Dykes
2975ad055b Merge "feat(rk3588): enable crypto function" into integration 2024-09-20 21:35:59 +02:00
Maxime Méré
64e5a6df46 feat(stm32mp2): improve BL31 size management
Change the size of BL31 limit allocation to be half the sysram size.
Defining BL31_PROGBITS_LIMIT to detect overflows.

Signed-off-by: Maxime Méré <maxime.mere@foss.st.com>
Change-Id: Iccc1cc0826b8113a3c2fd6ffa77ca419795854d3
2024-09-20 17:40:30 +02:00
Manish V Badarkhe
0bb3030277 Merge "fix(rpi3): manually populate CNTFRQ reg" into integration 2024-09-20 17:06:52 +02:00
Levi Yun
19082c20d9 fix(el3-spmc): use write_el1_ctx_timer() macro to set cntkctl_el1 value
commit 42e35d2f8c
("refactor(cm): convert el1 ctx assembly offset entries to c structure")
moves cntkctl_el1 register from el1_sysregs_t's common to arch_timer
structure.
To set cntkctl_el1, it should use write_el1_ctx_timer() instead of
write_el1_ctx_common() otherwise, build failed.

Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
Change-Id: Ifa1ca6e056fa95bd07598d20705856e208670808
2024-09-20 13:50:16 +01:00
Pascal Paillet
e97467068a feat(stm32mp2-fdts): describe stpmic2 power supplies
Describe PMIC power supplies in STM32MP257F-EV1 board DT file.

Change-Id: I14df5d210909d95b2164197eb910a9ea0aa0b51d
Signed-off-by: Pascal Paillet <p.paillet@st.com>
2024-09-20 14:49:01 +02:00
Yann Gautier
0a0820885d feat(stm32mp2-fdts): add I2C7 pin muxing
It will be used for PMIC on STM32MP257F-EV board.

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Change-Id: I7f95220512de4416323b381fec7c7dcb044c64fd
2024-09-20 14:49:01 +02:00
Yann Gautier
c7cfe27a24 feat(stm32mp2-fdts): add UART and I2C nodes for STM32MP2
Update stm32mp251.dtsi SoC DT file to include UART and I2C nodes.

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Signed-off-by: Maxime Méré <maxime.mere@foss.st.com>
Change-Id: I6f52ec2c1735d28ba4a424af71e7eae5b0ac3e0d
2024-09-20 14:48:58 +02:00
Pascal Paillet
817f42f07e feat(st-pmic): add STPMIC2 driver
The STPMIC2 embeds 15 regulators with various
properties, and is designed to supply the STM32MP2
SOC. This driver handles a minimal set of feature
to handle the boot of a board.

Signed-off-by: Pascal Paillet <p.paillet@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Signed-off-by: Maxime Méré <maxime.mere@foss.st.com>
Change-Id: Ibe0cacf8aec2871eb9a86ec16cbbd18d3745fe9e
2024-09-20 14:47:50 +02:00
Olivier Deprez
b2c535da56 Merge changes Idf032b03,Id8e803b3 into integration
* changes:
  feat(st-regulator): support regulator_set_voltage for fixed regulator
  feat(st-regulator): add enable ramp-delay
2024-09-20 11:14:55 +02:00
Ghennadi Procopciuc
5300040bfd feat(nxp-clk): refactor clock enablement
Simplify the clock enablement mechanism from a usage perspective. With
this new approach, enabling a clock cascades the turn-on sequence of all
its parent clocks in the clock tree. Therefore, enabling the A53 clock
will also turn on the A53 PLL and the oscillator that feeds it.

Change-Id: Ifc2bee3e9edbb4baced34f9e809a961562f7d0a6
Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
2024-09-20 11:33:30 +03:00
Ghennadi Procopciuc
96e069cb8e feat(nxp-clk): add get_parent callback
Bring in the implementation for the struct clk_ops->get_parent callback
for the S32G clock driver. The parent is established depending on the
clock object type. Usually, this is determined based on the parent
field, but not always.

Change-Id: I76a3d2636dc23ba2d547d058b8650dd0e99fe1fa
Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
2024-09-20 11:33:30 +03:00
Ghennadi Procopciuc
f8490b85b4 fix(nxp-clk): broken UART clock initalization
The UART clock initialization failed because the clock mux enablement
mechanism did not correctly recognize the PERIPH PLL mux. Therefore, it
was reported as an unknown mux ID.

Change-Id: I6cc72c87a8462a2ed2e7c360f59a74961bb2f3a1
Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
2024-09-20 11:33:30 +03:00
Mark Dykes
545cc0fde2 Merge "build: properly namespace toolchain.mk variables" into integration 2024-09-19 23:02:50 +02:00
Harrison Mutai
2329e22b8b feat(handoff): make tl generation flexible
Make the process of compiling a TL from DT source flexible. Provide a
top level recipe to make it easier for developers to build a transfer
list. Clean up integration of TLC into the build system.

Change-Id: I4466e27a457dfd5bf709dc3a360a2b63bf6030ce
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-09-19 13:44:23 +00:00
Harrison Mutai
9b05c3739c feat(tlc): add command gen-header
Introduce the gen-header command to the tool, enabling developers to
create language bindings. Currently, it supports generating C headers
from a transfer list.

Change-Id: Ibec75639c38577802d5abe55c7bc718740aad2b8
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-09-19 13:44:23 +00:00
Harrison Mutai
38487c7fd3 feat(tlc): add support for tox
Add tox to automate testing across multiple environments, ensuring code
robustness and compatibility with different Python versions. This helps
ensure consistency in test environments so both development and CI
systems run tests uniformly, and simplifies the execution of tasks like
linting and other commands with a single command.

Change-Id: I522adb486e89abecb9a130941ce4cef31332193a
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-09-19 13:44:23 +00:00
Harrison Mutai
fd5b4bc34d refactor(tlc): fix static check errors and code style
Change-Id: I8cbe5ee940d409ed3f81f792c2ade0b93287ae62
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-09-19 13:02:16 +00:00
Manish V Badarkhe
49b9545ef5 Merge "refactor(mbedtls): use PSA API for auth_decrypt" into integration 2024-09-19 14:43:04 +02:00
Olivier Deprez
1ea25553d7 Merge "fix(drtm): do cache maintenance before launching DLME" into integration 2024-09-19 13:08:40 +02:00
Manish V Badarkhe
23378ae0bd fix(drtm): do cache maintenance before launching DLME
According to the specifications, the DLME launch should occur with
the cache disabled. Initially, the cache was enabled to enhance
performance. However, to comply with the PSCI specification, we
decided to disable it before launching the DLME.

Also, ensure that full DLME region is invalidated.

Change-Id: Idf619afb7e4a34ebe213bd3b559105ade993f3ad
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2024-09-19 11:20:35 +02:00
Ryan Everett
7079ddf92c refactor(mbedtls): use PSA API for auth_decrypt
This new version uses the multipart PSA AEAD API;
the authentication tag is verified via
a call to psa_aead_verify.

Change-Id: If4b7e6258223ae6fead1794d3e8d0004f0f387b3
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-09-19 10:48:19 +02:00
Ryan Everett
8570895a1b refactor(mbedtls): remove hack in LIBMBEDTLS_CFLAGS
MbedTLS 3.6.1 fixed the issue which previously
produced this warning, so this hack is no longer
necessary.

Change-Id: I934adefbf2fed16e16b9d98bc8674125b70b08fc
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-09-19 10:37:02 +02:00