Commit graph

16379 commits

Author SHA1 Message Date
Chris Kay
61c70c17bf build: ensure dependencies are installed for memmap target
The `memmap` build system target was recently migrated over to an
independent Poetry project, but its build system target was not updated
to install its dependencies.

Change-Id: If46e2a4609d47467cac07426c1cde65e2e0944cb
Signed-off-by: Chris Kay <chris.kay@arm.com>
2025-03-04 17:14:40 +00:00
Manish Pandey
183f2ea2fe Merge changes I0396b597,I326f920f,I0437eec8,Ieadf01fc,I4e1d8c24, ... into integration
* changes:
  feat(fvp): set defaults for build commandline
  docs(arm): enable Linux boot from fip as BL33
  feat(arm): enable Linux boot from fip as BL33
  docs(fvp): update fvp build time options
  docs(arm): add initrd props to dtb at build time
  feat(arm): add initrd props to dtb at build time
2025-03-04 17:13:46 +01:00
Manish V Badarkhe
4d6315e9a6 Merge "docs(ras): document RAS considerations with powerdown" into integration 2025-03-04 14:25:20 +01:00
Manish Pandey
4f1e029685 Merge "docs(psci): add a mention to the pwr_domain_pwr_down_wfi()" into integration 2025-03-04 12:43:04 +01:00
Boyan Karatotev
507fca8436 docs(psci): add a mention to the pwr_domain_pwr_down_wfi()
The function got renamed to pwr_domain_pwr_down() but have a reference
to it for anyone wondering where it went.

Change-Id: Ica5fa11b9f18a7446c188e37b9f1d5508f4cf749
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
2025-03-04 09:40:25 +00:00
Salman Nabi
bf9a25f075 feat(fvp): set defaults for build commandline
When using ARM_LINUX_KERNEL_AS_BL33, set defaults for the below for
increased build time efficiency:

PRELOADED_BL33_BASE=0x80080000
This address supports older kernels before v5.7

ARM_PRELOADED_DTB_BASE=0x87F00000 (only in RESET_TO_BL31)
1MiB before the address 0x88000000 in FVP. 1MiB seems enough for the
device tree blob (DTB).

Change-Id: I0396b597485e163b43f7c6677c04fcc08db55aa8
Signed-off-by: Salman Nabi <salman.nabi@arm.com>
2025-03-03 16:56:57 +00:00
Salman Nabi
2de9a254c8 docs(arm): enable Linux boot from fip as BL33
Document additional functionality of TF-A to package the Linux kernel in
the fip image as a BL33 and boot it. A ramdisk is used as a file system.
The ramdisk properties are injected in to the device tree at build time.

Change-Id: I326f920fdac4bd20572f6f0da07d012def114274
Signed-off-by: Salman Nabi <salman.nabi@arm.com>
2025-03-03 16:56:56 +00:00
Salman Nabi
eb8cb9534b feat(arm): enable Linux boot from fip as BL33
Disable the reliance of ARM_LINUX_KERNEL_AS_BL33 on PRELOADED_BL33_BASE
so that a Linux Kernel can be loaded and booted from the fip as BL33.

Change-Id: I0437eec852cf17e0ed37a7ff77fcc4e66b1cea7a
Signed-off-by: Salman Nabi <salman.nabi@arm.com>
2025-03-03 16:56:56 +00:00
Salman Nabi
0d49a41502 docs(fvp): update fvp build time options
Add new fvp specific build time options. Specifically the below:

- INITRD_SIZE
- INITRD_PATH
- INITRD_BASE

Change-Id: Ieadf01fce7a0a0a8e9e7582d7b7e371b247207c2
Signed-off-by: Salman Nabi <salman.nabi@arm.com>
2025-03-03 16:56:55 +00:00
Salman Nabi
1a21980518 docs(arm): add initrd props to dtb at build time
Document the ability of the FVP platform to boot a Linux Kernel as a
preloaded image. A preloaded Linux Kernel can be booted in a normal
flow as well as in RESET_TO_BL31. This is made possible by updating
the device tree with initrd properties at build time.

Change-Id: I4e1d8c24f82510d21b2afa06b429a18da4d623bd
Signed-off-by: Salman Nabi <salman.nabi@arm.com>
2025-03-03 16:56:54 +00:00
Salman Nabi
1c08ff3277 feat(arm): add initrd props to dtb at build time
Add initrd properties to the device tree blob at build time, giving
users the ability to run a linux kernel and successfully boot it to
the terminal. Users can boot a linux kernel in a normal flow as well
as in RESET_TO_BL31. This function is an extension of the build time
option "ARM_LINUX_KERNEL_AS_BL33=1".

The build time options INITRD_SIZE or INITRD_PATH will trigger the
insertion of initrd properties in to the DTB. If both options are
provided then the INITRD_SIZE will take precedence.

The available options are:
INITRD_SIZE: Provide the initrd size in dec or hex (hex format must
precede with '0x'.
Example: INITRD_SIZE=0x1000000

INITRD_PATH: Provide an initrd path for the build time to find its
exact size.

INITRD_BASE: A required build time option that sets the initrd base
address in hex format. A default value can be set by the platform.
Example: INITRD_BASE=0x90000000

Change-Id: Ief8de5f00c453509bcc6e978e0a95d768f1f509c
Signed-off-by: Salman Nabi <salman.nabi@arm.com>
2025-03-03 16:56:54 +00:00
Govindraj Raja
e5a1f4abee Merge "feat(mt8196): fix MT8196 gpio driver" into integration 2025-03-03 16:21:54 +01:00
Manish V Badarkhe
a1094e32f1 Merge "refactor(memmap): migrate to Poetry" into integration 2025-03-03 14:25:35 +01:00
Manish V Badarkhe
936a78b581 Merge "fix(xlat_tables_v2): zeromem to clear all tables" into integration 2025-02-28 18:38:38 +01:00
Manish V Badarkhe
7990cc80d6 Merge "feat(handoff): add transfer entry printer" into integration 2025-02-28 18:15:31 +01:00
Yann Gautier
27b4dccde1 Merge "docs(maintainers): update Sumit Garg's email address" into integration 2025-02-28 17:54:18 +01:00
Sumit Garg
655630d0c9 docs(maintainers): update Sumit Garg's email address
Update Sumit Garg's email address to @kernel.org.

Change-Id: I405ce9b0f59643dd7cb05d69ceadd15dcd536eef
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2025-02-28 20:10:21 +05:30
Manish V Badarkhe
eb8a5eafe5 Merge "fix(el3-runtime): replace CTX_ESR_EL3 with CTX_DOUBLE_FAULT_ESR" into integration 2025-02-28 12:53:17 +01:00
Manish Pandey
1aa5620111 Merge "chore(dependabot): reduce Dependabot PIP scope to non-major updates" into integration 2025-02-28 12:51:39 +01:00
Manish Pandey
c72200357a fix(el3-runtime): replace CTX_ESR_EL3 with CTX_DOUBLE_FAULT_ESR
ESR_EL3 value is updated when an exception is taken to EL3 and its value
does not change until a new exception is taken to EL3. We need to save
ESR in context memory only when we expect nested exception in EL3.

The scenarios where we would expect nested EL3 execution are related
with FFH_SUPPORT, namely
  1.Handling pending async EAs at EL3 boundry
    - It uses CTX_SAVED_ESR_EL3 to preserve origins esr_el3
  2.Double fault handling
    - Introduce an explicit storage (CTX_DOUBLE_FAULT_ESR) for esr_el3
      to take care of DobuleFault.

As the ESR context has been removed, read the register directly instead
of its context value in RD platform.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I7720c5f03903f894a77413a235e3cc05c86f9c17
2025-02-28 11:48:37 +00:00
Varun Wadekar
aaacde4682 fix(xlat_tables_v2): zeromem to clear all tables
This patch replaces the for loops to sero individual tables or entries
in the translation table context with zeromem to improve the boot time.

On Tegra platforms, this patch has proved to save 10ms during boot.

Signed-off-by: Bhavesh Parekh <bparekh@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: Iea9fb2c18ae7a1aef4fe42c4151a321fb3f8660e
2025-02-28 11:46:58 +01:00
Govindraj Raja
70b5967ebc Merge changes from topic "mb/drtm" into integration
* changes:
  feat(drtm): retrieve DLME image authentication features
  feat(drtm): log No-Action Event in Event Log for DRTM measurements
  feat(fvp): add stub function to retrieve DLME image auth features
  feat(drtm): introduce plat API for DLME authentication features
  feat(drtm): ensure event types aligns with DRTM specification v1.1
  fix(drtm): add missing DLME data regions for min size requirement
  feat(fvp): add stub platform function to get ACPI table region size
  feat(drtm): add platform API to retrieve ACPI tables region size
2025-02-27 19:14:11 +01:00
Mark Dykes
1dd6f3ece6 Merge changes from topic "gr/build_fix_spmd" into integration
* changes:
  fix(rdv3): handle invalid build combination
  fix(build): handle invalid spd build options
2025-02-27 17:12:29 +01:00
Chris Kay
ed0c801fc6 refactor(memmap): migrate to Poetry
This change refactors the memmap tool into a Poetry project, with its
own dependencies. You can continue to run it manually with:

    poetry run memory <args>

Change-Id: I346283df1b8bfad4babc1f5a3861dab94d4a006a
Signed-off-by: Chris Kay <chris.kay@arm.com>
2025-02-27 15:32:05 +00:00
Madhukar Pappireddy
c8054c8d58 Merge changes I5aabe415,Ief6fb4fc into integration
* changes:
  feat(stm32mp15-fdts): add SP_MIN versions of DT files
  feat(st): use dedicated version of DT for SP_MIN
2025-02-27 16:21:14 +01:00
Govindraj Raja
fe488c3796 fix(rdv3): handle invalid build combination
`CTX_INCLUDE_SVE_REGS` should not be enabled when building with
SPD=spmd and SPMD_SPM_AT_SEL2=1 both been used.

Unfortunately a check at top level makefile ignored this, now its been
fixed at top level makefile. Ensure correct combination are handled,
otherwise it will lead to build failures.

Change-Id: Ib84fc0096c92d9b3d56366c0e1d77b6d83098221
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2025-02-27 09:19:57 -06:00
Govindraj Raja
a0effb9189 fix(build): handle invalid spd build options
Currently the top level Makefile checks any invalid SPD build flags
before parsing platform makefile thus any invalid combination enabled
in platform makefile will go unnoticed.

Move handling of all invalid SPD build option checks after platform level makefile is parsed.

Change-Id: Ib3b384ca99403ebaf34f6ce662c93480827e2136
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2025-02-27 09:14:50 -06:00
Govindraj Raja
9da0ba8e83 Merge changes Ie8c83c92,I9cca19fd into integration
* changes:
  feat(stm32mp2): disable PIE by default on STM32MP2 platform
  refactor(stm32mp2): remove useless STM32MP_SEC_SYSRAM_SIZE
2025-02-27 16:10:04 +01:00
Chris Kay
4e1e680cae chore(dependabot): reduce Dependabot PIP scope to non-major updates
Change-Id: I3213ad5ea76559e4774bb995fbe5ca4208b04792
Signed-off-by: Chris Kay <chris.kay@arm.com>
2025-02-27 15:01:59 +00:00
Manish Pandey
7c37541072 Merge "feat(romlib): add PSA Crypto ROMLIB support" into integration 2025-02-27 11:21:11 +01:00
Maxime Méré
ac9abe7e59 feat(stm32mp2): disable PIE by default on STM32MP2 platform
Allow to disable ENABLE_PIE on STM32MP2. BL31 is loaded at the beginning
of SYSRAM whatever the options set. Set ENABLE_PIE to 0 by default.
This should allow us to reduce BL31 and BL2 size.

Change-Id: Ie8c83c9205e81301eb1fdcf24b94216172586630
Signed-off-by: Maxime Méré <maxime.mere@foss.st.com>
2025-02-27 10:02:50 +01:00
Cathy Xu
6f891e6896 feat(mt8196): fix MT8196 gpio driver
- Add GPIO_BASE in mtgpio.c
- Modify gpio register address

Signed-off-by: Cathy Xu <ot_cathy.xu@mediatek.com>
Change-Id: I648473fa373d208fa29c7069637974e097b75b26
2025-02-27 16:10:45 +08:00
laurenw
cf1b7fe657 feat(romlib): add PSA Crypto ROMLIB support
Adding PSA Crypto MBedTLS specific jump table to allow use of ROMLIB, to
be included when PSA_CRYPTO=1 and enabled.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: Iff7f0e3c5cba6b89f1732f6c80d3060498e3675d
2025-02-26 14:44:34 -06:00
Govindraj Raja
0b2ea477be Merge "fix(st-pmic): remove deadcode from STPMIC2 driver" into integration 2025-02-26 21:22:21 +01:00
Bipin Ravi
fcea30e376 Merge "chore: rename arcadia to Cortex-A320" into integration 2025-02-26 21:20:43 +01:00
Yann Gautier
104ec53ed1 refactor(stm32mp2): remove useless STM32MP_SEC_SYSRAM_SIZE
The macro STM32MP_SEC_SYSRAM_SIZE only redefine STM32MP_SYSRAM_SIZE.
Directly use the latter one and remove the STM32MP_SEC_SYSRAM_SIZE.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I9cca19fda7294be3f31ec74293ce122037541d12
2025-02-26 20:41:12 +01:00
Yann Gautier
20544d66cc feat(stm32mp15-fdts): add SP_MIN versions of DT files
For ST STM32MP15 boards, where the default BL32 is OP-TEE, we add new
versions of DT files with -sp_min.dts extension to manage this
configuration. These files can be compiled directly, or, with the
previous patch, the same command line can be used and those sp_min
files will be automatically used, if AARCH32_SP=sp_min option is used.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I5aabe415b0302da48f02918a3dbd24f334eb8e7d
2025-02-26 20:25:25 +01:00
Yann Gautier
71ba1647e0 feat(st): use dedicated version of DT for SP_MIN
If an STM32MP15 board is compiled for SP_MIN, and a specific DT file
ending with "-sp_min.dts" exist, then this file will be used to generate
BL2 and BL32 DT.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: Ief6fb4fcf302d07f958a0e2764b149759127f21f
2025-02-26 20:22:28 +01:00
Maxime Méré
bdbbf48f4d fix(st-pmic): remove deadcode from STPMIC2 driver
"regul" corresponds to a specific part of a global table that can't be
undefined. Thus, checking if it is NULL is useless.

Issue found by Coverity (CID 445089).

Signed-off-by: Maxime Méré <maxime.mere@foss.st.com>
Change-Id: Ic812bc1fde12fe8389677c7c72fb85246c50f5c9
2025-02-26 20:18:16 +01:00
Govindraj Raja
98c6516520 chore: rename arcadia to Cortex-A320
Cortex-A320 has been announced, rename arcadia to Cortex-A320.

Ref:
https://newsroom.arm.com/blog/introducing-arm-cortex-a320-cpu
https://www.arm.com/products/silicon-ip-cpu/cortex-a/cortex-a320

Change-Id: Ifb3743d43dca3d8caaf1e7416715ccca4fdf195f
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2025-02-26 11:00:41 -06:00
Manish V Badarkhe
94127ae299 feat(drtm): retrieve DLME image authentication features
Retrieve DLME image authentication features and report them
back to the DCE preamble. Currently, this value is always set
to 0, as no platform supports DLME authentication.

Additionally, the default schema is always used instead of
the DLME PCR schema since DLME authentication is not currently
supported.

This change primarily upgrades the DRTM parameters version to V2,
aligning with DRTM spec v1.1 [1].

[1]: https://developer.arm.com/documentation/den0113/c/?lang=en

Change-Id: Ie2ceb0d2ff49465643597e8725710a93d89e74a2
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:56:30 +00:00
Manish V Badarkhe
2ec44880d0 feat(drtm): log No-Action Event in Event Log for DRTM measurements
This patch updates `drtm_measurements.c` to ensure that a No-Action
event is recorded in the Event Log as part of the DRTM measurement
process.
This helps maintain compliance with the event logging requirements
specified in DRTM spec v1.1 [1].

[1]: https://developer.arm.com/documentation/den0113/c/?lang=en

Change-Id: Ifcf25b7ec91393a0c91b05e30f1f6cc4960d5634
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:56:09 +00:00
Manish V Badarkhe
1733deb46c feat(fvp): add stub function to retrieve DLME image auth features
DLME image authentication features are currently not supported on FVP.
This patch introduces a stub function in fvp_drtm_stub.c as a
placeholder for retrieving DLME image authentication features.

Change-Id: I6d274834245774c5442d67ee93fcd641f3a9cd1a
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:52:22 +00:00
Manish V Badarkhe
0f7ebef73e feat(drtm): introduce plat API for DLME authentication features
This patch introduces a platform-specific function to provide DLME
authentication features. While no platforms currently support DLME
authentication, this change offers a structured way for platforms
to define and expose their DLME authentication features, with the
flexibility to extend support in the future if needed.

Change-Id: Ia708914477c4d8cfee4809a9daade9a3e91ed073
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:52:22 +00:00
Manish V Badarkhe
8d24a30d60 feat(drtm): ensure event types aligns with DRTM specification v1.1
This patch updates event logging to comply with the latest version
(v1.1) of the DRTM specification [1]. It ensures that all required
event types, including those related to DLME authentication, are
properly defined.

Although these additional events are not currently utilized in the
implementation, this change ensures their presence as specified in
DRTM v1.1 for completeness.

[1]: https://developer.arm.com/documentation/den0113/c/?lang=en

Change-Id: I6846488c4121b1e2dc948d73c946e06883e16b28
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:52:22 +00:00
Manish V Badarkhe
a65fa57b12 fix(drtm): add missing DLME data regions for min size requirement
Ensure compliance with minimum size requirements by including the
missing DLME data regions, such as the DLME data header and ACPI
region size.
This will prevent incorrect allocation of DLME data regions in
the DCE preamble.

Change-Id: Ic493262152dfe39eb2d54f8771f19651be042288
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:52:22 +00:00
Manish V Badarkhe
5d377555e8 feat(fvp): add stub platform function to get ACPI table region size
Introduces a stub platform function for FVP to retrieve the ACPI table
region size.

Change-Id: Icbf1ae0cb89c393502de2c2f4f66df6b510e6b81
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:52:22 +00:00
Manish V Badarkhe
7792bdbdf9 feat(drtm): add platform API to retrieve ACPI tables region size
Introduces a platform-specific API to retrieve the ACPI table
region size. This will be used in a subsequent patch to specify
the minimum DLME size requirement for the DCE preamble.

Change-Id: I44ce9241733b22fea3cbce9d42f1c2cc5ef20852
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2025-02-26 12:52:22 +00:00
Olivier Deprez
bac623d186 Merge "docs(fvp): update FVP versions used" into integration 2025-02-26 08:37:01 +01:00
Govindraj Raja
74207a1839 docs(fvp): update FVP versions used
Patch series:
https://review.trustedfirmware.org/q/topic:%22gr/fvp_11_28_23%22

Migrated FVP's to use version 11.28.23 and also removed some model
testing that are now no more available or not working with newer model
configuration.

Change-Id: I58c5406ff49ad4c537391c61259d71d9610e875a
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2025-02-26 00:45:02 +01:00