History log of /rk3399_ARM-atf/bl31/ (Results 1 – 25 of 530)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
416b861305-Mar-2025 John Powell <john.powell@arm.com>

fix(security): add workaround for CVE-2025-0647

This workaround fixes an issue with the CPP RCTX instruction by
issuing an instruction patch sequence to trap uses of the CPP RCTX
instruction from EL

fix(security): add workaround for CVE-2025-0647

This workaround fixes an issue with the CPP RCTX instruction by
issuing an instruction patch sequence to trap uses of the CPP RCTX
instruction from EL0, EL1, and EL2 to EL3 and perform a workaround
procedure using the implementation defined trap handler to ensure
the correct behavior of the system. In addition, it includes an EL3
API to be used if EL3 firmware needs to use the CPP RCTX instruction.
This saves the overhead of exception handling, and EL3 does not
generically support trapping EL3->EL3, and adding support for that
is not trivial due to the implications for context management.

The issue affects the following CPUs:

C1-Premium
C1-Ultra
Cortex-A710
Cortex-X2
Cortex-X3
Cortex-X4
Cortex-X925
Neoverse N2
Neoverse V2
Neoverse V3
Neoverse V3AE (handled same as V3 CPU in TF-A CPU-Lib)

Arm Security Bulletin Document:
https://developer.arm.com/documentation/111546

Change-Id: I5e7589afbeb69ebb79c01bec80e29f572aff3d89
Signed-off-by: John Powell <john.powell@arm.com>
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>

show more ...


/rk3399_ARM-atf/bl1/bl1.mk
bl31.mk
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/getting_started/build-options.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/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/include/arch/aarch32/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/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/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/psci/psci.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.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_a75_pubsub.c
/rk3399_ARM-atf/lib/cpus/aarch64/cpuamu.c
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n1_pubsub.c
/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
/rk3399_ARM-atf/lib/extensions/debug/debugv8p9.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/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/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/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_bl2_el3_setup.c
/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/mt8196/include/platform_def.h
/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
553c24c307-Jul-2025 Boyan Karatotev <boyan.karatotev@arm.com>

feat(cpufeat): enable FEAT_RAS for FEAT_STATE_CHECKED again

FEAT_RAS was originally converted to FEAT_STATE_CHECKED in 6503ff291.
However, the ability to use it was removed with 970a4a8d8 by simply

feat(cpufeat): enable FEAT_RAS for FEAT_STATE_CHECKED again

FEAT_RAS was originally converted to FEAT_STATE_CHECKED in 6503ff291.
However, the ability to use it was removed with 970a4a8d8 by simply
saying it impacts execution at EL3. That's true, but FEAT_STATE_CHECKED
can still be allowed by being a bit clever about it.

First, the remainder of common code can be converted to use the
is_feat_ras_supported() helper instead of the `#if FEATURE` pattern.
There are no corner cases to consider there. The feature is either
present (and appropriate action must be taken) or the feature is not (so
we can skip RAS code).

A conscious choice is taken to check the RAS code in synchronize_errors
despite it being in a hot path. Any fixed platform that seeks to be
performant should be setting features to 0 or 1. Then, the
SCTLR_EL3.IESB bit is always set if ENABLE_FEAT_RAS != 0 since we expect
FEAT_IESB to be present if FEAT_RAS is (despite the architecture not
guaranteeing it). If FEAT_RAS isn't present then we don't particularly
care about the status of FEAT_IESB.

Second, platforms that don't set ENABLE_FEAT_RAS must continue to work.
This is true out of the box with the is_feat_xyz_supported() helpers, as
they make sure to fully disable code within them.

Third, platforms that do set ENABLE_FEAT_RAS=1 must continue to work.
This is also true out of the box and no logical change is undertaken in
common code.

Finally, ENABLE_FEAT_RAS is set to 2 on FVP. Having RAS implies that the
whole handling machinery will be built-in and registered as appropriate.
However, when RAS is built-in but not present in hardware, these
registrations can still happen, they will only never be invoked at
runtime.

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

show more ...


/rk3399_ARM-atf/Makefile
bl31.mk
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/docs/components/activity-monitors.rst
/rk3399_ARM-atf/docs/components/context-management-library.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/drivers/renesas/common/common.c
/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/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/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/common/scif/scif_helpers.S
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/scif/scif.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/scif/scif.c
/rk3399_ARM-atf/fdts/rdaspen-defs.dtsi
/rk3399_ARM-atf/fdts/rdaspen.dts
/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/common/debug.h
/rk3399_ARM-atf/include/drivers/renesas/rcar/console/console.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/libc/cdefs.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_defs.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_v2.h
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/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/ras/ras_common.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_utils.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/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/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/common/aarch64/plat_common.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/registers/cpg_registers.h
/rk3399_ARM-atf/plat/renesas/common/rcar_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/aarch64/plat_helpers.S
/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/rcar_common.c
/rk3399_ARM-atf/plat/rockchip/rk3588/drivers/scmi/rk3588_clk.c
287ad95911-Aug-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(aarch64): remove crash reporting's dependency on cpu_data

Crash reporting is useful as early as possible, even before most of the
runtime has been set up. This means that all of its depende

refactor(aarch64): remove crash reporting's dependency on cpu_data

Crash reporting is useful as early as possible, even before most of the
runtime has been set up. This means that all of its dependencies,
currently only cpu_data, must be set up as early as possible too. This
can be constraining as fiddling with the general EL3 runtime from the
early entrypoint is very difficult. So remove the cpu_data dependency.
Further benefits are that crash reporting will work even earlier (during
cpu reset functions!) and also in other BLs.

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

show more ...

574db8ec19-Dec-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(el3-runtime): remove lower_el_panic()

A panic at EL3 is bad news and should never happen. What caused it isn't
exactly relevant or possible to figure out without manual debugging
(surely there w

fix(el3-runtime): remove lower_el_panic()

A panic at EL3 is bad news and should never happen. What caused it isn't
exactly relevant or possible to figure out without manual debugging
(surely there wouldn't have been a panic if not). A misbehaving lower EL
should never be able to cause problems for a higher EL and since EL3 is
in control of all lower ELs a panic at EL3 means that there is a
problem with EL3.

This patch removes lower_el panic and replaces it with a simple panic
for simplicity. There is a slight loss of information when an AArch32
lower EL has one of its instructions trapped by EL3. An explicit error
message is added to preserve this information.

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

show more ...


aarch64/crash_reporting.S
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/common/tf_crc32.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/firmware-design.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/common/debug.h
/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/mmio.h
/rk3399_ARM-atf/include/lib/smccc.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
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/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/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/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/common/aarch64/plat_common.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/nxp/s32/s32g274ardb2/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.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/spm/spm_mm/spm_mm_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/tools/sptool/sp_mk_generator.py
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/bl2/bl2_main.c
aarch64/crash_reporting.S
aarch64/ea_delegate.S
aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/changelog.yaml
/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/docs/security_advisories/security-advisory-tfv-13.rst
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/drivers/auth/crypto_mod.c
/rk3399_ARM-atf/drivers/clk/clk.c
/rk3399_ARM-atf/drivers/gpio/gpio_spi.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/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/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/clk.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/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/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/arm/common/arm_fconf_io_storage.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_a65.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_a725.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_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_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
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_debug.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/libc/strtoul.c
/rk3399_ARM-atf/lib/libc/strtoull.c
/rk3399_ARM-atf/lib/libfdt/fdt_overlay.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/lib/zlib/crc32.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/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/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/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/common/tegra_bl31_setup.c
/rk3399_ARM-atf/plat/nvidia/tegra/soc/t194/platform_t194.mk
/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/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/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
4286d16f26-Nov-2025 Arvind Ram Prakash <arvind.ramprakash@arm.com>

feat(cpufeat): add support for FEAT_UINJ

FEAT_UINJ allows higher ELs to inject Undefined Instruction exceptions
into lower ELs by setting SPSR_ELx.UINJ, which updates PSTATE.UINJ on
exception return

feat(cpufeat): add support for FEAT_UINJ

FEAT_UINJ allows higher ELs to inject Undefined Instruction exceptions
into lower ELs by setting SPSR_ELx.UINJ, which updates PSTATE.UINJ on
exception return. When PSTATE.UINJ is set, instruction execution at the
lower EL raises an Undefined Instruction exception (EC=0b000000).

This patch introduces support for FEAT_UINJ by updating the
inject_undef64() to use hardware undef injection if supported.

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

show more ...


/rk3399_ARM-atf/Makefile
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/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/css/scp/css_pm_scmi.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gic600_multichip.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gic600_multichip_private.h
/rk3399_ARM-atf/drivers/scmi-msg/base.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/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/lib/psci/psci.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/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/strtol.c
/rk3399_ARM-atf/lib/libc/strtoll.c
/rk3399_ARM-atf/lib/libc/strtoul.c
/rk3399_ARM-atf/lib/libc/strtoull.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_stat.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/make_helpers/toolchain.mk
/rk3399_ARM-atf/make_helpers/utilities.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/amd/versal2/include/def.h
/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/fvp_pm.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/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/tc/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/qti/sc7180/inc/platform_def.h
/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
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 ...

7303319b08-Nov-2025 Chris Kay <chris.kay@arm.com>

Merge changes from topic "NUMA_AWARE_PER_CPU" into integration

* changes:
docs(maintainers): add per-cpu framework into maintainers.rst
feat(per-cpu): add documentation for per-cpu framework
f

Merge changes from topic "NUMA_AWARE_PER_CPU" into integration

* changes:
docs(maintainers): add per-cpu framework into maintainers.rst
feat(per-cpu): add documentation for per-cpu framework
feat(rdv3): enable numa aware per-cpu for RD-V3-Cfg2
feat(per-cpu): migrate amu_ctx to per-cpu framework
feat(per-cpu): migrate spm_core_context to per-cpu framework
feat(per-cpu): migrate psci_ns_context to per-cpu framework
feat(per-cpu): migrate psci_cpu_pd_nodes to per-cpu framework
feat(per-cpu): migrate rmm_context to per-cpu framework
feat(per-cpu): integrate per-cpu framework into BL31/BL32
feat(per-cpu): introduce framework accessors/definers
feat(per-cpu): introduce linker changes for NUMA aware per-cpu framework
docs(changelog): add scope for per-cpu framework

show more ...


/rk3399_ARM-atf/Makefile
aarch64/bl31_entrypoint.S
aarch64/crash_reporting.S
aarch64/runtime_exceptions.S
bl31.ld.S
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/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/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/aarch32/el3_common_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/bl_common.ld.h
/rk3399_ARM-atf/include/lib/el3_runtime/cpu_data.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/lib/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/cpu_data_array.c
/rk3399_ARM-atf/lib/extensions/amu/aarch64/amu.c
/rk3399_ARM-atf/lib/per_cpu/aarch64/per_cpu_asm.S
/rk3399_ARM-atf/lib/per_cpu/per_cpu.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/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.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 ...

7256cf0a29-Jan-2025 Rohit Mathew <rohit.mathew@arm.com>

feat(per-cpu): introduce linker changes for NUMA aware per-cpu framework

This commit introduces linker changes for NUMA aware per-cpu objects in
the BL31 and BL32 images. The per-cpu framework is de

feat(per-cpu): introduce linker changes for NUMA aware per-cpu framework

This commit introduces linker changes for NUMA aware per-cpu objects in
the BL31 and BL32 images. The per-cpu framework is designed to minimise
cache thrashing, and the linker layout ensures each CPU’s per-cpu data
is placed on a separate cache line. This isolation is expected to
improve performance when the per-cpu framework is enabled.

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

show more ...


/rk3399_ARM-atf/.gitignore
/rk3399_ARM-atf/Makefile
bl31.ld.S
/rk3399_ARM-atf/bl32/sp_min/sp_min.ld.S
/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/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.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/gpt_rme/gpt_rme.h
/rk3399_ARM-atf/include/lib/per_cpu/per_cpu_defs.h
/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
/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/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
88655be921-Oct-2025 Arvind Ram Prakash <arvind.ramprakash@arm.com>

feat(el3-runtime): add flags argument to handle_sysreg_trap

Extend handle_sysreg_trap() to accept an additional flags
parameter indicating the caller’s security state.
The EL3 synchronous exception

feat(el3-runtime): add flags argument to handle_sysreg_trap

Extend handle_sysreg_trap() to accept an additional flags
parameter indicating the caller’s security state.
The EL3 synchronous exception handler now passes this value
when dispatching trapped system register accesses.
This allows handle_sysreg_trap() to handle traps based on
the originating security context.

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

show more ...


/rk3399_ARM-atf/.gitignore
/rk3399_ARM-atf/Makefile
aarch64/runtime_exceptions.S
bl31_traps.c
/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/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/bl31/sync_handle.h
/rk3399_ARM-atf/include/bl32/tsp/platform_tsp.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/gpt_rme/gpt_rme.h
/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
/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/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/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_main.c
bl31.mk
/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/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/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/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/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/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/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/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/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/sme/sme.c
/rk3399_ARM-atf/lib/extensions/sve/sve.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/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/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
98863b1e13-Oct-2025 Ahmed Azeem <ahmed.azeem@arm.com>

fix(dsu): dsu config for all cores in hot reset

This allows DSU units to be configured across all cpu clusters
instead of the primary cluster. This configures actlr_el3 in the
hot reset path to allo

fix(dsu): dsu config for all cores in hot reset

This allows DSU units to be configured across all cpu clusters
instead of the primary cluster. This configures actlr_el3 in the
hot reset path to allow power control and PMU registers for all
cores in lower ELs and fixes.

Change-Id: If4dd254736fbcc4bcb8785a16972a0132bc477ce
Signed-off-by: Ahmed Azeem <ahmed.azeem@arm.com>
Signed-off-by: Amr Mohamed <amr.mohamed@arm.com>

show more ...

b5deac9a27-Oct-2025 Manish V Badarkhe <manish.badarkhe@arm.com>

Merge changes from topic "comp_build_macro" into integration

* changes:
feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT
feat(build): set CRYPTO_SUPPORT macro per BL
feat(build): create defi

Merge changes from topic "comp_build_macro" into integration

* changes:
feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT
feat(build): set CRYPTO_SUPPORT macro per BL
feat(build): create define macro to be used by BL

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2u/bl2u.mk
bl31.mk
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/arm/css/scp/css_pm_scmi.c
/rk3399_ARM-atf/drivers/arm/dsu/dsu.c
/rk3399_ARM-atf/fdts/rdaspen-defs.dtsi
/rk3399_ARM-atf/fdts/rdaspen.dts
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/plat/arm/css/common/aarch64/css_macros.S
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/pauth/pauth.c
/rk3399_ARM-atf/lib/romlib/Makefile
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/utilities.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_topology.c
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.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
c3e5f6b922-Oct-2025 Manish Pandey <manish.pandey2@arm.com>

Merge changes from topic "bk/simpler_panic" into integration

* changes:
fix(aarch64): do not print EL1 registers on EL3 panic
refactor(el3-runtime): streamline cpu_data assembly offsets using th

Merge changes from topic "bk/simpler_panic" into integration

* changes:
fix(aarch64): do not print EL1 registers on EL3 panic
refactor(el3-runtime): streamline cpu_data assembly offsets using the cpu_ops template

show more ...


/rk3399_ARM-atf/Makefile
aarch64/crash_reporting.S
aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/sp_min/aarch32/entrypoint.S
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/about/release-information.rst
/rk3399_ARM-atf/docs/components/exception-handling.rst
/rk3399_ARM-atf/docs/components/fconf/tb_fw_bindings.rst
/rk3399_ARM-atf/docs/components/sdei.rst
/rk3399_ARM-atf/docs/components/secure-partition-manager-mm.rst
/rk3399_ARM-atf/docs/conf.py
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design_documents/rse.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/index.rst
/rk3399_ARM-atf/docs/plat/arm/juno/index.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/process/contributing.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-7.rst
/rk3399_ARM-atf/docs/threat_model/supply_chain_threat_model.rst
/rk3399_ARM-atf/drivers/measured_boot/rse/dice_prot_env.c
/rk3399_ARM-atf/drivers/renesas/common/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/common/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/common/scif/scif-common.c
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.S
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.h
/rk3399_ARM-atf/drivers/renesas/common/scif/scif_helpers.S
/rk3399_ARM-atf/drivers/renesas/common/timer/timer.c
/rk3399_ARM-atf/drivers/renesas/common/timer/timer.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/scif/scif.c
/rk3399_ARM-atf/drivers/scmi-msg/clock.c
/rk3399_ARM-atf/drivers/scmi-msg/power_domain.c
/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/lib/cpus/aarch64/caddo.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/veymont.h
/rk3399_ARM-atf/include/lib/el3_runtime/cpu_data.h
/rk3399_ARM-atf/include/lib/libfdt/fdt.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/caddo.S
/rk3399_ARM-atf/lib/cpus/aarch64/veymont.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch32/spinlock.S
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.S
/rk3399_ARM-atf/lib/psa/dice_protection_environment.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/make_helpers/march.mk
/rk3399_ARM-atf/make_helpers/toolchain.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_common_dpe.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_common_measured_boot.c
/rk3399_ARM-atf/plat/imx/common/imx_sip_handler.c
/rk3399_ARM-atf/plat/imx/common/plat_imx8_gic.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl2_plat_setup.c
/rk3399_ARM-atf/plat/qemu/common/common.mk
/rk3399_ARM-atf/plat/renesas/common/aarch64/plat_helpers.S
/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/plat_macros_cci.S
/rk3399_ARM-atf/plat/renesas/common/include/plat_macros_gic.S
/rk3399_ARM-atf/plat/renesas/common/plat_pm.c
/rk3399_ARM-atf/plat/renesas/common/rcar_stack_protector.c
/rk3399_ARM-atf/plat/renesas/rcar/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen4/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/plat_pm.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk
/rk3399_ARM-atf/plat/renesas/rzg/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rzg/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/otp/otp.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/otp/otp.h
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/scmi/rk3568_clk.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/scmi/rk3568_clk.h
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/soc/soc.c
/rk3399_ARM-atf/plat/rockchip/rk3568/plat_sip_calls.c
/rk3399_ARM-atf/plat/rockchip/rk3568/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3568/rk3568_def.h
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_api_sys.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_shared_mem.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_pm.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_private.h
cd92fb2428-Jul-2025 Lauren Wehrmeister <lauren.wehrmeister@arm.com>

feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT

Setting CRYPTO_LIB based on CRYPTO_SUPPORT via the
CRYPTO_SUPPORT macro to be called by component-specific makefiles.

Signed-off-by: Lauren Wehrme

feat(build): setting CRYPTO_LIB via CRYPTO_SUPPORT

Setting CRYPTO_LIB based on CRYPTO_SUPPORT via the
CRYPTO_SUPPORT macro to be called by component-specific makefiles.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: Ib400e4668c60c24bb4399de6a320b5c16205affb

show more ...

6e2fe62306-Jun-2025 Lauren Wehrmeister <lauren.wehrmeister@arm.com>

feat(build): set CRYPTO_SUPPORT macro per BL

Moving the setting of CRYPTO_SUPPORT from the main Makefile to
individual component makefiles using the new build macro
make_defines for each BL-specific

feat(build): set CRYPTO_SUPPORT macro per BL

Moving the setting of CRYPTO_SUPPORT from the main Makefile to
individual component makefiles using the new build macro
make_defines for each BL-specific CPPFLAGS.

Rework romlib build command to use CRYPTO_LIB to determine mbedtls need
instead of CRYPTO_SUPPORT. If CRYPTO_SUPPORT is set for any component,
then CRYPTO_LIB will be filled, romlib can use this instead.

Add a convenience makefile macro for setting CRYPTO_SUPPORT from
component specific makefiles, have components call the macro based on
whether authenication verification (NEED_AUTH) and/or hash calculation
(NEED_HASH) is required for the specific boot stage.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: I7e81fede74fb9c04694b022e8eebed460616565c

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2u/bl2u.mk
bl31.mk
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/about/release-information.rst
/rk3399_ARM-atf/docs/components/exception-handling.rst
/rk3399_ARM-atf/docs/components/fconf/tb_fw_bindings.rst
/rk3399_ARM-atf/docs/components/sdei.rst
/rk3399_ARM-atf/docs/components/secure-partition-manager-mm.rst
/rk3399_ARM-atf/docs/conf.py
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design_documents/rse.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/index.rst
/rk3399_ARM-atf/docs/plat/arm/juno/index.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/process/contributing.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-7.rst
/rk3399_ARM-atf/docs/threat_model/supply_chain_threat_model.rst
/rk3399_ARM-atf/drivers/measured_boot/rse/dice_prot_env.c
/rk3399_ARM-atf/drivers/renesas/common/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/common/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/common/scif/scif-common.c
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.S
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.h
/rk3399_ARM-atf/drivers/renesas/common/scif/scif_helpers.S
/rk3399_ARM-atf/drivers/renesas/common/timer/timer.c
/rk3399_ARM-atf/drivers/renesas/common/timer/timer.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/scif/scif.c
/rk3399_ARM-atf/drivers/scmi-msg/clock.c
/rk3399_ARM-atf/drivers/scmi-msg/power_domain.c
/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/lib/cpus/aarch64/caddo.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/veymont.h
/rk3399_ARM-atf/include/lib/libfdt/fdt.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/caddo.S
/rk3399_ARM-atf/lib/cpus/aarch64/veymont.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch32/spinlock.S
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.S
/rk3399_ARM-atf/lib/psa/dice_protection_environment.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/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/march.mk
/rk3399_ARM-atf/make_helpers/toolchain.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_common_dpe.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_common_measured_boot.c
/rk3399_ARM-atf/plat/imx/common/imx_sip_handler.c
/rk3399_ARM-atf/plat/imx/common/plat_imx8_gic.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl2_plat_setup.c
/rk3399_ARM-atf/plat/qemu/common/common.mk
/rk3399_ARM-atf/plat/renesas/common/aarch64/plat_helpers.S
/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/plat_macros_cci.S
/rk3399_ARM-atf/plat/renesas/common/include/plat_macros_gic.S
/rk3399_ARM-atf/plat/renesas/common/plat_pm.c
/rk3399_ARM-atf/plat/renesas/common/rcar_stack_protector.c
/rk3399_ARM-atf/plat/renesas/rcar/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen4/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/plat_pm.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk
/rk3399_ARM-atf/plat/renesas/rzg/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rzg/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/otp/otp.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/otp/otp.h
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/scmi/rk3568_clk.c
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/scmi/rk3568_clk.h
/rk3399_ARM-atf/plat/rockchip/rk3568/drivers/soc/soc.c
/rk3399_ARM-atf/plat/rockchip/rk3568/plat_sip_calls.c
/rk3399_ARM-atf/plat/rockchip/rk3568/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3568/rk3568_def.h
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_api_sys.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_shared_mem.c
7e8b709614-Oct-2025 Govindraj Raja <govindraj.raja@arm.com>

Merge changes Id711e387,I531a2ee1,Ic5b48514,I81f5f663,I6c529c13, ... into integration

* changes:
refactor(romlib): absorb WRAPPER_FLAGS into LDFLAGS
fix(build): simplify the -target options
fe

Merge changes Id711e387,I531a2ee1,Ic5b48514,I81f5f663,I6c529c13, ... into integration

* changes:
refactor(romlib): absorb WRAPPER_FLAGS into LDFLAGS
fix(build): simplify the -target options
feat(build): allow full LTO builds with clang
refactor(build): make sorting of sections generic
feat(build): use clang as a linker
fix(build): correctly detect that an option is missing with ld_option
feat(build): pass cflags to the linker when LTO is enabled

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2u/bl2u.mk
bl31.mk
/rk3399_ARM-atf/bl32/sp_min/sp_min.mk
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/common/backtrace/backtrace.mk
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_crypto.mk
/rk3399_ARM-atf/drivers/nxp/ddr/nxp-ddr/ddr.mk
/rk3399_ARM-atf/drivers/nxp/scmi/vendor/scmi_imx9.h
/rk3399_ARM-atf/include/drivers/nxp/flexspi/flash_info.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a715.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x3.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/stack_protector/stack_protector.mk
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/toolchain.mk
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_client.c
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_svc_main.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/imx_rdc.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_psci_common.c
/rk3399_ARM-atf/plat/imx/imx9/imx94/platform.mk
/rk3399_ARM-atf/plat/imx/imx9/imx95/platform.mk
/rk3399_ARM-atf/plat/marvell/armada/common/marvell_common.mk
/rk3399_ARM-atf/plat/nxp/soc-ls1028a/soc.c
/rk3399_ARM-atf/plat/nxp/soc-ls1043a/soc.c
/rk3399_ARM-atf/plat/nxp/soc-ls1046a/soc.c
/rk3399_ARM-atf/plat/nxp/soc-ls1088a/soc.c
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/soc.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/Makefile
/rk3399_ARM-atf/plat/xilinx/common/include/pm_api_sys.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_client.h
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/xilinx/versal/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/versal_net/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_api_sys.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_svc_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp.mk
5be6644908-Oct-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(build): make it standard to request a custom linker script

Hoist the add_define to a global location so that platforms only have to
declare its usage. Fix up #ifdef to #if since we will now

refactor(build): make it standard to request a custom linker script

Hoist the add_define to a global location so that platforms only have to
declare its usage. Fix up #ifdef to #if since we will now always pass a
definition.

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

show more ...


/rk3399_ARM-atf/.vscode/settings.json
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch64/bl1_context_mgmt.c
bl31.ld.S
/rk3399_ARM-atf/bl32/sp_min/sp_min_main.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/design_documents/drtm_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/index.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/porting-guide.rst
/rk3399_ARM-atf/drivers/arm/dsu/dsu.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gic-x00.c
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_common.mk
/rk3399_ARM-atf/drivers/cadence/nand/cdns_nand.c
/rk3399_ARM-atf/drivers/nxp/interconnect/ls_cci.c
/rk3399_ARM-atf/drivers/partition/partition.c
/rk3399_ARM-atf/fdts/rdaspen.dts
/rk3399_ARM-atf/include/arch/aarch32/arch.h
/rk3399_ARM-atf/include/arch/aarch32/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/arm/arm_gicv3_common.h
/rk3399_ARM-atf/include/drivers/arm/dsu.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/cadence/cdns_combo_phy.h
/rk3399_ARM-atf/include/drivers/cadence/cdns_nand.h
/rk3399_ARM-atf/include/drivers/partition/gpt.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v2.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/el3_runtime/cpu_data.h
/rk3399_ARM-atf/include/lib/el3_runtime/simd_ctx.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/plat_lfa.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/lfa_component_desc.h
/rk3399_ARM-atf/include/services/lfa_svc.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.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
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/romlib/Makefile
/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/plat/amd/versal2/include/plat_pm_common.h
/rk3399_ARM-atf/plat/amd/versal2/plat_psci_pm.c
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_client.c
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/rd1ae_plat.c
/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/include/plat_macros.S
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/rdaspen_helpers.S
/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_err.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/automotive_rd/platform/rdaspen/rdaspen_trusted_board_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/aarch64/fvp_ras.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_console.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv3.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_lfa.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/fvp_pas_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/morello/morello_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/morello/platform.mk
/rk3399_ARM-atf/plat/arm/board/n1sdp/n1sdp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/n1sdp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd-common.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/rdn2_plat.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/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_el3_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/arm/common/arm_cci.c
/rk3399_ARM-atf/plat/arm/common/arm_ccn.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_console.c
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/hisilicon/hikey960/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl2_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/common/drivers/combophy/combophy.c
/rk3399_ARM-atf/plat/intel/soc/common/drivers/combophy/combophy.h
/rk3399_ARM-atf/plat/intel/soc/common/drivers/nand/nand.c
/rk3399_ARM-atf/plat/intel/soc/common/drivers/nand/nand.h
/rk3399_ARM-atf/plat/intel/soc/common/sip/socfpga_sip_fcs.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_mailbox.c
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/ddr_sb.mk
/rk3399_ARM-atf/plat/renesas/common/common.mk
/rk3399_ARM-atf/plat/renesas/common/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/common/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar/bl2_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk
/rk3399_ARM-atf/plat/rockchip/px30/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3328/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3368/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/Makefile
/rk3399_ARM-atf/plat/rockchip/rk3399/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3568/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3576/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3588/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi4/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi5/platform.mk
/rk3399_ARM-atf/plat/socionext/synquacer/platform.mk
/rk3399_ARM-atf/plat/socionext/uniphier/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp1/include/platform_def.h
/rk3399_ARM-atf/plat/ti/common/plat_common.mk
/rk3399_ARM-atf/plat/xilinx/common/include/pm_api_sys.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_common.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_svc_main.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/plat/xilinx/common/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/xilinx/versal/include/plat_ipi.h
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/aarch64/versal_net_common.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_clock.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_svc_main.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.mk
/rk3399_ARM-atf/services/std_svc/lfa/bl31_lfa.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_private.h
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_rmm_lfa.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_setup.c
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm.mk
/rk3399_ARM-atf/tools/amlogic/Makefile
/rk3399_ARM-atf/tools/marvell/doimage/Makefile
/rk3399_ARM-atf/tools/memory/poetry.lock
/rk3399_ARM-atf/tools/renesas/rcar_layout_create/makefile
/rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile
/rk3399_ARM-atf/tools/sptool/Makefile
05d22c3013-May-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(build): make sorting of sections generic

All BLs define essentially the same sequence for sorting of sections.
Make that generic so it applies more easily.

Change-Id: I81f5f6635232bd43d999

refactor(build): make sorting of sections generic

All BLs define essentially the same sequence for sorting of sections.
Make that generic so it applies more easily.

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

show more ...


/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2u/bl2u.mk
bl31.mk
/rk3399_ARM-atf/bl32/sp_min/sp_min.mk
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/backtrace/backtrace.mk
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/design_documents/drtm_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/index.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/porting-guide.rst
/rk3399_ARM-atf/drivers/arm/dsu/dsu.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gic-x00.c
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_common.mk
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_crypto.mk
/rk3399_ARM-atf/drivers/nxp/interconnect/ls_cci.c
/rk3399_ARM-atf/drivers/partition/partition.c
/rk3399_ARM-atf/fdts/rdaspen.dts
/rk3399_ARM-atf/include/arch/aarch32/arch.h
/rk3399_ARM-atf/include/arch/aarch32/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/arm/arm_gicv3_common.h
/rk3399_ARM-atf/include/drivers/arm/dsu.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/partition/gpt.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v2.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/el3_runtime/simd_ctx.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.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
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.c
/rk3399_ARM-atf/lib/stack_protector/stack_protector.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/toolchain.mk
/rk3399_ARM-atf/plat/amd/versal2/include/plat_pm_common.h
/rk3399_ARM-atf/plat/amd/versal2/plat_psci_pm.c
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_client.c
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/rd1ae_plat.c
/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/include/plat_macros.S
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/rdaspen_helpers.S
/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_err.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/automotive_rd/platform/rdaspen/rdaspen_trusted_board_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/aarch64/fvp_ras.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_console.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv3.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/fvp_pas_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/morello/morello_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/morello/platform.mk
/rk3399_ARM-atf/plat/arm/board/n1sdp/n1sdp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/n1sdp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd-common.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/rdn2_plat.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/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_el3_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/arm/common/arm_cci.c
/rk3399_ARM-atf/plat/arm/common/arm_ccn.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_console.c
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/intel/soc/agilex/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl2_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/common/sip/socfpga_sip_fcs.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_mailbox.c
/rk3399_ARM-atf/plat/renesas/common/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/common/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar/bl2_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_private.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/Makefile
/rk3399_ARM-atf/plat/st/stm32mp1/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_api_sys.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_common.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/plat/xilinx/common/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/aarch64/versal_net_common.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_clock.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_svc_main.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/std_svc/rmmd/rmmd_private.h
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp.mk
/rk3399_ARM-atf/tools/memory/poetry.lock
25fe31b222-May-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cpufeat): add ras files to the build from a common location

If ENABLE_FEAT_RAS is unset on the build commandline the platform.mk
will run and make its decisions with the flag unset, after which

fix(cpufeat): add ras files to the build from a common location

If ENABLE_FEAT_RAS is unset on the build commandline the platform.mk
will run and make its decisions with the flag unset, after which
arch_features.mk will run and enable the feature. The result in the RAS
case is a build failure due to missing symbols.

Nvidia works around this by setting ENABLE_FEAT_RAS manually despite the
arch_features.mk setting.

Every platform that enables ENABLE_FEAT_RAS also pulls in
std_err_record.c and ras_common.c. So fix the build failure by having
these files be pulled into the build from common code in bl31.mk.

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

show more ...

f9f4944d04-Jul-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cm): do not restore spsr and elr twice on external aborts

el3_exit will restore SPSR_EL3 and ELR_EL3. There is no need to do it in
ea_proceed too as that is always followed by el3_exit.

Change-

fix(cm): do not restore spsr and elr twice on external aborts

el3_exit will restore SPSR_EL3 and ELR_EL3. There is no need to do it in
ea_proceed too as that is always followed by el3_exit.

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

show more ...

a202529e22-May-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cm): do not save SCR_EL3 on external aborts

SCR_EL3 is static. For non-root worlds, once initialised by
cm_setup_context(), its value is immutable and only restored by
el3_exit(). For the root w

fix(cm): do not save SCR_EL3 on external aborts

SCR_EL3 is static. For non-root worlds, once initialised by
cm_setup_context(), its value is immutable and only restored by
el3_exit(). For the root world (or EL3 when that's not a thing)
setup_el3_execution_context() (via prepare_el3_entry()) will write a
different static value in, with the expectation that el3_exit() will
wipe it. As such saving scr_el3 in the case of a double fault is not
necessary, and even harmful as the wrong (root's) value will get written
in.

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

show more ...

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

feat(cpufeat): enable FEAT_CPA2 for EL3

FEAT_CPA2 enables checked pointer arithmetic, which in the event
of an arithmetic overflow in pointer generation will result in a
non-canonical pointer being

feat(cpufeat): enable FEAT_CPA2 for EL3

FEAT_CPA2 enables checked pointer arithmetic, which in the event
of an arithmetic overflow in pointer generation will result in a
non-canonical pointer being generated and subsequent address fault.

Note that FEAT_CPA is a trivial implementation that exists in
some hardware purely so it can run CPA2-enabled instructions
without crashing but they don't actually have checked arithmetic,
so FEAT_CPA is not explicitly enabled in TF-A.

Change-Id: I6d2ca7a7e4b986bb9e917aa8baf8091a271c168b
Signed-off-by: John Powell <john.powell@arm.com>

show more ...


/rk3399_ARM-atf/.readthedocs.yaml
/rk3399_ARM-atf/Makefile
bl31.mk
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/nvidia-tegra.rst
/rk3399_ARM-atf/docs/tools/index.rst
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_base.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/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc3.dts
/rk3399_ARM-atf/fdts/tc4.dts
/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/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_a510.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_n3.h
/rk3399_ARM-atf/include/lib/el3_runtime/aarch64/context.h
/rk3399_ARM-atf/include/lib/extensions/cpa2.h
/rk3399_ARM-atf/include/services/ffa_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_a510.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n3.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/debugfs/dev.c
/rk3399_ARM-atf/lib/debugfs/dev.h
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/cpa2/cpa2.c
/rk3399_ARM-atf/lib/extensions/sve/sve.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/amd/versal2/soc_ipi.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_spmc_optee_sp_manifest.dts
/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/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_helpers.S
/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/fconf/arm_fconf_io.c
/rk3399_ARM-atf/plat/ti/k3low/board/am62lx/include/board_def.h
/rk3399_ARM-atf/plat/ti/k3low/common/am62l_bl31_setup.c
/rk3399_ARM-atf/plat/ti/k3low/common/am62l_psci.c
/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/pm_defs.h
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/poetry.lock
/rk3399_ARM-atf/pyproject.toml
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_setup.c
8f15231911-Aug-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(aarch64): do not print EL1 registers on EL3 panic

Lower EL execution should not be able to panic EL3. The main source of
potential panic, traps from lower ELs, are now handled gracefully with
un

fix(aarch64): do not print EL1 registers on EL3 panic

Lower EL execution should not be able to panic EL3. The main source of
potential panic, traps from lower ELs, are now handled gracefully with
undefined injection. Almost every other source of panic is something
going wrong within TF-A. Regardless, in both cases, ESR_EL3, ELR_EL3,
and SPSR_ELR provide the majority of necessary information to debug a
panic and printing a lot of lower EL register only clutters the crash
dump and makes it difficult to read.

Further, when EL3 panics, the ultimate source of that panic may be EL2
but the crash reporting functionality only prints out EL1 system
registers which are going to be quite useless to debug.

Finally, the panic may be happening due to some misconfiguration of
other EL3 system registers that have been introduced with a feature.

There are two logical choices:
a) extend crash reporting to report all EL1, EL2, and EL3 registers
depending on where an error came from, including all features
b) only print core EL3 registers and rely on the developer to add extra
prints as necessary

We have never strived to achieve a) (as evidenced by EL2 and feature
sysregs never having been added), so do b). Only non-EL3 registers that
are relevant to EL3's direct execution are kept (like SP_EL0).

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

show more ...

12345678910>>...22