History log of /rk3399_ARM-atf/lib/el3_runtime/aarch64/ (Results 1 – 25 of 320)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
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/changelog.yaml
/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/components/index.rst
/rk3399_ARM-atf/docs/design/firmware-design.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/plat/arm/morello/index.rst
/rk3399_ARM-atf/docs/plat/index.rst
/rk3399_ARM-atf/docs/plat/qti/index.rst
/rk3399_ARM-atf/docs/plat/qti/lemans_evk.rst
/rk3399_ARM-atf/docs/plat/ti-k3low-am62lx.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/arm/css/scp/css_pm_scmi.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_base.c
/rk3399_ARM-atf/drivers/arm/smmu/smmu_v3.c
/rk3399_ARM-atf/drivers/nxp/ddr/s32cc/ddr_init.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.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/common/ep_info.h
/rk3399_ARM-atf/include/drivers/arm/gic.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/el3_runtime/cpu_data.h
/rk3399_ARM-atf/include/lib/gpt_rme/gpt_rme.h
/rk3399_ARM-atf/include/lib/libc/string.h
/rk3399_ARM-atf/include/lib/psci/psci.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/plat_hold_pen.S
/rk3399_ARM-atf/include/plat/common/plat_hold_pen.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/firme_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_nano.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/caddo.S
/rk3399_ARM-atf/lib/cpus/aarch64/canyon.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a72.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a73.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a75.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_e_core.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_p_core.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/rosillo.S
/rk3399_ARM-atf/lib/cpus/aarch64/veymont.S
/rk3399_ARM-atf/lib/cpus/aarch64/wa_cve_2025_0647_cpprctx.S
/rk3399_ARM-atf/lib/cpus/errata_common.c
context_debug.c
context_mgmt.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme_private.h
/rk3399_ARM-atf/lib/libc/memcpy_s.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch32/spinlock.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_main.c
/rk3399_ARM-atf/lib/psci/psci_on.c
/rk3399_ARM-atf/lib/psci/psci_setup.c
/rk3399_ARM-atf/lib/psci/psci_system_off.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
/rk3399_ARM-atf/plat/amd/versal2/aarch64/helpers.S
/rk3399_ARM-atf/plat/amd/versal2/include/plat_private.h
/rk3399_ARM-atf/plat/amd/versal2/include/platform_def.h
/rk3399_ARM-atf/plat/amd/versal2/plat_psci.c
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/common/board_common.mk
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_helpers.S
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_pm.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/corstone700/sp_min/corstone700_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv3.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv5.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_lfa.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_private.h
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp_ve/sp_min/fvp_ve_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/morello/morello_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/n1sdp/n1sdp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/rdn2_plat.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/aarch64/arm_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/plat_arm_sip_svc.c
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/css/common/css_common.mk
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/common/plat_hold_pen.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_bl31_setup.c
/rk3399_ARM-atf/plat/nxp/common/psci/aarch64/psci_utils.S
/rk3399_ARM-atf/plat/nxp/common/psci/include/plat_psci.h
/rk3399_ARM-atf/plat/nxp/common/psci/plat_psci.c
/rk3399_ARM-atf/plat/nxp/common/setup/include/plat_common.h
/rk3399_ARM-atf/plat/nxp/soc-ls1046a/aarch64/ls1046a.S
/rk3399_ARM-atf/plat/nxp/soc-ls1088a/aarch64/ls1088a.S
/rk3399_ARM-atf/plat/qemu/common/aarch32/plat_helpers.S
/rk3399_ARM-atf/plat/qemu/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/qemu/common/common.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/qemu/common/qemu_bl2_setup.c
/rk3399_ARM-atf/plat/qemu/common/qemu_bl31_setup.c
/rk3399_ARM-atf/plat/qemu/common/qemu_common.c
/rk3399_ARM-atf/plat/qemu/common/qemu_pm.c
/rk3399_ARM-atf/plat/qemu/qemu/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu/platform.mk
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/sbsa_platform.c
/rk3399_ARM-atf/plat/qti/common/src/qti_syscall.c
/rk3399_ARM-atf/plat/qti/lemans/inc/lemans_def.h
/rk3399_ARM-atf/plat/qti/lemans/inc/qti_map_chipinfo.h
/rk3399_ARM-atf/plat/qti/lemans/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/qti/lemans/lemans_evk/inc/platform_def.h
/rk3399_ARM-atf/plat/qti/lemans/lemans_evk/platform.mk
/rk3399_ARM-atf/plat/qti/qtiseclib/inc/lemans/qtiseclib_defs_plat.h
/rk3399_ARM-atf/plat/qti/qtiseclib/src/qtiseclib_interface_stub.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/ti/common/include/ti_platform_defs.h
/rk3399_ARM-atf/plat/ti/k3low/board/am62lx-evm/board.mk
/rk3399_ARM-atf/plat/ti/k3low/board/am62lx-evm/board_config.c
/rk3399_ARM-atf/plat/ti/k3low/board/am62lx-evm/include/board_def.h
/rk3399_ARM-atf/plat/ti/k3low/common/am62l_bl1_setup.c
/rk3399_ARM-atf/plat/ti/k3low/common/am62l_psc_minimal.c
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/16bit/lpddr4_16bit_if.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/16bit/lpddr4_ctl_regs.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/16bit/lpddr4_macros.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/am62l_ddrss.c
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/am62l_ddrss.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/am62lx_ddr_config.c
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/am62lx_ddr_config.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/am62lx_skevm_lp4_50_800.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/common/cps_drv_lpddr4.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/common/lpddr4_if.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/common/lpddr4_obj_if.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/common/lpddr4_structs_if.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/lpddr4.c
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/lpddr4.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/lpddr4_16bit.c
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/lpddr4_16bit_sanity.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/lpddr4_obj_if.c
/rk3399_ARM-atf/plat/ti/k3low/include/am62l_psc_minimal.h
/rk3399_ARM-atf/plat/ti/k3low/include/board_config.h
/rk3399_ARM-atf/plat/ti/k3low/include/platform_def.h
/rk3399_ARM-atf/plat/ti/k3low/platform.mk
/rk3399_ARM-atf/plat/xilinx/common/include/plat_fdt.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_node.h
/rk3399_ARM-atf/plat/xilinx/common/plat_fdt.c
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/rk3399_ARM-atf/services/std_svc/errata_abi/errata_abi_main.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/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
fb345d8e04-Mar-2026 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cm): initialise TCR2_EL2 and HAFGRTR_EL2 for compatibility

Older EL2 implementations that do not implement support for these
features but are run on hardware that has them will still experience

fix(cm): initialise TCR2_EL2 and HAFGRTR_EL2 for compatibility

Older EL2 implementations that do not implement support for these
features but are run on hardware that has them will still experience the
effects of these registers. When EL2 is the highest EL in the system,
they reset to safe working values (all 0) but when EL3 is highest it is
EL3's responsibility to do this.

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

show more ...

5c8da02804-Mar-2026 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(cm): make the REG_INIT_VAL init relationship explicit

For compatibility of older software, there is a short list of registers
that must get initialised to a sane value. These have to be wri

refactor(cm): make the REG_INIT_VAL init relationship explicit

For compatibility of older software, there is a short list of registers
that must get initialised to a sane value. These have to be written
either in context or in place. However, the actual code is spread very
far apart with no references to itself.

This patch fixes that by carving out setup_el2_regs() and putting it
right after the equivalent portion of setup_el2_context() and leaving a
recursive reference with a note to keep them in sync.

Another small thing this patch does is make the 2 pairs mutually
exclusive - if CTX_INCLUDE_EL2_REGS is in effect then the context values
will be written at the end and the in place writes are redundant.

Finally, the part where the EL2 context is used will inherit the zeroing
of context. As such, there is no need to write 0 to registers
individually. So drop that code and leave a comment so they aren't
missed when sycing up the 2 functions.

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

show more ...

5cadaf9304-Mar-2026 Boyan Karatotev <boyan.karatotev@arm.com>

feat(cm): propagate EL2 register compatibility init to all worlds

Currently, there is a short list of EL2 registers that are given known
safe values to aid running software without support for the l

feat(cm): propagate EL2 register compatibility init to all worlds

Currently, there is a short list of EL2 registers that are given known
safe values to aid running software without support for the latest
features on later than intended hardware. This is only done for NS
world, but the same problems would exist for other worlds too. So
propagate the init there too.

Also coalesce all EL2 context init just like we we do for EL1. Finally,
update the comments to reduce duplication and make them more concise.

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

show more ...

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

refactor(cm): always call setup_el1_context()

This patch simplifies the web of conditional compilation.

First always call setup_el1_context() but have the body of the function
conditionally compile

refactor(cm): always call setup_el1_context()

This patch simplifies the web of conditional compilation.

First always call setup_el1_context() but have the body of the function
conditionally compiled out instead of the caller - this unifies the
conditions.

Then, call setup_el1_context() from setup_context_common() - this
removes a call site. This does add the call for realm context. However,
FEAT_RME requires CTX_INCLUDE_EL2_REGS so this code path will never be
encountered in practice.

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

show more ...


/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch64/bl1_context_mgmt.c
/rk3399_ARM-atf/bl1/aarch64/bl1_entrypoint.S
/rk3399_ARM-atf/bl1/bl1_private.h
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/contrib/libtpm
/rk3399_ARM-atf/contrib/mbed-tls
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/rmm-el3-comms-spec.rst
/rk3399_ARM-atf/docs/components/romlib-design.rst
/rk3399_ARM-atf/docs/components/secure-partition-manager.rst
/rk3399_ARM-atf/docs/design/trusted-board-boot-build.rst
/rk3399_ARM-atf/docs/design_documents/measured_boot_dtpm_poc.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/rd1ae.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/rdaspen.rst
/rk3399_ARM-atf/docs/plat/arm/corstone1000/index.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-support.rst
/rk3399_ARM-atf/docs/plat/arm/tc/index.rst
/rk3399_ARM-atf/docs/plat/nxp/nxp-ls-tbbr.rst
/rk3399_ARM-atf/docs/plat/qemu.rst
/rk3399_ARM-atf/docs/plat/rcar-gen3.rst
/rk3399_ARM-atf/docs/plat/rpi3.rst
/rk3399_ARM-atf/docs/plat/rz-g2.rst
/rk3399_ARM-atf/docs/plat/socionext-uniphier.rst
/rk3399_ARM-atf/docs/plat/warp7.rst
/rk3399_ARM-atf/drivers/auth/crypto_mod.c
/rk3399_ARM-atf/drivers/gpio/gpio_spi.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/fdts/stm32mp157f-dk2.dts
/rk3399_ARM-atf/fdts/stm32mp157f-ed1.dts
/rk3399_ARM-atf/fdts/stm32mp157f-ev1.dts
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/gpio_spi.h
/rk3399_ARM-atf/include/drivers/measured_boot/event_log/tcg.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_defs.h
/rk3399_ARM-atf/include/services/oem/chromeos/widevine_smc_handlers.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/include/services/trp/trp_helpers.h
context_mgmt.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/xlat_tables_v2/aarch32/xlat_tables_arch.c
/rk3399_ARM-atf/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_core.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_private.h
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_utils.c
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/amd/common/custom_pkg.mk
/rk3399_ARM-atf/plat/amd/common/custom_svc_stub.c
/rk3399_ARM-atf/plat/amd/common/plat_fdt.c
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/include/plat_private.h
/rk3399_ARM-atf/plat/amd/versal2/plat.ld.S.tpl
/rk3399_ARM-atf/plat/amd/versal2/platform.mk
/rk3399_ARM-atf/plat/amd/versal2/sip_svc_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/common/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/brcm/board/common/board_common.mk
/rk3399_ARM-atf/plat/hisilicon/poplar/include/hi3798cv200.h
/rk3399_ARM-atf/plat/hisilicon/poplar/plat_pm.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mq/gpc.c
/rk3399_ARM-atf/plat/marvell/armada/a8k/a70x0_amc/board/marvell_plat_config.c
/rk3399_ARM-atf/plat/marvell/armada/a8k/common/ble/ble.mk
/rk3399_ARM-atf/plat/nxp/common/fip_handler/fuse_fip/fuse.mk
/rk3399_ARM-atf/plat/nxp/common/plat_make_helper/soc_common_def.mk
/rk3399_ARM-atf/plat/nxp/common/tbbr/tbbr.mk
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/ddr_fip.mk
/rk3399_ARM-atf/plat/qemu/qemu/qemu_measured_boot.c
/rk3399_ARM-atf/plat/qti/kodiak/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/qti/qcs615/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/qti/sc7180/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/renesas/rza/common/bl2_plat_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/xilinx/common/include/plat_common.h
/rk3399_ARM-atf/services/oem/chromeos/widevine_smc_handlers.c
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_main.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_holding_pen.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_entry.S
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_private.h
68eacbbf17-Nov-2025 Shruti Gupta <shruti.gupta@arm.com>

fix(cm): don't context switch GICv3 registers on NS<->RL transitions

The GICv3 is architectured to solely manage interrupts targeted to
Normal and Secure world. It doesn't manage interrupts targetin

fix(cm): don't context switch GICv3 registers on NS<->RL transitions

The GICv3 is architectured to solely manage interrupts targeted to
Normal and Secure world. It doesn't manage interrupts targeting the
more recently introduced Realm world. Hence the new RMMv2.0
specification mandates that EL3 should not save and restore
the GIC registers on a world switch. This change is not backward
compatible with RMMv1.x ABI.

Note the change in implementation of cm_el2_sysregs_context_save()
and cm_el2_sysregs_context_restore() API as GIC state is not
managed by these APIs anymore.

Add new build flag RMM_V1_COMPAT to support backward compatibility
with RMMv1.x. This flag is currently enabled by default.

This patch is a reworked version of the original patch at:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/45658

NOTE: If RMM_V1_COMPAT is not enabled, then RMM_EL3_IFC_VERSION
is bumped to 1.0 which makes it incompatible with an RMM supporting
0.x.

Change-Id: If4c53b85ef31091c254b383ed7b32c39124f0dbb
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl2/aarch64/bl2_el3_entrypoint.S
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/contrib/libtl
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/context-management-library.rst
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/secure-partition-manager.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/index.rst
/rk3399_ARM-atf/docs/plat/marvell/armada/a80x0_nbx.rst
/rk3399_ARM-atf/docs/plat/marvell/armada/build.rst
/rk3399_ARM-atf/docs/plat/marvell/index.rst
/rk3399_ARM-atf/docs/plat/rz-a3.rst
/rk3399_ARM-atf/drivers/arm/mhu/mhu_wrapper_v3_x.c
/rk3399_ARM-atf/drivers/console/multi_console.c
/rk3399_ARM-atf/drivers/mmc/mmc.c
/rk3399_ARM-atf/drivers/nxp/ddr/s32cc/ddr_init.c
/rk3399_ARM-atf/drivers/renesas/common/rpc/rpc.h
/rk3399_ARM-atf/drivers/renesas/common/rpc/rpc_driver.c
/rk3399_ARM-atf/drivers/renesas/common/rpc/rpc_registers.h
/rk3399_ARM-atf/drivers/renesas/common/syc/syc.c
/rk3399_ARM-atf/drivers/renesas/rza/cpg/cpg.c
/rk3399_ARM-atf/drivers/renesas/rza/cpg/cpg_regs.h
/rk3399_ARM-atf/drivers/renesas/rza/ddr/ddr.c
/rk3399_ARM-atf/drivers/renesas/rza/ddr/param_swizzle_T1.c
/rk3399_ARM-atf/drivers/renesas/rza/pfc/pfc.c
/rk3399_ARM-atf/drivers/renesas/rza/pfc/pfc_regs.h
/rk3399_ARM-atf/drivers/renesas/rza/rpc/rpc.c
/rk3399_ARM-atf/drivers/renesas/rza/scif/scif.c
/rk3399_ARM-atf/drivers/st/bsec/bsec3.c
/rk3399_ARM-atf/drivers/st/rif/stm32_rifsc.c
/rk3399_ARM-atf/drivers/st/rif/stm32mp2_risaf.c
/rk3399_ARM-atf/drivers/st/usb/stm32mp1_usb.c
/rk3399_ARM-atf/drivers/ti/ti_sci/ti_sci.c
/rk3399_ARM-atf/drivers/ti/ti_sci/ti_sci.h
/rk3399_ARM-atf/drivers/ti/ti_sci/ti_sci_protocol.h
/rk3399_ARM-atf/fdts/stm32mp21-bl2.dtsi
/rk3399_ARM-atf/fdts/stm32mp21-bl31.dtsi
/rk3399_ARM-atf/fdts/stm32mp21-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp21-lpddr4-1x16Gbits-1x16bits-800MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp21-pinctrl.dtsi
/rk3399_ARM-atf/fdts/stm32mp211.dtsi
/rk3399_ARM-atf/fdts/stm32mp213.dtsi
/rk3399_ARM-atf/fdts/stm32mp215.dtsi
/rk3399_ARM-atf/fdts/stm32mp215f-dk-ca35tdcid-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp215f-dk-ca35tdcid-rcc.dtsi
/rk3399_ARM-atf/fdts/stm32mp215f-dk-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp215f-dk.dts
/rk3399_ARM-atf/fdts/stm32mp21xc.dtsi
/rk3399_ARM-atf/fdts/stm32mp21xf.dtsi
/rk3399_ARM-atf/fdts/stm32mp21xxal-pinctrl.dtsi
/rk3399_ARM-atf/fdts/stm32mp21xxam-pinctrl.dtsi
/rk3399_ARM-atf/fdts/stm32mp21xxan-pinctrl.dtsi
/rk3399_ARM-atf/fdts/stm32mp21xxao-pinctrl.dtsi
/rk3399_ARM-atf/fdts/stm32mp23-bl2.dtsi
/rk3399_ARM-atf/fdts/stm32mp23-bl31.dtsi
/rk3399_ARM-atf/fdts/stm32mp23-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp23-lpddr4-1x16Gbits-1x16bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp231.dtsi
/rk3399_ARM-atf/fdts/stm32mp233.dtsi
/rk3399_ARM-atf/fdts/stm32mp235.dtsi
/rk3399_ARM-atf/fdts/stm32mp235f-dk-ca35tdcid-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp235f-dk-ca35tdcid-rcc.dtsi
/rk3399_ARM-atf/fdts/stm32mp235f-dk-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp235f-dk.dts
/rk3399_ARM-atf/fdts/stm32mp23xc.dtsi
/rk3399_ARM-atf/fdts/stm32mp23xf.dtsi
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/drivers/arm/mhu.h
/rk3399_ARM-atf/include/drivers/nxp/ddr/s32cc/ddr_init.h
/rk3399_ARM-atf/include/drivers/nxp/ddr/s32cc/ddr_utils.h
/rk3399_ARM-atf/include/drivers/renesas/rza/console/console.h
/rk3399_ARM-atf/include/drivers/renesas/rza/cpg/cpg.h
/rk3399_ARM-atf/include/drivers/renesas/rza/ddr/ddr.h
/rk3399_ARM-atf/include/drivers/renesas/rza/ddr/ddr_internal.h
/rk3399_ARM-atf/include/drivers/renesas/rza/pfc/pfc.h
/rk3399_ARM-atf/include/drivers/renesas/rza/syc/syc.h
/rk3399_ARM-atf/include/drivers/st/bsec3_reg.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_risaf.h
/rk3399_ARM-atf/include/dt-bindings/soc/rif.h
/rk3399_ARM-atf/include/dt-bindings/soc/stm32mp21-rif.h
/rk3399_ARM-atf/include/dt-bindings/soc/stm32mp23-rif.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_mgmt.h
/rk3399_ARM-atf/include/lib/el3_runtime/pubsub_events.h
/rk3399_ARM-atf/include/lib/libc/aarch64/limits_.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm_lfa_components.h
/rk3399_ARM-atf/include/plat/marvell/armada/a8k/common/armada_common.h
/rk3399_ARM-atf/include/services/el3_spmd_logical_sp.h
/rk3399_ARM-atf/include/services/ffa_svc.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/include/services/std_svc.h
/rk3399_ARM-atf/include/tools_share/uuid.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x2.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x3.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x4.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
context_mgmt.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/lib/romlib/Makefile
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/amd/versal2/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_lfa.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_spmd_logical_sp.c
/rk3399_ARM-atf/plat/arm/board/fvp/jmptbl_mbedtls.i
/rk3399_ARM-atf/plat/arm/board/fvp/jmptbl_mbedtls_rsa.i
/rk3399_ARM-atf/plat/arm/board/juno/jmptbl_mbedtls.i
/rk3399_ARM-atf/plat/arm/board/juno/jmptbl_mbedtls_rsa.i
/rk3399_ARM-atf/plat/imx/imx8m/imx8mq/imx8mq_psci.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_bl31_setup.c
/rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0_nbx/board/dram_port.c
/rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0_nbx/board/marvell_plat_config.c
/rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0_nbx/board/phy-porting-layer.h
/rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0_nbx/board/ramoopsies.c
/rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0_nbx/mvebu_def.h
/rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0_nbx/platform.mk
/rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0_nbx/verify_build.sh
/rk3399_ARM-atf/plat/marvell/armada/a8k/common/ble/ble.mk
/rk3399_ARM-atf/plat/marvell/armada/a8k/common/plat_ble_setup.c
/rk3399_ARM-atf/plat/marvell/armada/common/marvell_common.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/include/platform_def.h
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_bl2_image_desc.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_bl2_setup.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_io_storage.c
/rk3399_ARM-atf/plat/renesas/rza/board/rza3m_ek_nor/platform.mk
/rk3399_ARM-atf/plat/renesas/rza/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rza/common/bl2_plat_mem_params_desc.c
/rk3399_ARM-atf/plat/renesas/rza/common/bl2_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rza/common/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rza/common/include/rza_ipl_version.h
/rk3399_ARM-atf/plat/renesas/rza/common/include/rza_private.h
/rk3399_ARM-atf/plat/renesas/rza/common/plat_image_load.c
/rk3399_ARM-atf/plat/renesas/rza/common/plat_storage.c
/rk3399_ARM-atf/plat/renesas/rza/common/rz_common.c
/rk3399_ARM-atf/plat/renesas/rza/common/rz_common.mk
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/drivers/ddr/param_mc_C-011_D3-01-1.c
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/drivers/ddr/param_mc_C-011_D3-02-1.c
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/include/ddr_mc_if.h
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/include/ddr_mc_regs.h
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/include/ddr_phy_regs.h
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/include/rza3m_def.h
/rk3399_ARM-atf/plat/renesas/rza/soc/rza3m/soc.mk
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/secure/secure.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/secure/secure.h
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/soc/soc.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/soc/soc.h
/rk3399_ARM-atf/plat/rockchip/rk3568/include/platform_def.h
/rk3399_ARM-atf/plat/rockchip/rk3568/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3568/rk3568_def.h
/rk3399_ARM-atf/plat/rockchip/rk3576/include/platform_def.h
/rk3399_ARM-atf/plat/rockchip/rk3588/include/platform_def.h
/rk3399_ARM-atf/plat/rpi/common/include/rpi_shared.h
/rk3399_ARM-atf/plat/rpi/common/rpi3_common.c
/rk3399_ARM-atf/plat/rpi/common/rpi3_image_load.c
/rk3399_ARM-atf/plat/rpi/rpi3/include/platform_def.h
/rk3399_ARM-atf/plat/rpi/rpi3/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl31_setup.c
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/st/stm32mp1/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/aarch64/stm32mp2_helper.S
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/include/boot_api.h
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_private.c
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_usb_dfu.c
/rk3399_ARM-atf/plat/ti/k3low/common/am62l_bl31_setup.c
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/firewall/firewall.h
/rk3399_ARM-atf/plat/ti/k3low/common/drivers/firewall/firewall_config.c
/rk3399_ARM-atf/plat/ti/k3low/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal/aarch64/versal_common.c
/rk3399_ARM-atf/plat/xilinx/versal/bl31_versal_setup.c
/rk3399_ARM-atf/plat/xilinx/versal/include/versal_def.h
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci_nopm.c
/rk3399_ARM-atf/plat/xilinx/versal/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/services/spd/opteed/opteed_pm.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_rmm_lfa.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_logical_sp.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_private.h
/rk3399_ARM-atf/tools/renesas/rza/rza3m/rz_image.pl
/rk3399_ARM-atf/tools/stm32image/stm32image.c
3cfda44c14-Feb-2026 Soby Mathew <soby.mathew@arm.com>

revert(cm): don't context switch GICv3 registers on NS<->RL transitions

This reverts commit c84cf19308299de9ad68c340a4c4744a0fe2f18a.

Reason: Linux Boot in Realm test fails with this patch because

revert(cm): don't context switch GICv3 registers on NS<->RL transitions

This reverts commit c84cf19308299de9ad68c340a4c4744a0fe2f18a.

Reason: Linux Boot in Realm test fails with this patch because the
NS sets up ich_hcr_el2 which is not expected by RMMv1.0. The GICv3
context switch changes will need to wait till RMM migrates to
RMMv2.0.

Change-Id: I39185bd08f35bc0836d2ef199c5d930d62ee23d2
Signed-off-by: Soby Mathew <soby.mathew@arm.com>

show more ...

c84cf19317-Nov-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cm): don't context switch GICv3 registers on NS<->RL transitions

The GICv3 is architectured to solely manage interrupts targeted to
Normal and Secure world. It doesn't manage interrupts targetin

fix(cm): don't context switch GICv3 registers on NS<->RL transitions

The GICv3 is architectured to solely manage interrupts targeted to
Normal and Secure world. It doesn't manage interrupts targeting the
more recently introduced Realm world. Hence the new RMMv2.0
specification mandates that EL3 should not save and restore
the GIC registers on a world switch. This change is backward
compatible with RMMv1.x ABI.

NOTE: Change in implementation of cm_el2_sysregs_context_save()
and cm_el2_sysregs_context_restore() API as GIC state is not
managed by these APIs anymore.

Change-Id: I24d7fa26503ffad9d9fede21d8449f481e32984e
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/docs/Makefile
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/plat/st/stm32mp1.rst
/rk3399_ARM-atf/drivers/arm/css/scpi/css_scpi.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/access_control.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/access_control.mk
/rk3399_ARM-atf/drivers/qti/accesscontrol/access_control_stub.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/kodiak/vmidmt_static_config.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/kodiak/vmidmt_target_hwio.h
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/vmidmt.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/vmidmt.h
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/vmidmt_hal.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/vmidmt_hal.h
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/vmidmt_hal_hwio.h
/rk3399_ARM-atf/drivers/qti/accesscontrol/vmidmt/vmidmt_internal.h
/rk3399_ARM-atf/drivers/qti/accesscontrol/xpu.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/xpu/kodiak/xpu_static_config.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/xpu/kodiak/xpu_target_info.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/xpu/kodiak/xpu_target_info.h
/rk3399_ARM-atf/drivers/qti/accesscontrol/xpu/xpu3.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/xpu/xpu3.h
/rk3399_ARM-atf/drivers/qti/qtimer/qtimer.c
/rk3399_ARM-atf/drivers/qti/qtimer/qtimer_stub.c
/rk3399_ARM-atf/drivers/qti/sec_core/sec_core.c
/rk3399_ARM-atf/drivers/qti/sec_core/sec_core_stub.c
/rk3399_ARM-atf/drivers/qti/watchdog/watchdog.c
/rk3399_ARM-atf/drivers/qti/watchdog/watchdog_stub.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp1_ddr.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp2_ddr.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp2_ddr_helpers.c
/rk3399_ARM-atf/drivers/st/pmic/stm32mp_pmic.c
/rk3399_ARM-atf/drivers/st/pmic/stm32mp_pmic2.c
/rk3399_ARM-atf/drivers/st/pmic/stpmic2.c
/rk3399_ARM-atf/fdts/stm32mp135f-dk.dts
/rk3399_ARM-atf/fdts/stm32mp157a-avenger96.dts
/rk3399_ARM-atf/fdts/stm32mp157c-ed1.dts
/rk3399_ARM-atf/fdts/stm32mp157c-odyssey-som.dtsi
/rk3399_ARM-atf/fdts/stm32mp15xx-dhcom-som.dtsi
/rk3399_ARM-atf/fdts/stm32mp15xx-dhcor-som.dtsi
/rk3399_ARM-atf/fdts/stm32mp15xx-dkx.dtsi
/rk3399_ARM-atf/fdts/stm32mp15xx-osd32.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-dk.dts
/rk3399_ARM-atf/fdts/stm32mp257f-ev1.dts
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/drivers/qti/accesscontrol/accesscontrol.h
/rk3399_ARM-atf/include/drivers/qti/qtimer/kodiak/qtimer_defs.h
/rk3399_ARM-atf/include/drivers/qti/qtimer/qtimer.h
/rk3399_ARM-atf/include/drivers/qti/sec_core/kodiak/sec_core_defs.h
/rk3399_ARM-atf/include/drivers/qti/sec_core/sec_core.h
/rk3399_ARM-atf/include/drivers/qti/watchdog/kodiak/watchdog_defs.h
/rk3399_ARM-atf/include/drivers/qti/watchdog/watchdog.h
/rk3399_ARM-atf/include/drivers/st/stm32mp1_ddr_regs.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_ddr_helpers.h
/rk3399_ARM-atf/include/drivers/st/stm32mp_pmic.h
/rk3399_ARM-atf/include/drivers/st/stpmic2.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_mgmt.h
/rk3399_ARM-atf/include/lib/psci/psci_lib.h
/rk3399_ARM-atf/lib/debugfs/debugfs_smc.c
context_mgmt.c
/rk3399_ARM-atf/lib/extensions/sve/sve.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_main.c
/rk3399_ARM-atf/lib/psci/psci_on.c
/rk3399_ARM-atf/lib/psci/psci_private.h
/rk3399_ARM-atf/lib/psci/psci_system_off.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/juno/include/platform_def.h
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_image_load.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_ddr.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_io_storage.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/platform.mk
/rk3399_ARM-atf/plat/qti/common/inc/qti_interrupt_svc.h
/rk3399_ARM-atf/plat/qti/common/src/qti_bl31_setup.c
/rk3399_ARM-atf/plat/qti/common/src/qti_interrupt_svc.c
/rk3399_ARM-atf/plat/qti/common/src/qti_pm.c
/rk3399_ARM-atf/plat/qti/common/src/qti_syscall.c
/rk3399_ARM-atf/plat/qti/kodiak/inc/kodiak_def.h
/rk3399_ARM-atf/plat/qti/kodiak/rb3gen2/platform.mk
/rk3399_ARM-atf/plat/qti/kodiak/sc7280_chrome/platform.mk
/rk3399_ARM-atf/plat/qti/qcs615/platform.mk
/rk3399_ARM-atf/plat/qti/sc7180/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp1/plat_ddr.c
/rk3399_ARM-atf/plat/st/stm32mp1/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/plat_ddr.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_logical_sp.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
c2d6bbdc22-Jan-2026 Boyan Karatotev <boyan.karatotev@arm.com>

feat(cpufeat): add support for FEAT_HACDBS

The Hardware accelerator for cleaning Dirty state feature also has two
register just like FEAT_HDBSS. They are guarded by a SCR_EL3 bit which
set for NS wo

feat(cpufeat): add support for FEAT_HACDBS

The Hardware accelerator for cleaning Dirty state feature also has two
register just like FEAT_HDBSS. They are guarded by a SCR_EL3 bit which
set for NS world only and are not context switched as a result. There is
no use for this feature at EL3.

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

show more ...

7e58ab3222-Jan-2026 Boyan Karatotev <boyan.karatotev@arm.com>

feat(cpufeat): add support for FEAT_HDBSS

The Hardware Dirty state tracking structure feature has two registers to
enable tracking at lower ELs which are guarded by an SCR_EL3 bit. Set
that bit for

feat(cpufeat): add support for FEAT_HDBSS

The Hardware Dirty state tracking structure feature has two registers to
enable tracking at lower ELs which are guarded by an SCR_EL3 bit. Set
that bit for NS only and do not context switch the registers. There is
no use of the feature at EL3.

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

show more ...

b6cf126a22-Jan-2026 Boyan Karatotev <boyan.karatotev@arm.com>

feat(cpufeat): add support for FEAT_STEP2

This feature only needs MDCR_EL3.EnSTEPOP to be written and mdstepop_el1
to be context switched when the next EL is EL1.

Change-Id: I70e2a488f4e50da4b181a0

feat(cpufeat): add support for FEAT_STEP2

This feature only needs MDCR_EL3.EnSTEPOP to be written and mdstepop_el1
to be context switched when the next EL is EL1.

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/aarch32/bl2_run_next_image.S
/rk3399_ARM-atf/bl2/aarch64/bl2_run_next_image.S
/rk3399_ARM-atf/bl2/bl2_el3.ld.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/fdt_fixup.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/ras.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.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/rse/rse_comms_protocol.c
/rk3399_ARM-atf/drivers/arm/rse/rse_comms_protocol_embed.c
/rk3399_ARM-atf/drivers/arm/rse/rse_comms_protocol_pointer_access.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp.mk
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_defs.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_encryption.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_encryption_stub.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_handler_buffer.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_helpers.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_helpers.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_link_hal.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_link_hal.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_platform.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_protocol_error.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_random.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_random.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_core/sfcp_trusted_subnet.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_call/sfcp_psa_call.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol_common.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol_embed.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol_embed.h
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol_pointer_access.c
/rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol_pointer_access.h
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_common.mk
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/include/s32cc-clk-regs.h
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/mc_rgm.c
/rk3399_ARM-atf/drivers/nxp/ddr/s32cc/ddr_init.c
/rk3399_ARM-atf/drivers/nxp/ddr/s32cc/ddr_utils.c
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_printf.c
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_printf.h
/rk3399_ARM-atf/drivers/renesas/common/scif/scif-common.c
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.c
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/scif/scif.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/scif/scif.c
/rk3399_ARM-atf/drivers/ti/ti_sci/ti_sci.c
/rk3399_ARM-atf/drivers/ti/ti_sci/ti_sci.h
/rk3399_ARM-atf/drivers/ti/ti_sci/ti_sci_protocol.h
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch32/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch32/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/arm/sfcp.h
/rk3399_ARM-atf/include/drivers/arm/sfcp_link_defs.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/nxp/ddr/s32cc/ddr_init.h
/rk3399_ARM-atf/include/drivers/nxp/ddr/s32cc/ddr_utils.h
/rk3399_ARM-atf/include/drivers/renesas/rcar/console/console.h
/rk3399_ARM-atf/include/lib/bootmarker_capture.h
/rk3399_ARM-atf/include/lib/cpus/aarch32/cpu_macros.S
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpuamu.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/rosillo.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/wa_cve_2025_0647_cpprctx.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/cpus/errata.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_el1.h
/rk3399_ARM-atf/include/lib/psci/psci.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-arch.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-asm.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csr-plat.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csr.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-apa.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-cpc.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-cst_shrd_funnel.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-dss.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-dsuub.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-ecam.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-ehsm.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-fus.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-fuse.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-gic.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-gpio.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-gti.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-iobn.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-mdc.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-mrml.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-ncb.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-pccbr.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-pccpf.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-pcierc.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-pem.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-pemrc.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-rnm.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-rst.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-sam.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-smmu.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-spi.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-tad.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-tad_cmn.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-uaa.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-xcp.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-model.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-platform.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-require.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-swap.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-version.h
/rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-warn.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/el3_spmd_logical_sp.h
/rk3399_ARM-atf/lib/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_nano.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a65ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a75_pubsub.c
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x2.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x3.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x4.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/cpuamu.c
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n1_pubsub.c
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/aarch64/rosillo.S
/rk3399_ARM-atf/lib/cpus/aarch64/wa_cve_2025_0647_cpprctx.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/cpus/errata_report.c
context_mgmt.c
/rk3399_ARM-atf/lib/el3_runtime/simd_ctx.c
/rk3399_ARM-atf/lib/extensions/debug/debugv8p9.c
/rk3399_ARM-atf/lib/extensions/idte/idte3.c
/rk3399_ARM-atf/lib/extensions/ras/ras_common.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_main.c
/rk3399_ARM-atf/lib/psci/psci_off.c
/rk3399_ARM-atf/lib/psci/psci_on.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/march.mk
/rk3399_ARM-atf/plat/amd/versal2/plat_psci_pm.c
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/amd/versal2/sip_svc_setup.c
/rk3399_ARM-atf/plat/amd/versal2/soc_ipi.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_common.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_sfcp.c
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/nv_counter_test.c
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/platform_test.mk
/rk3399_ARM-atf/plat/arm/board/tc/rse_ap_tests.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl1_dpe.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl2_dpe.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_sfcp.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/common/aarch64/plat_common.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/hisilicon/hikey/hikey_bl2_setup.c
/rk3399_ARM-atf/plat/hisilicon/hikey960/hikey960_bl2_setup.c
/rk3399_ARM-atf/plat/imx/imx7/common/imx7.mk
/rk3399_ARM-atf/plat/imx/imx7/common/imx7_bl2_common.c
/rk3399_ARM-atf/plat/imx/imx7/picopi/picopi_bl2_setup.c
/rk3399_ARM-atf/plat/imx/imx7/picopi/platform.mk
/rk3399_ARM-atf/plat/imx/imx7/warp7/platform.mk
/rk3399_ARM-atf/plat/imx/imx7/warp7/warp7_bl2_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/imx8mm_bl2_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/imx8mp_bl2_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex/bl2_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl2_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/stratix10/bl2_plat_setup.c
/rk3399_ARM-atf/plat/mediatek/build_helpers/conditional_eval_options.mk
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/apusys_rv/2.0/apusys_rv.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_rv_pwr_ctrl.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_vcorefs_smc.c
/rk3399_ARM-atf/plat/mediatek/mt8196/include/platform_def.h
/rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/nxp/common/setup/common.mk
/rk3399_ARM-atf/plat/nxp/common/setup/include/plat_common.h
/rk3399_ARM-atf/plat/nxp/common/setup/ls_bl2_setup.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_bl2_setup.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_ddr.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/platform.mk
/rk3399_ARM-atf/plat/qemu/common/common.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_bl31_setup.c
/rk3399_ARM-atf/plat/qti/common/src/qti_bl2_setup.c
/rk3399_ARM-atf/plat/renesas/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/common/common.mk
/rk3399_ARM-atf/plat/renesas/common/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/common/rcar_common.c
/rk3399_ARM-atf/plat/renesas/rcar/bl2_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen4/rcar_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen5/rcar_common.c
/rk3399_ARM-atf/plat/renesas/rzg/bl2_plat_setup.c
/rk3399_ARM-atf/plat/socionext/synquacer/sq_bl2_setup.c
/rk3399_ARM-atf/plat/socionext/uniphier/uniphier_bl2_setup.c
/rk3399_ARM-atf/plat/st/common/common.mk
/rk3399_ARM-atf/plat/st/common/include/stm32mp_common.h
/rk3399_ARM-atf/plat/st/common/stm32mp_gic.c
/rk3399_ARM-atf/plat/st/stm32mp1/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1_pm.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl31_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/include/stm32mp2_private.h
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_ca35ss.c
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_pm.c
/rk3399_ARM-atf/plat/ti/k3/board/generic/include/board_def.h
/rk3399_ARM-atf/plat/ti/k3/common/k3_bl31_setup.c
/rk3399_ARM-atf/plat/ti/k3/common/k3_psci.c
/rk3399_ARM-atf/plat/ti/k3/common/soc.c
/rk3399_ARM-atf/plat/ti/k3/include/platform_def.h
/rk3399_ARM-atf/plat/ti/k3/include/soc.h
/rk3399_ARM-atf/plat/ti/k3/platform.mk
/rk3399_ARM-atf/plat/xilinx/common/include/ipi.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_ipi.h
/rk3399_ARM-atf/plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.c
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_ipi.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_logical_sp.c
/rk3399_ARM-atf/tools/cert_create/src/tbbr/tbb_ext.c
5c1015b314-Jan-2026 Govindraj Raja <govindraj.raja@arm.com>

Merge "fix(context-mgmt): actually clear MDCR_EL3 bits" into integration


/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/drivers/renesas/common/common.c
/rk3399_ARM-atf/drivers/renesas/common/delay/micro_delay.c
/rk3399_ARM-atf/drivers/renesas/common/iic_dvfs/iic_dvfs.c
/rk3399_ARM-atf/drivers/renesas/common/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/common/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/pwrc.c
/rk3399_ARM-atf/fdts/rdaspen.dts
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/lib/el3_runtime/cpu_data.h
context_mgmt.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_utils.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/common/cper.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/common/include/cper.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/ras/include/rdaspen_ras.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/ras/rdaspen_ras.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/ras/rdaspen_ras_helpers.S
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_plat.c
/rk3399_ARM-atf/plat/common/aarch64/plat_common.c
/rk3399_ARM-atf/plat/rockchip/rk3588/drivers/scmi/rk3588_clk.c
3247828c02-Aug-2022 Manoj Kumar <manoj.kumar3@arm.com>

fix(morello): avoid capability tag fault on data access

TF-A runtime service at EL3 switches the stack pointer from SP_EL3
to SP_EL0. This creates a capability tag fault when the DDC_EL0 is
zeroed o

fix(morello): avoid capability tag fault on data access

TF-A runtime service at EL3 switches the stack pointer from SP_EL3
to SP_EL0. This creates a capability tag fault when the DDC_EL0 is
zeroed out (purecap user space) as any data accesses computes
tag/permission with DDC_EL0 value when SpSel is 0 and when EL3 is
in hybrid mode.

As a workaround, this patch creates a per cpu context variable
to store DDC_EL0 value so that when EL3 runtime is entered DDC_EL0
is saved on to stack. DDC_EL3 is then copied into DDC_EL0 after
switching SP to SP_EL0. Once the runtime finishes, during el3_exit,
the saved DDC_EL0 is restored from stack.

Signed-off-by: Selvarasu Ganesan <selvarasu.ganesan@arm.com>
Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
Change-Id: I4e4010f0e20913cb4e35b58fb49a177bdf26feb1

show more ...

27bc138602-Oct-2020 Manoj Kumar <manoj.kumar3@arm.com>

feat(morello): add Morello capability enablement changes

This patch adds a build macro ENABLE_FEAT_MORELLO which when set will
compile BL31 firmware with changes required to boot capability
aware so

feat(morello): add Morello capability enablement changes

This patch adds a build macro ENABLE_FEAT_MORELLO which when set will
compile BL31 firmware with changes required to boot capability
aware software.

It also adds helper function in c and assmbly to check if morello
hardware is present and if morello capability is enabled or not.

CE field, bits [23:20] in ID_AA64PFR1_EL1 defines whether morello
architecture is present or not, 0b0000 indicates that it is absent
and 0b0001 indicates that it is present. While whether capabilities
are enabled or not is decided at runtime with ENABLE_FEAT_MORELLO build
option.

Reference: https://developer.arm.com/documentation/ddi0606/latest/

Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
Change-Id: Ib16877acbfcb72c4bd8c08e97e44edc0a3e46089

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/common/tf_crc32.c
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_console.S
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_printf.c
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_printf.h
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.c
/rk3399_ARM-atf/fdts/rdaspen-defs.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/lib/smccc.h
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
context.S
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/morello/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/platform.mk
/rk3399_ARM-atf/plat/renesas/common/common.mk
/rk3399_ARM-atf/plat/renesas/common/include/registers/cpg_registers.h
/rk3399_ARM-atf/plat/st/common/common.mk
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1.ld.S
/rk3399_ARM-atf/plat/st/stm32mp2/aarch64/stm32mp2.ld.S
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/sip_svc_setup.c
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/spd/opteed/opteed_common.c
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/rk3399_ARM-atf/services/spd/opteed/opteed_pm.c
/rk3399_ARM-atf/services/spd/opteed/opteed_private.h
/rk3399_ARM-atf/services/spd/opteed/teesmc_opteed.h
/rk3399_ARM-atf/services/spd/opteed/teesmc_opteed_macros.h
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/tools/sptool/sp_mk_generator.py
8cd9c18b08-Dec-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cpufeat): prevent FEAT_AMU counters 2 and 3 from counting across worlds

FEAT_AMU has 4 architected counters. The lower 2, CPU_CYCLES and
CNT_CYCLES, are not considered to be side channels due to

fix(cpufeat): prevent FEAT_AMU counters 2 and 3 from counting across worlds

FEAT_AMU has 4 architected counters. The lower 2, CPU_CYCLES and
CNT_CYCLES, are not considered to be side channels due to their low
resolution and general availability of the data elsewhere. As such, they
are used for critical performance tuning and are expected to never be
turned off or context switched when switching worlds.

The upper 2 counters, INST_RETIRED and STALL_BACKEND_MEM, are different.
The data they provide is non-critical and expose new information that
could be used as a timing side channel, especially of Secure world. This
patch adds context switching of these two counters to prevent any such
side channel.

This is not done for group 1 auxiliary counters as those are IMP DEF and
are inaccessible by default unless overriden by the platform (with
AMU_RESTRICT_COUNTERS).

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

show more ...


/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/activity-monitors.rst
/rk3399_ARM-atf/docs/components/context-management-library.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/process/coding-guidelines.rst
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-numa-enabled.png
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/index.rst
/rk3399_ARM-atf/drivers/nxp/ddr/nxp-ddr/utility.c
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc-fpga.dtsi
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_nano.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x925.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v3.h
/rk3399_ARM-atf/include/lib/debugfs.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_mgmt.h
/rk3399_ARM-atf/include/lib/extensions/amu.h
/rk3399_ARM-atf/include/lib/mmio.h
/rk3399_ARM-atf/include/lib/spinlock.h
/rk3399_ARM-atf/include/services/spm_mm_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_nano.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x2.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x3.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
context.S
context_mgmt.c
/rk3399_ARM-atf/lib/extensions/amu/aarch32/amu.c
/rk3399_ARM-atf/lib/extensions/amu/aarch64/amu.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/plat/arm/board/tc/fdts/tc_spmc_manifest.dtsi
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/intel/soc/common/aarch64/platform_common.c
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_private.h
/rk3399_ARM-atf/plat/intel/soc/common/sip/socfpga_sip_fcs.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_handoff.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_mailbox.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_ros.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_sip_svc.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_vab.c
/rk3399_ARM-atf/plat/mediatek/drivers/audio/audio.c
/rk3399_ARM-atf/plat/mediatek/drivers/audio/audio.h
/rk3399_ARM-atf/plat/mediatek/drivers/audio/mt8196/audio_domain.c
/rk3399_ARM-atf/plat/mediatek/drivers/audio/mt8196/mt_audio_private.h
/rk3399_ARM-atf/plat/mediatek/drivers/audio/mt8196/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/booker/booker.c
/rk3399_ARM-atf/plat/mediatek/drivers/booker/mt8196/platform_booker.h
/rk3399_ARM-atf/plat/mediatek/drivers/booker/rules.mk
/rk3399_ARM-atf/plat/mediatek/include/drivers/booker.h
/rk3399_ARM-atf/plat/mediatek/lib/pm/armv9_0/rules.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/renesas/common/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/common/common.mk
/rk3399_ARM-atf/plat/renesas/common/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3576/scmi/rk3576_clk.c
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm_main.c
e63e579407-Nov-2025 Andre Przywara <andre.przywara@arm.com>

fix(context-mgmt): actually clear MDCR_EL3 bits

When setting up MDCR_EL3 for a given context, we need to set some bits,
but also clear some other bits. This was done in a single statement,
but using

fix(context-mgmt): actually clear MDCR_EL3 bits

When setting up MDCR_EL3 for a given context, we need to set some bits,
but also clear some other bits. This was done in a single statement,
but using the C "|=" operator, which would never clear any bits in the
left-hand side.

Split this into two statements, one for setting, the other for clearing
bits.

It seems that on the FVP the bits to clear already reset to 0, so this
never caused any issues so far, but the architecture declares those bits
as: "this field resets to an architecturally UNKNOWN value".

Change-Id: Id1e9e4c010167af2ea3d5820532704220aa7c647
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>

show more ...


/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/measured_boot_helpers.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/contrib/libtpm
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design_documents/measured_boot.rst
/rk3399_ARM-atf/docs/design_documents/rse.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-specific-configs.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/index.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/index.rst
/rk3399_ARM-atf/drivers/auth/crypto_mod.c
/rk3399_ARM-atf/drivers/gpio/gpio_spi.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/nxp/ddr/nxp-ddr/utility.c
/rk3399_ARM-atf/drivers/tpm/tpm2.mk
/rk3399_ARM-atf/drivers/tpm/tpm2_slb9670/slb9670_gpio.c
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc-fpga.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch32/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/common/measured_boot.h
/rk3399_ARM-atf/include/drivers/auth/crypto_mod.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/gpio_spi.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2_slb9670/slb9670_gpio.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_nano.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_premium.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_pro.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_ultra.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x925.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v2.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v3.h
/rk3399_ARM-atf/include/lib/debugfs.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/mmio.h
/rk3399_ARM-atf/include/lib/psa/rse_crypto_defs.h
/rk3399_ARM-atf/include/lib/psa/rse_platform_api.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_nano.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a715.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720_ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x2.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n1.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n3.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/cpus/errata_common.c
context_mgmt.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch32/spinlock.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psa/rse_platform.c
/rk3399_ARM-atf/lib/psci/psci_lib.mk
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/amd/versal2/aarch64/helpers.S
/rk3399_ARM-atf/plat/amd/versal2/include/def.h
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_helpers.S
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_plat.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_pm.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp_ve/fvp_ve_security.c
/rk3399_ARM-atf/plat/arm/board/juno/include/plat_juno_mbedtls_config.h
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/fdts/tc_spmc_manifest.dtsi
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/include/tc_plat.h
/rk3399_ARM-atf/plat/arm/board/tc/platform_test.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/rk3399_ARM-atf/plat/mediatek/drivers/booker/booker.c
/rk3399_ARM-atf/plat/mediatek/drivers/booker/mt8196/platform_booker.h
/rk3399_ARM-atf/plat/mediatek/drivers/booker/rules.mk
/rk3399_ARM-atf/plat/mediatek/include/drivers/booker.h
/rk3399_ARM-atf/plat/mediatek/lib/pm/armv9_0/rules.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/nvidia/tegra/common/tegra_bl31_setup.c
/rk3399_ARM-atf/plat/nxp/soc-ls1028a/soc.c
/rk3399_ARM-atf/plat/nxp/soc-ls1028a/soc.mk
/rk3399_ARM-atf/plat/qemu/qemu/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu/platform.mk
/rk3399_ARM-atf/plat/qemu/qemu/qemu_measured_boot.c
/rk3399_ARM-atf/plat/rockchip/rk3576/scmi/rk3576_clk.c
/rk3399_ARM-atf/plat/rpi/rpi3/include/rpi3_measured_boot.h
/rk3399_ARM-atf/plat/rpi/rpi3/include/rpi_hw.h
/rk3399_ARM-atf/plat/rpi/rpi3/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_common_mboot.c
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.c
14320bce20-Oct-2025 Boyan Karatotev <boyan.karatotev@arm.com>

feat(el3-runtime): translate EL3 handled exceptions to C and always call prepare_el3_entry

Exception handling in BL31 is tricky business and to satisfy the varying
requirements of the different code

feat(el3-runtime): translate EL3 handled exceptions to C and always call prepare_el3_entry

Exception handling in BL31 is tricky business and to satisfy the varying
requirements of the different code paths it has thus far largely been
written in assembly. However, assembly is extremely tedious to read and
modify. Similar to context management, it is desirable to have as much
as possible in C. C code is generally easier to follow and can enable
the compiler to do more optimisations on surrounding code.

Most exceptions that BL31 deals with are the synchronous exceptions and
those are processed within BL31. They already get prepared for EL3 entry
and after the initial dispatch end up in C. So the dispatch can also be
converted in C. Interrupt exceptions are very similar so are converted
too. Finally, asynchronous external aborts share some code with
synchronous external aborts and may end up being processed deeper in
BL31. So they can safely be prepared for EL3 entry too and converted to
C so that they can share code properly.

The IMP DEF exceptions are not part of this refactor as their speed may
be important. There is currently little that uses them, but they can be
converted to C too once their use expands and usage allows it.

This refactor allows to expand the responsibilities of
prepare_el3_entry(). Its role is already to prepare context for
executing within EL3 but with this patch EL3 execution is synonymous
with C runtime execution. So it's given the responsibility of saving
spsr and elr as well as putting the runtime stack in.

When a synchronous exception happens, the only possible paths are to
enter the C EL3 runtime, exiting via el3_exit(), or to panic. In the EL3
runtime case, we always need prepare_el3_entry() and the runtime stack,
whereas in the panic case, this doesn't matter as we will never return.
So hoist the prepare_el3_entry() call and the changing of the stacks as
early as possible and make the rest of the code agnostic of this.

This patch also gets rid of smc_prohibited. It is an optimisation by
skipping prepare_el3_entry() when a bad smc call happens. However, speed
doesn't matter in this case as this is an erroneous case.

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

show more ...


/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch32/bl1_exceptions.S
/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/ea_delegate.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/measured_boot_helpers.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/contrib/libtpm
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design_documents/measured_boot.rst
/rk3399_ARM-atf/docs/design_documents/rse.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-specific-configs.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/index.rst
/rk3399_ARM-atf/drivers/auth/crypto_mod.c
/rk3399_ARM-atf/drivers/gpio/gpio_spi.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/tpm/tpm2.mk
/rk3399_ARM-atf/drivers/tpm/tpm2_slb9670/slb9670_gpio.c
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch32/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/bl1/bl1.h
/rk3399_ARM-atf/include/common/measured_boot.h
/rk3399_ARM-atf/include/drivers/auth/crypto_mod.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/gpio_spi.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2_slb9670/slb9670_gpio.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_premium.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_pro.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_ultra.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v2.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/psa/rse_crypto_defs.h
/rk3399_ARM-atf/include/lib/psa/rse_platform_api.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a715.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720_ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n1.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n3.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/cpus/errata_common.c
context.S
/rk3399_ARM-atf/lib/locks/exclusive/aarch32/spinlock.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psa/rse_platform.c
/rk3399_ARM-atf/lib/psci/psci_lib.mk
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/amd/versal2/aarch64/helpers.S
/rk3399_ARM-atf/plat/amd/versal2/include/def.h
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_helpers.S
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_plat.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_pm.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp_ve/fvp_ve_security.c
/rk3399_ARM-atf/plat/arm/board/juno/include/plat_juno_mbedtls_config.h
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/include/tc_plat.h
/rk3399_ARM-atf/plat/arm/board/tc/platform_test.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/rk3399_ARM-atf/plat/nvidia/tegra/common/tegra_bl31_setup.c
/rk3399_ARM-atf/plat/nxp/soc-ls1028a/soc.c
/rk3399_ARM-atf/plat/nxp/soc-ls1028a/soc.mk
/rk3399_ARM-atf/plat/qemu/qemu/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu/platform.mk
/rk3399_ARM-atf/plat/qemu/qemu/qemu_measured_boot.c
/rk3399_ARM-atf/plat/rpi/rpi3/include/rpi3_measured_boot.h
/rk3399_ARM-atf/plat/rpi/rpi3/include/rpi_hw.h
/rk3399_ARM-atf/plat/rpi/rpi3/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_common_mboot.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.c
48bbb8e410-Dec-2025 Manish V Badarkhe <manish.badarkhe@arm.com>

Merge "refactor(cm): reduce conditional compilation" into integration

3840242b09-Dec-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cpufeat): enable FEAT_FGWTE3 after FEAT_CPA

FEAT_CPA needs to write SCTLR2_EL3 which will be forbidden after
initialising FEAT_FGWTE3. Correct the order.

Change-Id: I3a0554d2a73f773b3ad672eb1e4

fix(cpufeat): enable FEAT_FGWTE3 after FEAT_CPA

FEAT_CPA needs to write SCTLR2_EL3 which will be forbidden after
initialising FEAT_FGWTE3. Correct the order.

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/bl31_traps.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/numa-per-cpu.rst
/rk3399_ARM-atf/docs/components/ras.rst
/rk3399_ARM-atf/docs/components/realm-management-extension.rst
/rk3399_ARM-atf/docs/conf.py
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/perf/psci-performance-juno.rst
/rk3399_ARM-atf/docs/perf/psci-performance-n1sdp.rst
/rk3399_ARM-atf/docs/plat/arm/arm-build-options.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/rdaspen.rst
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-false-sharing.png
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-numa-disabled.png
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-numa-enabled.png
/rk3399_ARM-atf/docs/resources/diagrams/plantuml/firmware_handoff_dfd.puml
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-13.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/index.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model_firmware_handoff.rst
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/drivers/clk/clk.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/scif/scif.c
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/drivers/arm/gicv5.h
/rk3399_ARM-atf/include/drivers/clk.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_premium.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_ultra.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a725.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a76ae.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/lsc25_e_core.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/lsc25_p_core.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/gpt_rme/gpt_rme.h
/rk3399_ARM-atf/include/lib/per_cpu/per_cpu.h
/rk3399_ARM-atf/include/plat/arm/common/arm_fconf_io_storage.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a65.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a725.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x3.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x4.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_e_core.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_p_core.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
context_mgmt.c
/rk3399_ARM-atf/lib/extensions/amu/aarch32/amu.c
/rk3399_ARM-atf/lib/extensions/amu/aarch64/amu.c
/rk3399_ARM-atf/lib/extensions/amu/amu.mk
/rk3399_ARM-atf/lib/extensions/idte/idte3.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/libc/strtoul.c
/rk3399_ARM-atf/lib/libc/strtoull.c
/rk3399_ARM-atf/lib/libfdt/fdt_overlay.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/zlib/crc32.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/package.json
/rk3399_ARM-atf/plat/allwinner/sun50i_h616/sunxi_power.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/morello/morello_image_load.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/arch/aarch64/nrd_helper.S
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_rng_trap.c
/rk3399_ARM-atf/plat/arm/common/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_io_storage.c
/rk3399_ARM-atf/plat/arm/common/arm_transfer_list.c
/rk3399_ARM-atf/plat/arm/common/fconf/arm_fconf_io.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mn/imx8mn_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_system_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_sip_svc.c
/rk3399_ARM-atf/plat/nvidia/tegra/soc/t194/platform_t194.mk
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/sbsa_sip_svc.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/aarch64/platform_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat.ld.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat_helpers.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_scmi_id.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_version.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_pm.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_pm_scmi.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_topology.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen5/rcar_common.c
/rk3399_ARM-atf/pyproject.toml
/rk3399_ARM-atf/readme.rst
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/tools/conventional-changelog-tf-a/package.json
d44566c427-Nov-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(cm): reduce conditional compilation

Context debug needs to switch between EL1 and EL2 context but it can
re-use its variables and function calls with a bit of clever naming.
Unify them to r

refactor(cm): reduce conditional compilation

Context debug needs to switch between EL1 and EL2 context but it can
re-use its variables and function calls with a bit of clever naming.
Unify them to reduce #if-s.

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/bl31_traps.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/numa-per-cpu.rst
/rk3399_ARM-atf/docs/components/ras.rst
/rk3399_ARM-atf/docs/components/realm-management-extension.rst
/rk3399_ARM-atf/docs/conf.py
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/perf/psci-performance-juno.rst
/rk3399_ARM-atf/docs/perf/psci-performance-n1sdp.rst
/rk3399_ARM-atf/docs/plat/arm/arm-build-options.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/rdaspen.rst
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-false-sharing.png
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-numa-disabled.png
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-numa-enabled.png
/rk3399_ARM-atf/docs/resources/diagrams/plantuml/firmware_handoff_dfd.puml
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/index.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model_firmware_handoff.rst
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/drivers/clk/clk.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/scif/scif.c
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/drivers/arm/gicv5.h
/rk3399_ARM-atf/include/drivers/clk.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a725.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a76ae.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/lsc25_e_core.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/lsc25_p_core.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/gpt_rme/gpt_rme.h
/rk3399_ARM-atf/include/lib/per_cpu/per_cpu.h
/rk3399_ARM-atf/include/plat/arm/common/arm_fconf_io_storage.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a65.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a725.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_e_core.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_p_core.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
context_debug.c
/rk3399_ARM-atf/lib/extensions/amu/aarch32/amu.c
/rk3399_ARM-atf/lib/extensions/amu/aarch64/amu.c
/rk3399_ARM-atf/lib/extensions/amu/amu.mk
/rk3399_ARM-atf/lib/extensions/idte/idte3.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/libc/strtoul.c
/rk3399_ARM-atf/lib/libc/strtoull.c
/rk3399_ARM-atf/lib/libfdt/fdt_overlay.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/zlib/crc32.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/package.json
/rk3399_ARM-atf/plat/allwinner/sun50i_h616/sunxi_power.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/morello/morello_image_load.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/arch/aarch64/nrd_helper.S
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_rng_trap.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_io_storage.c
/rk3399_ARM-atf/plat/arm/common/fconf/arm_fconf_io.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mn/imx8mn_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_system_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_sip_svc.c
/rk3399_ARM-atf/plat/nvidia/tegra/soc/t194/platform_t194.mk
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/sbsa_sip_svc.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/aarch64/platform_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat.ld.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat_helpers.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_scmi_id.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_version.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_pm.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_pm_scmi.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_topology.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen5/rcar_common.c
/rk3399_ARM-atf/pyproject.toml
/rk3399_ARM-atf/readme.rst
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/tools/conventional-changelog-tf-a/package.json
886f95d214-Nov-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cm): do not check for AArch32 support to enable features

EL3 is running in AArch64 mode so it is always able to enable all
features. Some features are not implemented for AArch32 but that will b

fix(cm): do not check for AArch32 support to enable features

EL3 is running in AArch64 mode so it is always able to enable all
features. Some features are not implemented for AArch32 but that will be
handled architecturally on changing exception levels so we don't need to
worry about it. Always enable all features (checked on the FEAT_STATE
flag of course) and save ourselves the check.

To prevent confusion in future, the SCR bits that actually affect
AArch32 execution and must always be checked are moved up in the file
and grouped together, rather than being straddled by feature enablement.

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

show more ...

f396aec809-Sep-2025 Arvind Ram Prakash <arvind.ramprakash@arm.com>

feat(cpufeat): add support for FEAT_IDTE3

This patch adds support for FEAT_IDTE3, which introduces support
for handling the trapping of Group 3 and Group 5 (only GMID_EL1)
registers to EL3 (unless t

feat(cpufeat): add support for FEAT_IDTE3

This patch adds support for FEAT_IDTE3, which introduces support
for handling the trapping of Group 3 and Group 5 (only GMID_EL1)
registers to EL3 (unless trapped to EL2). IDTE3 allows EL3 to
modify the view of ID registers for lower ELs, and this capability
is used to disable fields of ID registers tied to disabled features.

The ID registers are initially read as-is and stored in context.
Then, based on the feature enablement status for each world, if a
particular feature is disabled, its corresponding field in the
cached ID register is set to Res0. When lower ELs attempt to read
an ID register, the cached ID register value is returned. This
allows EL3 to prevent lower ELs from accessing feature-specific
system registers that are disabled in EL3, even though the hardware
implements them.

The emulated ID register values are stored primarily in per-world
context, except for certain debug-related ID registers such as
ID_AA64DFR0_EL1 and ID_AA64DFR1_EL1, which are stored in the
cpu_data and are unique to each PE. This is done to support feature
asymmetry that is commonly seen in debug features.

FEAT_IDTE3 traps all Group 3 ID registers in the range
op0 == 3, op1 == 0, CRn == 0, CRm == {2–7}, op2 == {0–7} and the
Group 5 GMID_EL1 register. However, only a handful of ID registers
contain fields used to detect features enabled in EL3. Hence, we
only cache those ID registers, while the rest are transparently
returned as is to the lower EL.

This patch updates the CREATE_FEATURE_FUNCS macro to generate
update_feat_xyz_idreg_field() functions that disable ID register
fields on a per-feature basis. The enabled_worlds scope is used to
disable ID register fields for security states where the feature is
not enabled.

This EXPERIMENTAL feature is controlled by the ENABLE_FEAT_IDTE3
build flag and is currently disabled by default.

Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Change-Id: I5f998eeab81bb48c7595addc5595313a9ebb96d5

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_traps.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/context-management-library.rst
/rk3399_ARM-atf/docs/components/index.rst
/rk3399_ARM-atf/docs/components/numa-per-cpu.rst
/rk3399_ARM-atf/docs/design/psci-pd-tree.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/resources/diagrams/per_cpu_numa_cache_thrashing.png
/rk3399_ARM-atf/docs/resources/diagrams/per_cpu_numa_numa_disabled.png
/rk3399_ARM-atf/docs/resources/diagrams/per_cpu_numa_numa_enabled.png
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/bl31/sync_handle.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_mgmt.h
/rk3399_ARM-atf/include/lib/el3_runtime/cpu_data.h
/rk3399_ARM-atf/include/lib/extensions/idte3.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
context_mgmt.c
/rk3399_ARM-atf/lib/extensions/amu/aarch64/amu.c
/rk3399_ARM-atf/lib/extensions/idte/idte3.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_on.c
/rk3399_ARM-atf/lib/psci/psci_private.h
/rk3399_ARM-atf/lib/psci/psci_setup.c
/rk3399_ARM-atf/lib/psci/psci_stat.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/include/nrd3/nrd_css_fw_def3.h
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_per_cpu.S
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
98859b9929-Jan-2025 Sammit Joshi <sammit.joshi@arm.com>

feat(per-cpu): integrate per-cpu framework into BL31/BL32

Integrate per-cpu support into BL31/BL32 by extending the following
areas:

Zero-initialization: Treats per-cpu sections like .bss and clear

feat(per-cpu): integrate per-cpu framework into BL31/BL32

Integrate per-cpu support into BL31/BL32 by extending the following
areas:

Zero-initialization: Treats per-cpu sections like .bss and clears them
during early C runtime initialization. For platforms that enable
NUMA_AWARE_PER_CPU, invokes a platform hook to zero-initialize
node-specific per-cpu regions.

Cache maintenance: Extends the BL31 exit path to clean dcache lines
covering the per-cpu region, ensuring data written by the primary core
is visible to secondary cores.

tpidr_el3 setup: Initializes tpidr_el3 with the base address of the
current CPU’s per-cpu section. This allows per-cpu framework to
resolve local cpu accesses efficiently.

The percpu_data object is currently stored in tpidr_el3. Since the
per-cpu framework will use tpidr_el3 for this-cpu access, percpu_data
must be migrated to avoid conflict. This commit moves percpu_data to
the per-cpu framework.

Signed-off-by: Sammit Joshi <sammit.joshi@arm.com>
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: Iff0c2e1f8c0ebd25c4bb0b09bfe15dd4fbe20561

show more ...


/rk3399_ARM-atf/.gitignore
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.ld.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl32/sp_min/aarch32/entrypoint.S
/rk3399_ARM-atf/bl32/sp_min/sp_min.ld.S
/rk3399_ARM-atf/bl32/sp_min/sp_min.mk
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/about/release-information.rst
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/plat/index.rst
/rk3399_ARM-atf/docs/plat/qti-msm8916.rst
/rk3399_ARM-atf/docs/plat/qti.rst
/rk3399_ARM-atf/docs/plat/qti/chrome.rst
/rk3399_ARM-atf/docs/plat/qti/index.rst
/rk3399_ARM-atf/docs/plat/qti/msm8916.rst
/rk3399_ARM-atf/docs/plat/qti/rb3gen2.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/include/s32cc-mc-rgm.h
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/mc_rgm.c
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_early_clks.c
/rk3399_ARM-atf/drivers/qti/accesscontrol/xpu.c
/rk3399_ARM-atf/drivers/qti/crypto/rng.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/scif/scif.c
/rk3399_ARM-atf/drivers/st/clk/clk-stm32-core.c
/rk3399_ARM-atf/drivers/st/clk/clk-stm32mp2.c
/rk3399_ARM-atf/drivers/st/usb_dwc3/usb_dwc3.c
/rk3399_ARM-atf/fdts/morello-soc.dts
/rk3399_ARM-atf/fdts/stm32mp25-ddr4-2x16Gbits-2x16bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp251.dtsi
/rk3399_ARM-atf/include/arch/aarch32/el3_common_macros.S
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/bl32/tsp/platform_tsp.h
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/bl_common.ld.h
/rk3399_ARM-atf/include/drivers/nxp/clk/s32cc/s32cc-clk-drv.h
/rk3399_ARM-atf/include/drivers/qti/accesscontrol/xpu.h
/rk3399_ARM-atf/include/drivers/qti/crypto/rng.h
/rk3399_ARM-atf/include/drivers/st/stm32mp25_rcc.h
/rk3399_ARM-atf/include/dt-bindings/clock/stm32mp25-clksrc.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_n2.h
/rk3399_ARM-atf/include/lib/el3_runtime/cpu_data.h
/rk3399_ARM-atf/include/lib/gpt_rme/gpt_rme.h
/rk3399_ARM-atf/include/lib/libc/cdefs.h
/rk3399_ARM-atf/include/lib/per_cpu/per_cpu.h
/rk3399_ARM-atf/include/lib/per_cpu/per_cpu_defs.h
/rk3399_ARM-atf/include/lib/per_cpu/per_cpu_macros.S
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/lfa_svc.h
/rk3399_ARM-atf/lib/compiler-rt/builtins/assembly.h
/rk3399_ARM-atf/lib/compiler-rt/builtins/int_lib.h
/rk3399_ARM-atf/lib/compiler-rt/builtins/int_math.h
/rk3399_ARM-atf/lib/compiler-rt/builtins/int_types.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a715.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
context.S
/rk3399_ARM-atf/lib/el3_runtime/cpu_data_array.c
/rk3399_ARM-atf/lib/extensions/debug/debugv8p9.c
/rk3399_ARM-atf/lib/extensions/pmuv3/aarch64/pmuv3.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme_private.h
/rk3399_ARM-atf/lib/libfdt/Makefile.libfdt
/rk3399_ARM-atf/lib/libfdt/TODO
/rk3399_ARM-atf/lib/libfdt/fdt.h
/rk3399_ARM-atf/lib/libfdt/fdt_check.c
/rk3399_ARM-atf/lib/libfdt/fdt_overlay.c
/rk3399_ARM-atf/lib/libfdt/fdt_ro.c
/rk3399_ARM-atf/lib/libfdt/libfdt.h
/rk3399_ARM-atf/lib/libfdt/libfdt.mk
/rk3399_ARM-atf/lib/libfdt/libfdt_env.h
/rk3399_ARM-atf/lib/libfdt/meson.build
/rk3399_ARM-atf/lib/libfdt/sbom.cdx.json
/rk3399_ARM-atf/lib/libfdt/version.lds
/rk3399_ARM-atf/lib/per_cpu/aarch64/per_cpu_asm.S
/rk3399_ARM-atf/lib/per_cpu/per_cpu.c
/rk3399_ARM-atf/lib/zlib/inffast.c
/rk3399_ARM-atf/lib/zlib/inflate.c
/rk3399_ARM-atf/lib/zlib/inflate.h
/rk3399_ARM-atf/lib/zlib/inftrees.c
/rk3399_ARM-atf/lib/zlib/inftrees.h
/rk3399_ARM-atf/lib/zlib/zconf.h
/rk3399_ARM-atf/lib/zlib/zlib.h
/rk3399_ARM-atf/lib/zlib/zutil.h
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/toolchain.mk
/rk3399_ARM-atf/make_helpers/utilities.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_spmd_logical_sp.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_sync_traps.c
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/tsp/arm_tsp.mk
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/plat_config.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/include/plat_def_fip_uuid.h
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/include/plat_tbbr_img_def.h
/rk3399_ARM-atf/plat/qemu/qemu/platform.mk
/rk3399_ARM-atf/plat/qti/common/inc/qti_board_def.h
/rk3399_ARM-atf/plat/qti/common/inc/qti_interrupt_svc.h
/rk3399_ARM-atf/plat/qti/common/inc/qti_plat.h
/rk3399_ARM-atf/plat/qti/common/src/aarch64/qti_bl2_helpers.S
/rk3399_ARM-atf/plat/qti/common/src/qti_bl2_setup.c
/rk3399_ARM-atf/plat/qti/common/src/qti_bl31_setup.c
/rk3399_ARM-atf/plat/qti/common/src/qti_image_desc.c
/rk3399_ARM-atf/plat/qti/common/src/qti_interrupt_svc.c
/rk3399_ARM-atf/plat/qti/common/src/qti_io_storage.c
/rk3399_ARM-atf/plat/qti/common/src/qti_stack_protector.c
/rk3399_ARM-atf/plat/qti/common/src/qti_syscall.c
/rk3399_ARM-atf/plat/qti/kodiak/inc/kodiak_def.h
/rk3399_ARM-atf/plat/qti/kodiak/inc/qti_map_chipinfo.h
/rk3399_ARM-atf/plat/qti/kodiak/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/qti/kodiak/rb3gen2/inc/platform_def.h
/rk3399_ARM-atf/plat/qti/kodiak/rb3gen2/platform.mk
/rk3399_ARM-atf/plat/qti/kodiak/sc7280_chrome/inc/platform_def.h
/rk3399_ARM-atf/plat/qti/kodiak/sc7280_chrome/platform.mk
/rk3399_ARM-atf/plat/qti/qcs615/inc/platform_def.h
/rk3399_ARM-atf/plat/qti/qcs615/platform.mk
/rk3399_ARM-atf/plat/qti/qtiseclib/inc/kodiak/qtiseclib_defs_plat.h
/rk3399_ARM-atf/plat/qti/sc7180/inc/platform_def.h
/rk3399_ARM-atf/plat/qti/sc7180/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi3/platform.mk
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/tools/fiptool/plat_fiptool/nxp/plat_fiptool.mk
/rk3399_ARM-atf/tools/fiptool/plat_fiptool/nxp/s32/s32g274ardb2/plat_def_uuid_config.c
/rk3399_ARM-atf/tools/fiptool/plat_fiptool/nxp/s32/s32g274ardb2/plat_fiptool.mk
/rk3399_ARM-atf/tools/memory/poetry.lock
/rk3399_ARM-atf/tools/qti/fip-elf.lds
/rk3399_ARM-atf/tools/qti/generate_fip_elf.sh
a873d26f22-Oct-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(bl1): use per-world context correctly

Currently, the configuration with BL1 and BL2 at SEL1 will transition
via el3_exit which will restore per-world context. However, that context
is never writ

fix(bl1): use per-world context correctly

Currently, the configuration with BL1 and BL2 at SEL1 will transition
via el3_exit which will restore per-world context. However, that context
is never written to and so zeroes end up in registers, which is not
necessarily correct.

This patch gets BL1 to call cm_manage_extensions_per_world() whenever
BL2 runs in a lower EL. This allows the per-world registers to have the
reset values we intend. An accompanying call to
cm_manage_extensions_el3() is also added for completeness.

Doing this shows a small deficiency in cptr_el3 - bits TFP and TCPAC
change a lot. This patch makes them consistent by always setting TCPAC
and TFP to 0 which unconditionally enable access to CPTR_EL2 and FPCR by
default as they are always accessible. Other places that manipulate the
TFP bit are removed.

A nice side effect of all of this is that we're now in a position to
enable and use any architectural extension in BL2.

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2u/bl2u.mk
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/about/lts.rst
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/components/realm-management-extension.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/index.rst
/rk3399_ARM-atf/docs/getting_started/initial-build.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/index.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/rdaspen.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-9.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model.rst
/rk3399_ARM-atf/drivers/arm/css/scp/css_pm_scmi.c
/rk3399_ARM-atf/drivers/arm/dsu/dsu.c
/rk3399_ARM-atf/drivers/auth/auth_mod.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/scmi-msg/clock.c
/rk3399_ARM-atf/drivers/scmi-msg/clock.h
/rk3399_ARM-atf/drivers/st/rif/stm32_rifsc.c
/rk3399_ARM-atf/drivers/st/usb_dwc3/usb_dwc3.c
/rk3399_ARM-atf/drivers/st/usb_dwc3/usb_dwc3_regs.h
/rk3399_ARM-atf/drivers/usb/usb_device.c
/rk3399_ARM-atf/fdts/rdaspen-defs.dtsi
/rk3399_ARM-atf/fdts/rdaspen.dts
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/scmi-msg.h
/rk3399_ARM-atf/include/drivers/st/stm32_rifsc.h
/rk3399_ARM-atf/include/drivers/st/stm32mp_rifsc_regs.h
/rk3399_ARM-atf/include/drivers/st/usb_dwc3.h
/rk3399_ARM-atf/include/drivers/usb_device.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x4.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/dionysus.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v3.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/venom.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_mgmt.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm_lfa_components.h
/rk3399_ARM-atf/include/plat/arm/css/common/aarch64/css_macros.S
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/lfa_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/caddo.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x4.S
/rk3399_ARM-atf/lib/cpus/aarch64/dionysus.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/aarch64/venom.S
/rk3399_ARM-atf/lib/cpus/aarch64/veymont.S
/rk3399_ARM-atf/lib/cpus/aarch64/wa_cve_2022_23960_bhb.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
context_mgmt.c
/rk3399_ARM-atf/lib/extensions/pauth/pauth.c
/rk3399_ARM-atf/lib/extensions/sme/sme.c
/rk3399_ARM-atf/lib/extensions/sve/sve.c
/rk3399_ARM-atf/lib/romlib/Makefile
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/toolchain.mk
/rk3399_ARM-atf/make_helpers/utilities.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/fdts/rdaspen_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/fdts/rdaspen_optee_spmc_manifest.dts
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_plat.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_topology.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_lfa.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/st/common/bl2_io_storage.c
/rk3399_ARM-atf/plat/st/common/include/stm32cubeprogrammer.h
/rk3399_ARM-atf/plat/st/common/include/stm32mp_common.h
/rk3399_ARM-atf/plat/st/common/stm32cubeprogrammer_uart.c
/rk3399_ARM-atf/plat/st/common/stm32cubeprogrammer_usb.c
/rk3399_ARM-atf/plat/st/common/stm32mp_common.c
/rk3399_ARM-atf/plat/st/common/usb_dfu.c
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1_usb_dfu.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/include/platform_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_private.c
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_usb_dfu.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_event.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_main.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_private.h
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc.h
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_shared_mem.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_shared_mem.h
2281f0d522-Oct-2025 André Przywara <andre.przywara@arm.com>

Merge "fix(context-mgmt): correct guards for PIE and POE registers" into integration

12345678910>>...13