History log of /rk3399_ARM-atf/plat/ (Results 1 – 25 of 9135)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
430f246e09-Apr-2026 Olivier Deprez <olivier.deprez@arm.com>

Merge changes from topic "feat_rme" into integration

* changes:
fix(firme): granule management service
feat(gpt): move gpt support under ENABLE_FEAT_RME
feat(rmmd): replace ENABLE_RME with ENA

Merge changes from topic "feat_rme" into integration

* changes:
fix(firme): granule management service
feat(gpt): move gpt support under ENABLE_FEAT_RME
feat(rmmd): replace ENABLE_RME with ENABLE_RMM
feat(rme): split off ENABLE_FEAT_RME

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/docs/components/firme.rst
/rk3399_ARM-atf/docs/getting_started/build-internals.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/arm/arm-build-options.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-11.rst
/rk3399_ARM-atf/drivers/arm/smmu/smmu_v3.c
/rk3399_ARM-atf/fdts/fvp-base-gicv23-interrupts.dtsi
/rk3399_ARM-atf/fdts/fvp-base-gicv5.dtsi
/rk3399_ARM-atf/fdts/fvp-base-psci-common.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/common/ep_info.h
/rk3399_ARM-atf/include/drivers/arm/smmu_v3.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/smccc.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_v2.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/arm_sip_svc.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm_lfa_components.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/cpus/aarch64/wa_cve_2025_0647_cpprctx.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_debug.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_utils.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
arm/board/common/board_common.mk
arm/board/fvp/fdts/fvp_fw_config.dts
arm/board/fvp/fvp_bl2_setup.c
arm/board/fvp/fvp_common.c
arm/board/fvp/fvp_lfa.c
arm/board/fvp/fvp_security.c
arm/board/fvp/include/fvp_pas_def.h
arm/board/fvp/include/platform_def.h
arm/board/fvp/platform.mk
arm/board/neoverse_rd/platform/rdv3/rdv3_bl2_measured_boot.c
arm/common/aarch64/arm_bl2_mem_params_desc.c
arm/common/arm_bl2_setup.c
arm/common/arm_bl31_setup.c
arm/common/arm_common.c
arm/common/arm_common.mk
arm/common/plat_arm_sip_svc.c
qemu/common/common.mk
qemu/common/qemu_bl2_mem_params_desc.c
qemu/common/qemu_bl2_setup.c
qemu/common/qemu_bl31_setup.c
qemu/common/qemu_common.c
qemu/qemu/include/platform_def.h
qemu/qemu/include/qemu_pas_def.h
qemu/qemu/platform.mk
qemu/qemu_sbsa/include/platform_def.h
qemu/qemu_sbsa/include/qemu_sbsa_pas_def.h
qemu/qemu_sbsa/sbsa_platform.c
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/std_svc/firme/firme_base_service.c
/rk3399_ARM-atf/services/std_svc/firme/firme_granule_management_service.c
/rk3399_ARM-atf/services/std_svc/firme/firme_main.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa.mk
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/services/std_svc/std_svc_setup.c
6812964408-Apr-2026 Manish V Badarkhe <manish.badarkhe@arm.com>

Merge changes from topic "st_fixes" into integration

* changes:
refactor(st): use %c to display board info
fix(st): update stm32image tool to address Coverity issues
fix(stm32mp2-fdts): fix LP

Merge changes from topic "st_fixes" into integration

* changes:
refactor(st): use %c to display board info
fix(st): update stm32image tool to address Coverity issues
fix(stm32mp2-fdts): fix LPDDR4 16bits swizzle
fix(st-ddr): add missing newline
fix(st-ddr): fix coverity static analysis issues
fix(st-rif): do not assign an unused value for node when parsing config
fix(st-pmic): initialize some structs in dt_pmic2_i2c_config
fix(st-pmic): check stpmic2_is_buck1_high_voltage return
fix(stm32mp2): remove unused macro PLAT_NB_GPIO_REGUS
feat(st-clock): keep TAMP_BKP_REG_CLK always on
fix(st-clock): check fdt_subnode_offset return
fix(st-clock): remove some variables default assignment
fix(st-clock): do not return NULL in _clk_get
fix(st-clock): do not include platform_def.h
feat(st-clock): add trace for unknown clock identifier
feat(st-clock): add ck_sys_dbg clock for STM32MP2
refactor(dt-bindings): remove CMD_CLK macros
fix(st-clock): remove CLK_CFG/CMD_CLK support for st,kerclk
fix(st-clock): increase startup timeout for oscillators for STM32MP2
fix(st-clock): increase startup timeout for oscillators for STM32MP1
refactor(st-clock): move oscillators ops from clk-stm32-core to drivers
feat(st-clock): add barriers in clock driver

show more ...

d63c296014-Nov-2025 Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>

feat(gpt): move gpt support under ENABLE_FEAT_RME

Granule Protection Tables (GPT) library support is enabled only when
ENABLE_RMM is set (previously this build option was ENABLE_RME). Since
RME rela

feat(gpt): move gpt support under ENABLE_FEAT_RME

Granule Protection Tables (GPT) library support is enabled only when
ENABLE_RMM is set (previously this build option was ENABLE_RME). Since
RME related support is now enabled using feature detection option
ENABLE_FEAT_RME, this patch moves GPT support under ENABLE_FEAT_RME.

This change brings in below benefits:
- single TF-A build that works for RME and non-RME systems, when
build with ENABLE_FEAT_RME=2 (FEAT_STATE_CHECK)
- RMM loading is optional on RME systems
- SiP calls that leverages RME features to change the PAS of a memory
range from non-secure to secure is supported without need to enable
Realm PAS or RMM.
- FIRME Granule Management Interface (GMI) ABIs that handles
FEAT_RME_GPC2/FEAT_RME_GDI can be enabled without need to enable RMM

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I88d9d4e0491af2b4ae0307c018f2d4a71ee6693f

show more ...

b0ddba2404-Nov-2025 Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>

feat(rmmd): replace ENABLE_RME with ENABLE_RMM

RME architectural requirements are now handled under the feature
detection option ENABLE_FEAT_RME. However, the existing ENABLE_RME build
option perfor

feat(rmmd): replace ENABLE_RME with ENABLE_RMM

RME architectural requirements are now handled under the feature
detection option ENABLE_FEAT_RME. However, the existing ENABLE_RME build
option performs RMM-specific tasks such as GPT setup, loading the RMM,
and enabling RMMD support.

Since ENABLE_RME now only controls RMM-related functionality, rename it
to ENABLE_RMM to better reflect its purpose and avoid confusion with
ENABLE_FEAT_RME.

For backward compatibility, setting the legacy ENABLE_RME=1 (until it is
deprecated) will automatically enable both ENABLE_FEAT_RME and
ENABLE_RMM.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Iac945bdffe5002161bf1161b81a5aa7abec68192

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/docs/getting_started/build-internals.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/arm/arm-build-options.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/arm/smmu/smmu_v3.c
/rk3399_ARM-atf/fdts/fvp-base-gicv23-interrupts.dtsi
/rk3399_ARM-atf/fdts/fvp-base-gicv5.dtsi
/rk3399_ARM-atf/fdts/fvp-base-psci-common.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/common/ep_info.h
/rk3399_ARM-atf/include/drivers/arm/smmu_v3.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/smccc.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_v2.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/arm_sip_svc.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm_lfa_components.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/cpus/aarch64/wa_cve_2025_0647_cpprctx.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_debug.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_utils.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
arm/board/common/board_common.mk
arm/board/fvp/fdts/fvp_fw_config.dts
arm/board/fvp/fvp_bl2_setup.c
arm/board/fvp/fvp_common.c
arm/board/fvp/fvp_lfa.c
arm/board/fvp/fvp_security.c
arm/board/fvp/include/platform_def.h
arm/board/fvp/platform.mk
arm/board/neoverse_rd/platform/rdv3/rdv3_bl2_measured_boot.c
arm/common/aarch64/arm_bl2_mem_params_desc.c
arm/common/arm_bl2_setup.c
arm/common/arm_bl31_setup.c
arm/common/arm_common.c
arm/common/arm_common.mk
arm/common/plat_arm_sip_svc.c
qemu/common/common.mk
qemu/common/qemu_bl2_mem_params_desc.c
qemu/common/qemu_bl2_setup.c
qemu/common/qemu_bl31_setup.c
qemu/common/qemu_common.c
qemu/qemu/include/platform_def.h
qemu/qemu/platform.mk
qemu/qemu_sbsa/include/platform_def.h
qemu/qemu_sbsa/sbsa_platform.c
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa.mk
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_private.h
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/services/std_svc/std_svc_setup.c
b8ce71e217-Jan-2024 Yann Gautier <yann.gautier@st.com>

refactor(st): use %c to display board info

Now that %c is supported in log functions, use it instead of creating a
temporary string in stm32_display_board_info(). This also saves a few
bytes of code

refactor(st): use %c to display board info

Now that %c is supported in log functions, use it instead of creating a
temporary string in stm32_display_board_info(). This also saves a few
bytes of code.

Change-Id: If071ed83b92bd30aec425f5b33f66f87c066dae5
Signed-off-by: Yann Gautier <yann.gautier@st.com>

show more ...

0b76c56307-Apr-2026 Dhruva Gole <d-gole@ti.com>

fix(k3low): extend BL1 RW region for debug builds

DEBUG=1 builds include larger xlat tables that overflow BL1's 12K RW
region by 4K. Extend BL1_RW_LIMIT by 0x1000 under #ifdef DEBUG and
emit a loud

fix(k3low): extend BL1 RW region for debug builds

DEBUG=1 builds include larger xlat tables that overflow BL1's 12K RW
region by 4K. Extend BL1_RW_LIMIT by 0x1000 under #ifdef DEBUG and
emit a loud make-time warning that this binary is non-functional
(the extended region overlaps MAILBOX_SHMEM).
Also, add an ERROR print to make sure users are aware at boot
that BL1 has been built with DEBUG flag and panic.

NOT intended for production or functional testing.

Change-Id: Iae9453d8c5305e3e88c6e21fa5ac042c9a210d37
Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>

show more ...

f121738507-Apr-2026 Dhruva Gole <d-gole@ti.com>

fix(k3low): add plat_get_image_source stub for BL1

AM62L BL1 never calls load_image (it hands off to ROM via secure
transport and enters WFI), but the generic bl_common.c:load_image
pulls in plat_ge

fix(k3low): add plat_get_image_source stub for BL1

AM62L BL1 never calls load_image (it hands off to ROM via secure
transport and enters WFI), but the generic bl_common.c:load_image
pulls in plat_get_image_source as a required symbol. Add a stub
returning -ENOTSUP to satisfy the linker.

Change-Id: I331ad94dea110a7202d3961119ac690b3c499736
Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>

show more ...

1e9860a726-Feb-2026 Yann Gautier <yann.gautier@st.com>

fix(stm32mp2): remove unused macro PLAT_NB_GPIO_REGUS

The macro PLAT_NB_GPIO_REGUS is not used, remove it.

Change-Id: I4303545ee92be95cd7040a20dfe79d417dc07be4
Signed-off-by: Yann Gautier <yann.gau

fix(stm32mp2): remove unused macro PLAT_NB_GPIO_REGUS

The macro PLAT_NB_GPIO_REGUS is not used, remove it.

Change-Id: I4303545ee92be95cd7040a20dfe79d417dc07be4
Signed-off-by: Yann Gautier <yann.gautier@st.com>

show more ...

d26945f431-Mar-2026 Hari Nagalla <hnagalla@ti.com>

feat(k3low): add BL1 platform definitions and integration for AM62L

AM62L devices use BL1 to configure DDR4/LPDDR4 before the secondary
bootloader. This patch wires all prior DDR and board patches i

feat(k3low): add BL1 platform definitions and integration for AM62L

AM62L devices use BL1 to configure DDR4/LPDDR4 before the secondary
bootloader. This patch wires all prior DDR and board patches into a
complete, buildable bl1.bin:

- ti_platform_defs.h: add IMAGE_BL1 conditionals for BL1-specific
stack and memory layout definitions.
- platform_def.h: add BL1 SRAM base/size and mailbox address
definitions used by am62l_bl1_setup.c.
- am62l_bl1_setup.c: BL1 platform initialisation — console, DDR
init via the Cadence/TI shim, and WFI-based handoff to the
secondary bootloader.
- platform.mk: add BL1_SOURCES, K3_LPDDR4_SOURCES, update BUILD_PLAT
and PLAT_INCLUDES to compile all DDR and BL1 sources.

Change-Id: I91e8b9e8e43a5560aa688d58e6805a7b5236de44
Signed-off-by: Hari Nagalla <hnagalla@ti.com>

show more ...

9527667d25-Mar-2026 Hari Nagalla <hnagalla@ti.com>

feat(k3low): add AM62L DDR platform shim and EVM board config

Rename the board directory from am62lx/ to am62lx-evm/ to reflect the
specific board variant, and introduce the EVM board configuration:

feat(k3low): add AM62L DDR platform shim and EVM board config

Rename the board directory from am62lx/ to am62lx-evm/ to reflect the
specific board variant, and introduce the EVM board configuration:

- board_config.c: pad-mux initialisation for MAIN/WKUP UART0 pins,
verified against the AM62L TRM (SPRUJB4A p.3976).
- board_def.h: board-level UART base and clock definitions.
- board_config.h: shared header declaring board_init().

Add the TI-authored AM62L DDRSS platform shim that wraps the Cadence
driver for this SoC:

- am62l_ddrss.c / am62l_ddrss.h: PSC power sequencing and DDR
initialisation flow calling the Cadence CTL/PHY/PI APIs.
- am62lx_ddr_config.c / am62lx_ddr_config.h: register data for the
AM62L DDRSS configuration.
- am62lx_skevm_lp4_50_800.h: machine-generated SK-EVM LPDDR4 register
values produced by the SysConfig DDR tool v0.10.30. This file should
be regenerated via that tool if board or timing parameters change.

New source files are intentionally unreferenced in platform.mk pending
the BL1 integration patch.

board.mk is introduced as a placeholder required by platform.mk's
include directive for BL31 builds; BL1_SOURCES will be added in the
next patch when BL1 support is wired in.

Change-Id: I8aff5eb1c2429646a701dc3b09821318bb6e73b9
Signed-off-by: Hari Nagalla <hnagalla@ti.com>

show more ...

5421f84b25-Mar-2026 Hari Nagalla <hnagalla@ti.com>

feat(k3low): introduce Cadence LPDDR4 core driver for AM62L

AM62L devices support 16-bit DDR4/LPDDR4 DRAM memory devices. The core
DDR4/LPDDR4 driver was developed by Cadence. This patch introduces

feat(k3low): introduce Cadence LPDDR4 core driver for AM62L

AM62L devices support 16-bit DDR4/LPDDR4 DRAM memory devices. The core
DDR4/LPDDR4 driver was developed by Cadence. This patch introduces the
Cadence IP driver files (lpddr4.c, lpddr4_16bit.c, lpddr4_obj_if.c and
their associated headers) which carry dual copyright (Cadence + TI).

The driver was pruned from ~6800 macros to ~80 with AI-assisted removal
of unused code; the Cadence CTL/PHY/PI API surface remains intact for
review against the User Guides.

These files are intentionally unreferenced in platform.mk pending the
AM62L platform shim in the next patch.

For additional information please check the technical reference
manual at:
https://www.ti.com/lit/pdf/sprujb4

Change-Id: I8b02a6b30e5ea7b1b457cc0a933d8ef232993fa1
Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Hari Nagalla <hnagalla@ti.com>

show more ...

3e8faea931-Mar-2026 Yann Gautier <yann.gautier@st.com>

Merge "fix(xilinx): correct node idx for Versal Gen 2" into integration

95b96ab627-Feb-2026 Nicolas Pitre <npitre@baylibre.com>

refactor(qemu): use generic hold pen

Convert QEMU to use the common hold pen helpers.

This is not a functional fix -- QEMU uses HW_ASSISTED_COHERENCY=1
so caches are always coherent and the origina

refactor(qemu): use generic hold pen

Convert QEMU to use the common hold pen helpers.

This is not a functional fix -- QEMU uses HW_ASSISTED_COHERENCY=1
so caches are always coherent and the original 8-byte slots worked.
However, aligning with the common hold pen pattern improves
consistency and removes duplicated logic.

plat_hold_pen_init() is called once from plat_setup_psci_ops() to
write HOLD_STATE_WAIT into every slot and flush to main memory.
Then plat_hold_pen_signal() writes just the target slot with the
entrypoint. Secondaries use the plat_hold_pen_wait_and_jump macro
to poll and branch directly to the entrypoint stored in their slot,
eliminating the mailbox fetch.

Change-Id: I5ca1ca5fb8708024ce8a04fa80403473dcd1e257
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>

show more ...

ecab5d9e31-Mar-2026 Manish Pandey <manish.pandey2@arm.com>

Merge changes from topic "hold-pen-generic" into integration

* changes:
fix(corstone-1000): use generic hold pen
refactor(platforms): add generic hold pen

702f2f3327-Mar-2026 Manish Pandey <manish.pandey2@arm.com>

Merge "fix(cpus)!: make ERRATA_SME_POWER_DOWN work with the recommended state ID" into integration

8c62cf2227-Mar-2026 Manish Pandey <manish.pandey2@arm.com>

Merge "feat(firme): initial commit of FIRME service" into integration

c359aeb105-Aug-2025 John Powell <john.powell@arm.com>

feat(firme): initial commit of FIRME service

This is the first FIRME service patch that adds support for basic ABIs
for retrieving the FIRME version, features, and GPI_SET.

This adds a new generic

feat(firme): initial commit of FIRME service

This is the first FIRME service patch that adds support for basic ABIs
for retrieving the FIRME version, features, and GPI_SET.

This adds a new generic granule transition function that replaces
the existing delegate/undelegate APIs that GPI_SET uses. It also
updates TRP to use GPI_SET when FIRME is supported.

FIRME spec is here, note that it is ALPHA2 quality so further changes
are to be expected:
https://developer.arm.com/documentation/den0149

Change-Id: I57b8ad7e87a0679e15c8247f8457f91f3254dedb
Signed-off-by: John Powell <john.powell@arm.com>
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>

show more ...

249c6f9f27-Feb-2026 Nicolas Pitre <npitre@baylibre.com>

fix(corstone-1000): use generic hold pen

Convert corstone1000 to use the common hold pen helpers, fixing a
cache coherency bug in secondary CPU bring-up.

The original code used 8-byte hold slots (n

fix(corstone-1000): use generic hold pen

Convert corstone1000 to use the common hold pen helpers, fixing a
cache coherency bug in secondary CPU bring-up.

The original code used 8-byte hold slots (not cache-line aligned)
and only wrote GO to the target slot without touching other slots
or flushing to main memory. This is broken because:

1. Secondary CPUs write WAIT from non-cached context (MMU off in BL2)
2. The BL2-to-BL31 transition does dcsw_op_all (flush all caches)
3. This pushes stale cached data over the WAIT values in memory
4. The primary's GO write + DSB is insufficient -- it only ensures
ordering, not visibility to non-cached observers

plat_hold_pen_init() is called once at boot (from
plat_arm_psci_override_pm_ops) to write HOLD_STATE_WAIT into every
cache-line-aligned slot and flush the region. Then
plat_hold_pen_signal() writes just the target slot with the warm
boot entrypoint, flushes it, and issues SEV. Secondaries use the
plat_hold_pen_wait_and_jump macro to poll and branch directly to
the entrypoint stored in their hold slot.

Change-Id: I8fc533650c663700dab9bf47c0a79d9bb1236b17
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>

show more ...

e45ca16e27-Feb-2026 Nicolas Pitre <npitre@baylibre.com>

refactor(platforms): add generic hold pen

Introduce a common hold pen implementation for SMP secondary CPU
bring-up. Each core has a cache-line-aligned hold_slot struct
whose 'entry' field holds HO

refactor(platforms): add generic hold pen

Introduce a common hold pen implementation for SMP secondary CPU
bring-up. Each core has a cache-line-aligned hold_slot struct
whose 'entry' field holds HOLD_STATE_WAIT (all-ones sentinel)
while the core should keep polling, or the warm boot entrypoint
address when it should go.

plat_hold_pen_init() sets all slots to HOLD_STATE_WAIT and flushes
them to main memory. This is called once during boot to
establish a known-good state, overwriting any stale cached data
left by earlier boot stages (e.g. a BL2 dcsw_op_all).

plat_hold_pen_signal() writes the entrypoint into the target slot,
flushes it, and issues SEV.

The plat_hold_pen_wait_and_jump assembly macro provides the
secondary CPU polling loop for both AArch64 and AArch32.

Change-Id: Id7322cb9e8caa6a750348d194b4db66e2a515623
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>

show more ...

93c7e70102-Mar-2026 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cpus)!: make ERRATA_SME_POWER_DOWN work with the recommended state ID

The ERRATA_SME_POWER_DOWN flag doesn't account for the recommended state
ID encoding, only for the default one. This patch m

fix(cpus)!: make ERRATA_SME_POWER_DOWN work with the recommended state ID

The ERRATA_SME_POWER_DOWN flag doesn't account for the recommended state
ID encoding, only for the default one. This patch makes it work by
removing the generic flag and incorporating the functionality into the
CPU and platform layers.

The ERRATA_SME_POWER_DOWN is an awkward fix in generic code to a
platform problem. The PSCI layer shouldn't care about any CPU's inner
workings but it does. This isn't ideal once the issue is fixed since
we'll have to carry the "legacy" fix in generic code.

This patch is marked as breaking since the ERRATA_SME_POWER_DOWN flag is
removed and a couple of lines are required if CPU hotplug encounters a
powerdown with live SME state (CPU suspend will work as before). This
will get discovered with a panic at EL3 so this patch leaves a comment
to be able to trace it back.

Change-Id: Ia52865f527e81a8be3727093ed370901e55c5fef
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>

show more ...

d87d5cd925-Mar-2026 Manish Pandey <manish.pandey2@arm.com>

Merge changes I361f587a,Idc704ece,I5529dbe5 into integration

* changes:
fix(gic): init the GIC before the platform with a hook
refactor(arm): set the transfer list up earlier
refactor(el3-runt

Merge changes I361f587a,Idc704ece,I5529dbe5 into integration

* changes:
fix(gic): init the GIC before the platform with a hook
refactor(arm): set the transfer list up earlier
refactor(el3-runtime): use arm_gicr_base_addrs for sp-min

show more ...

fcbf8e9825-Mar-2026 Manish V Badarkhe <manish.badarkhe@arm.com>

Merge "fix(qti): harden mem_assign parameter handling" into integration

ed1320c524-Mar-2026 Joanna Farley <joanna.farley@arm.com>

Merge "fix(xilinx): use bool in control expressions" into integration

95b6c51024-Mar-2026 Joanna Farley <joanna.farley@arm.com>

Merge changes from topic "amd_feat_dyn_core_clust" into integration

* changes:
feat(versal2): update plat psci based on dynamic core and cluster
feat(versal2): add dynamic fetching of core and c

Merge changes from topic "amd_feat_dyn_core_clust" into integration

* changes:
feat(versal2): update plat psci based on dynamic core and cluster
feat(versal2): add dynamic fetching of core and cluster
refactor(xilinx): promote map/unmap helpers to public scope
feat(versal2): use runtime core/cluster variables for dyn topology

show more ...

81671a9610-Mar-2026 Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com>

fix(qti): harden mem_assign parameter handling

Copy mem_assign input buffers to secure local storage before validating
their contents.

The previous code validated entries by walking non-secure buff

fix(qti): harden mem_assign parameter handling

Copy mem_assign input buffers to secure local storage before validating
their contents.

The previous code validated entries by walking non-secure buffers
directly after mapping them. This keeps validation dependent on
non-secure memory and makes the arithmetic around the mapped span more
fragile.

Rework the flow to:
- retrieve indirect arguments through a helper
- map the non-secure parameter span once using checked arithmetic
- verify buffer lengths before copying
- copy mem/source/destination arrays to local buffers
- validate parameters from the secure copies
- use add_overflow() for range calculations
- clear the dynamic mapping state through the helper-based flow

This reduces exposure to malformed non-secure input and avoids address
wrap issues while keeping the SMC interface unchanged.

Change-Id: Ie9e5480891a82ba98919c8c7dbdd27819e246185
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com>

show more ...

12345678910>>...366