| 777f1f68 | 18-Jul-2023 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
fix(spe): invoke spe_disable during power domain off/suspend
spe_disable function, disables profiling and flushes all the buffers and hence needs to be called on power-off/suspend path. It needs to
fix(spe): invoke spe_disable during power domain off/suspend
spe_disable function, disables profiling and flushes all the buffers and hence needs to be called on power-off/suspend path. It needs to be invoked as SPE feature writes to memory as part of regular operation and not disabling before exiting coherency could potentially cause issues.
Currently, this is handled only for the FVP. Other platforms need to replicate this behaviour and is covered as part of this patch.
Calling it from generic psci library code, before the platform specific actions to turn off the CPUs, will make it applicable for all the platforms which have ported the PSCI library.
Change-Id: I90b24c59480357e2ebfa3dfc356c719ca935c13d Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| 70b9204e | 02-Feb-2024 |
Andre Przywara <andre.przywara@arm.com> |
fix(arm_fpga): halve number of PEs per core
When creating the Arm FPGA platform, we had plenty of memory available, so assigned a generous four PEs per core for the potential CPU topology. In realit
fix(arm_fpga): halve number of PEs per core
When creating the Arm FPGA platform, we had plenty of memory available, so assigned a generous four PEs per core for the potential CPU topology. In reality we barely see implementations with two PEs per core, and didn't have four at all so far.
With some design changes we now include more data per CPU type, and since the Arm FPGA build supports many cores (and determines the correct one at runtime), we run out of memory with certain build options.
Since we don't really need four PEs per core, just halve that number, to reduce our memory footprint without sacrificing functionality.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: Ieb37ccc9f362b10ff0ce038f72efca21512a71cb
show more ...
|
| d07d4d63 | 10-Jan-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(fvp): delegate FFH RAS handling to SP
This setup helps to mimic an end-to-end RAS handling flow inspired by real world design with a dedicated RAS secure partition managed by SPMC.
The detaile
feat(fvp): delegate FFH RAS handling to SP
This setup helps to mimic an end-to-end RAS handling flow inspired by real world design with a dedicated RAS secure partition managed by SPMC.
The detailed steps are documented as comments in the relevant source files introduced in this patch.
Change-Id: I97737c66649f6e49840fa0bdf2e0af4fb6b08fc7 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
show more ...
|
| 3447ba1f | 22-Jan-2024 |
Pranav Madhu <pranav.madhu@arm.com> |
feat(css): initialise generic timer early in the boot
Initialize generic delay timer to enable its use to insert delays in execution paths as required.
Change-Id: I52232796f20d9692f0115d5e5395451a5
feat(css): initialise generic timer early in the boot
Initialize generic delay timer to enable its use to insert delays in execution paths as required.
Change-Id: I52232796f20d9692f0115d5e5395451a54b489c6 Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
show more ...
|
| 0bdaf5c8 | 17-Jan-2024 |
Manorit Chawdhry <m-chawdhry@ti.com> |
fix(k3): increment while reading trail bytes
The trail bytes from the secure proxy driver were being overwritten, increase the count each time to not overwrite the existing data and not get the end
fix(k3): increment while reading trail bytes
The trail bytes from the secure proxy driver were being overwritten, increase the count each time to not overwrite the existing data and not get the end data corrupted from secure proxy.
Fixes: d76fdd33e011 ("ti: k3: drivers: Add Secure Proxy driver")
Change-Id: I8e23f8b6959da886d6ab43049746f78765ae1766 Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
show more ...
|
| 7a277aa8 | 30-Jan-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes I509b7bc5,Ibd36ea5c into integration
* changes: fix(fconf): boot fails using ARM_ARCH_MINOR=8 fix(libc): add memcpy_s source file to libc_asm mk |
| 84f9abec | 30-Jan-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "feat(stm32mp1): only fuse monotonic counter on closed devices" into integration |
| 0c86a846 | 08-Jan-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
fix(fconf): boot fails using ARM_ARCH_MINOR=8
When building TF-A (with SPMD support) with ARM_ARCH_MAJOR=8/ ARCH_ARCH_MINOR=8 options, this forces the -march=armv8.8-a compiler option. In this condi
fix(fconf): boot fails using ARM_ARCH_MINOR=8
When building TF-A (with SPMD support) with ARM_ARCH_MAJOR=8/ ARCH_ARCH_MINOR=8 options, this forces the -march=armv8.8-a compiler option. In this condition, the compiler optimises statement [1] into a store pair to an unaligned address resulting to a supposedly alignment fault. With -march=armv8.7-a and earlier the compiler resolves with a memcpy. Replacing this line by an explicit memcpy masks out the issue. Prefer using the plain struct uuid in place of the uuid_helper union for further clarity.
[1] https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/ plat/arm/common/fconf/arm_fconf_sp.c?h=v2.10#n77
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: I509b7bc50c7c4a894885d24dc8279d0fe634e8f2
show more ...
|
| 28c79e10 | 30-Jan-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "plat_gpt_setup" into integration
* changes: feat(arm): move GPT setup to common BL source feat(arm): retrieve GPT related data from platform refactor(arm): rename L0/
Merge changes from topic "plat_gpt_setup" into integration
* changes: feat(arm): move GPT setup to common BL source feat(arm): retrieve GPT related data from platform refactor(arm): rename L0/L1 GPT base macros
show more ...
|
| 7516d93d | 29-Jan-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(cpufeat): add feature detection for FEAT_CSV2_3" into integration |
| 0d136806 | 29-Jan-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "st-bsec3" into integration
* changes: feat(stm32mp2): add BSEC and OTP support feat(st-bsec): add driver for the new IP version BSEC3 |
| 30019d86 | 25-Oct-2023 |
Sona Mathew <sonarebecca.mathew@arm.com> |
feat(cpufeat): add feature detection for FEAT_CSV2_3
This feature provides support to context save the SCXTNUM_ELx register. FEAT_CSV2_3 implies the implementation of FEAT_CSV2_2. FEAT_CSV2_3 is sup
feat(cpufeat): add feature detection for FEAT_CSV2_3
This feature provides support to context save the SCXTNUM_ELx register. FEAT_CSV2_3 implies the implementation of FEAT_CSV2_2. FEAT_CSV2_3 is supported in AArch64 state only and is an optional feature in Arm v8.0 implementations.
This patch adds feature detection for v8.9 feature FEAT_CSV2_3, adds macros for ID_AA64PFR0_EL1.CSV2 bits [59:56] for detecting FEAT_CSV2_3 and macro for ENABLE_FEAT_CSV2_3.
Change-Id: Ida9f31e832b5f11bd89eebd6cc9f10ddad755c14 Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>
show more ...
|
| 6d2c502a | 31-Oct-2023 |
Igor Opaniuk <igor.opaniuk@foundries.io> |
feat(imx8m): obtain boot image set for imx8mn/mp
In i.MX8MM/MQ it is possible to have two copies of bootloader in SD/eMMC and switch between them. The switch is triggered either by the BootROM in ca
feat(imx8m): obtain boot image set for imx8mn/mp
In i.MX8MM/MQ it is possible to have two copies of bootloader in SD/eMMC and switch between them. The switch is triggered either by the BootROM in case the bootloader image is faulty OR can be enforced by the user, and there is API introduced in 9ce232fe ("feat(plat/imx8m): add SiP call for secondary boot"), which leverages this SoC feature.
However neither i.MX8MP nor i.MX8MN have a dedicated bit which indicates what boot image set is currently booted. According to AN12853 [1] "i.MX ROMs Log Events", it is possible to determine whether fallback event occurred by parsing the BootROM event log. In case ROM event ID 0x51 is present,fallback event did occur and secondary boot image was booted.
Knowing which boot image was booted might be useful for reliable bootloader A/B updates, detecting fallback event might be used for making decision if boot firmware rollback is required.
This patche introduces implementation, that replicates the same imx_src_handler() behaviour as on i.MX8MM/MQ SoCs.
The code is based on original U-Boot implementation [2].
[1]: https://www.nxp.com/webapp/Download?colCode=AN12853 [2]: https://github.com/u-boot/u-boot/commit/a5ee05cf7180b411ffdf148ca8cb220c029f2e19
Change-Id: I9a4c5229aa0e53fa23b5261459da99cb3ce6bdbe Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
show more ...
|
| 341df6af | 21-Jan-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
feat(arm): move GPT setup to common BL source
As of now, GPT setup is being handled from BL2 for plat/arm platforms. However, for platforms having a separate entity to load firmware images, it is po
feat(arm): move GPT setup to common BL source
As of now, GPT setup is being handled from BL2 for plat/arm platforms. However, for platforms having a separate entity to load firmware images, it is possible for BL31 to setup the GPT. In order to address this concern, move the GPT setup implementation from arm_bl2_setup.c file to arm_common.c. Additionally, rename the API from arm_bl2_gpt_setup to arm_gpt_setup to make it boot stage agnostic.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I35d17a179c8746945c69db37fd23d763a7774ddc
show more ...
|
| 86e4859a | 20-Dec-2023 |
Rohit Mathew <Rohit.Mathew@arm.com> |
feat(arm): retrieve GPT related data from platform
For RME-enabled platforms, initializing L0 and L1 tables and enabling GPC checks is necessary. For systems using BL2 to load firmware images, the G
feat(arm): retrieve GPT related data from platform
For RME-enabled platforms, initializing L0 and L1 tables and enabling GPC checks is necessary. For systems using BL2 to load firmware images, the GPT initialization has to be done in BL2 prior to the image load. The common Arm platform code currently implements this in the "arm_bl2_plat_gpt_setup" function, relying on the FVP platform's specifications (PAS definitions, GPCCR_PPS, and GPCCR_PGS).
Different Arm platforms may have distinct PAS definitions, GPCCR_PPS, GPCCR_PGS, L0/L1 base, and size. To accommodate these variations, introduce the "plat_arm_get_gpt_info" API. Platforms must implement this API to provide the necessary data for GPT setup on RME-enabled platforms. It is essential to note that these additions are relevant to platforms under the plat/arm hierarchy that will reuse the "arm_bl2_plat_gpt_setup" function.
As a result of these new additions, migrate data related to the FVP platform to its source and header files.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I4f4c8894c1cda0adc1f83e7439eb372e923f6147
show more ...
|
| 1e7545ac | 18-Jan-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(arm): rename L0/L1 GPT base macros
In accordance with common naming conventions, macros specifying the base address of a region typically use the prefix "BASE" combined with the region name
refactor(arm): rename L0/L1 GPT base macros
In accordance with common naming conventions, macros specifying the base address of a region typically use the prefix "BASE" combined with the region name, rather than "ADDR_BASE."
Currently, the macros defining the base addresses for L0 and L1 GPT tables within `arm_def.h` are named "ARM_L0_GPT_ADDR_BASE" and "ARM_L1_GPT_ADDR_BASE" respectively. To adhere to the established naming convention, rename these macros as "ARM_L1_GPT_BASE" and "ARM_L0_GPT_BASE" respectively.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: Ibd50a58a1f63ba97d2df141f41a21a89ef97d6fb
show more ...
|
| 07da4854 | 24-Jan-2024 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes from topics "rcar-tools-fix", "toolchain-cleanup" into integration
* changes: build: remove the `NM` variable build: prefer `gcc-ar` over `ar` build: add `--no-warn-rwx-segments`
Merge changes from topics "rcar-tools-fix", "toolchain-cleanup" into integration
* changes: build: remove the `NM` variable build: prefer `gcc-ar` over `ar` build: add `--no-warn-rwx-segments` when linking with GCC build: always use the C compiler to assemble build: always use the C compiler to preprocess fix(rcar): fix implicit rule invocations in tools
show more ...
|
| d6bb94f3 | 24-Jan-2024 |
Robin van der Gracht <robin@protonic.nl> |
feat(stm32mp1): only fuse monotonic counter on closed devices
The fused monotonic counter is checked by the ROM bootloader. The ROM bootloader won't allow booting images build with a lower STM32_TF_
feat(stm32mp1): only fuse monotonic counter on closed devices
The fused monotonic counter is checked by the ROM bootloader. The ROM bootloader won't allow booting images build with a lower STM32_TF_VERSION value.
On non-closed devices a user can easily circumvent this. But it is annoying for a developer when open development hardware gets the counter value fused.
Signed-off-by: Robin van der Gracht <robin@protonic.nl> Change-Id: Ie52561368a3178de9d9a44b9d089664241452651
show more ...
|
| fc26a0fc | 24-Jan-2024 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge "feat(qemu-sbsa): handle memory information" into integration |
| ae6ce196 | 19-Jan-2024 |
Ahmad Fatoum <a.fatoum@pengutronix.de> |
fix(imx8mp): uncondtionally enable only the USB power domain
The i.MX8MP exists in multiple SKUs, some of which lack the NPU or VPU. Yet, we unconditionally enable NPU and VPU power domains in upstr
fix(imx8mp): uncondtionally enable only the USB power domain
The i.MX8MP exists in multiple SKUs, some of which lack the NPU or VPU. Yet, we unconditionally enable NPU and VPU power domains in upstream TF-A, causing it to hang on such SoCs, unless patched.
Enabling all power domains is an idiosyncrasy of the i.MX8MP support, which we don't have on i.MX8MQ, i.MX8MM or i.MX8MN. Therefore let's drop unconditional powering on of all power domains.
As only exception, we will keep enabling the USB power domains. These are enabled in the BootROM if booting over SDPS and boot firmware may expect them to be enabled for non-SDPS recovery too. As USB is available unconditionally on the current i.MX8MP variants, this is deemed acceptable and reduces the chance of breaking existing systems.
Fixes: a775ef25c312 ("plat: imx8mp: Add the basic support for i.MX8MP") Change-Id: Idc6e8f770d240f4d929dffa91f9ccf8c476c6c12 Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
show more ...
|
| d4a770a9 | 23-Jan-2024 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge "fix(intel): update nand driver to match GHRD design" into integration |
| 4b8e5078 | 23-Jan-2024 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge changes Ib481fade,Id4070b46,I4ac997cd into integration
* changes: feat(rcar3): update IPL and Secure Monitor Rev.4.0.0 feat(rcar3): add cache operations to boot process feat(rcar3): chan
Merge changes Ib481fade,Id4070b46,I4ac997cd into integration
* changes: feat(rcar3): update IPL and Secure Monitor Rev.4.0.0 feat(rcar3): add cache operations to boot process feat(rcar3): change MMU configurations
show more ...
|
| 197ac780 | 03-Jan-2024 |
Yann Gautier <yann.gautier@st.com> |
feat(stm32mp2): add BSEC and OTP support
Add compilation and initialization of BSEC peripheral, to access OTP fuses. Add the definition of OTP fuses.
Signed-off-by: Yann Gautier <yann.gautier@st.co
feat(stm32mp2): add BSEC and OTP support
Add compilation and initialization of BSEC peripheral, to access OTP fuses. Add the definition of OTP fuses.
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: If6403838b1e2c04c59effc8545b381aced5f7cda
show more ...
|
| e6a0994c | 23-Jan-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "st-bsec-otp" into integration
* changes: feat(stm32mp2-fdts): add board ID OTP in STM32MP257F-EV1 feat(stm32mp2-fdts): add OTP nodes in STM32MP251 SoC DT file fix(stm
Merge changes from topic "st-bsec-otp" into integration
* changes: feat(stm32mp2-fdts): add board ID OTP in STM32MP257F-EV1 feat(stm32mp2-fdts): add OTP nodes in STM32MP251 SoC DT file fix(stm32mp2): add missing include feat(st): do not directly call BSEC functions in common code feat(st): use stm32_get_otp_value_from_idx() in BL31 refactor(st): update test for closed chip refactor(st-bsec): improve BSEC driver refactor(st): use dashes for BSEC node names
show more ...
|
| a773f412 | 15-Nov-2023 |
Girisha Dengi <girisha.dengi@intel.com> |
fix(intel): update nand driver to match GHRD design
Update nand driver to match GHRD design, fix row address calculation method and other misc updates.
Signed-off-by: Girisha Dengi <girisha.dengi@i
fix(intel): update nand driver to match GHRD design
Update nand driver to match GHRD design, fix row address calculation method and other misc updates.
Signed-off-by: Girisha Dengi <girisha.dengi@intel.com> Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com> Change-Id: I1cb3dda43e767ba243fbe89bfa18818db321c5c2
show more ...
|