History log of /rk3399_ARM-atf/include/lib/el3_runtime/ (Results 1 – 25 of 155)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
e8e8fc5614-Jan-2026 Govindraj Raja <govindraj.raja@arm.com>

Merge changes from topic "bk/simpler_panic" into integration

* changes:
refactor(aarch64): remove crash reporting's dependency on cpu_data
fix(el3-runtime): remove lower_el_panic()

3247828c02-Aug-2022 Manoj Kumar <manoj.kumar3@arm.com>

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

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

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

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

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

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/common/tf_crc32.c
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_console.S
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_printf.c
/rk3399_ARM-atf/drivers/renesas/common/console/rcar_printf.h
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.c
/rk3399_ARM-atf/fdts/rdaspen-defs.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
aarch64/context.h
/rk3399_ARM-atf/include/lib/libc/cdefs.h
/rk3399_ARM-atf/include/lib/smccc.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_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/xlat_tables_v2/aarch64/xlat_tables_arch.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_core.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/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/morello/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/platform.mk
/rk3399_ARM-atf/plat/renesas/common/common.mk
/rk3399_ARM-atf/plat/renesas/common/include/registers/cpg_registers.h
/rk3399_ARM-atf/plat/st/common/common.mk
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1.ld.S
/rk3399_ARM-atf/plat/st/stm32mp2/aarch64/stm32mp2.ld.S
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/sip_svc_setup.c
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/spd/opteed/opteed_common.c
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/rk3399_ARM-atf/services/spd/opteed/opteed_pm.c
/rk3399_ARM-atf/services/spd/opteed/opteed_private.h
/rk3399_ARM-atf/services/spd/opteed/teesmc_opteed.h
/rk3399_ARM-atf/services/spd/opteed/teesmc_opteed_macros.h
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/tools/sptool/sp_mk_generator.py
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 ...


/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch32/bl1_exceptions.S
/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/ea_delegate.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/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/common/tf_crc32.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/contrib/libtpm
/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/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/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/auth/crypto_mod.c
/rk3399_ARM-atf/drivers/gpio/gpio_spi.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/nxp/ddr/nxp-ddr/utility.c
/rk3399_ARM-atf/drivers/tpm/tpm2.mk
/rk3399_ARM-atf/drivers/tpm/tpm2_slb9670/slb9670_gpio.c
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc-fpga.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch32/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/bl1/bl1.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/common/measured_boot.h
/rk3399_ARM-atf/include/drivers/auth/crypto_mod.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/gpio_spi.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2_slb9670/slb9670_gpio.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_nano.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_premium.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_pro.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_ultra.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x925.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v2.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v3.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/debugfs.h
cpu_data.h
/rk3399_ARM-atf/include/lib/mmio.h
/rk3399_ARM-atf/include/lib/psa/rse_crypto_defs.h
/rk3399_ARM-atf/include/lib/psa/rse_platform_api.h
/rk3399_ARM-atf/include/lib/smccc.h
/rk3399_ARM-atf/include/lib/spinlock.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/include/services/spm_mm_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_nano.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a715.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720_ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x2.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x3.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n1.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n3.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/cpus/errata_common.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/locks/exclusive/aarch32/spinlock.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psa/rse_platform.c
/rk3399_ARM-atf/lib/psci/psci_lib.mk
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/amd/versal2/aarch64/helpers.S
/rk3399_ARM-atf/plat/amd/versal2/include/def.h
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_helpers.S
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_plat.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_pm.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp_ve/fvp_ve_security.c
/rk3399_ARM-atf/plat/arm/board/juno/include/plat_juno_mbedtls_config.h
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/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/include/tc_plat.h
/rk3399_ARM-atf/plat/arm/board/tc/platform_test.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/common/aarch64/plat_common.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/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/nvidia/tegra/common/tegra_bl31_setup.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/platform.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/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/rpi/rpi3/include/rpi3_measured_boot.h
/rk3399_ARM-atf/plat/rpi/rpi3/include/rpi_hw.h
/rk3399_ARM-atf/plat/rpi/rpi3/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_common_mboot.c
/rk3399_ARM-atf/plat/st/common/common.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/drtm/drtm_measurements.c
/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
8cd9c18b08-Dec-2025 Boyan Karatotev <boyan.karatotev@arm.com>

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

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

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

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

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

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

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

show more ...


/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch32/bl1_exceptions.S
/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/ea_delegate.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/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/about/features.rst
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/activity-monitors.rst
/rk3399_ARM-atf/docs/components/context-management-library.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/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/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/auth/crypto_mod.c
/rk3399_ARM-atf/drivers/gpio/gpio_spi.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/nxp/ddr/nxp-ddr/utility.c
/rk3399_ARM-atf/drivers/tpm/tpm2.mk
/rk3399_ARM-atf/drivers/tpm/tpm2_slb9670/slb9670_gpio.c
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc-fpga.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch_features.h
/rk3399_ARM-atf/include/arch/aarch32/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/bl1/bl1.h
/rk3399_ARM-atf/include/common/measured_boot.h
/rk3399_ARM-atf/include/drivers/auth/crypto_mod.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/gpio_spi.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2_slb9670/slb9670_gpio.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_nano.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_premium.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_pro.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/c1_ultra.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x925.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v2.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v3.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/debugfs.h
aarch64/context.h
context_mgmt.h
/rk3399_ARM-atf/include/lib/extensions/amu.h
/rk3399_ARM-atf/include/lib/mmio.h
/rk3399_ARM-atf/include/lib/psa/rse_crypto_defs.h
/rk3399_ARM-atf/include/lib/psa/rse_platform_api.h
/rk3399_ARM-atf/include/lib/spinlock.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/include/services/spm_mm_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_nano.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a715.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720_ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x2.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x3.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n1.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n3.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/cpus/errata_common.c
/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/locks/exclusive/aarch32/spinlock.c
/rk3399_ARM-atf/lib/locks/exclusive/aarch64/spinlock.c
/rk3399_ARM-atf/lib/psa/rse_platform.c
/rk3399_ARM-atf/lib/psci/psci_lib.mk
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/amd/versal2/aarch64/helpers.S
/rk3399_ARM-atf/plat/amd/versal2/include/def.h
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_helpers.S
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_plat.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_pm.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp_ve/fvp_ve_security.c
/rk3399_ARM-atf/plat/arm/board/juno/include/plat_juno_mbedtls_config.h
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl1_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl2_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/fdts/tc_spmc_manifest.dtsi
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/include/tc_plat.h
/rk3399_ARM-atf/plat/arm/board/tc/platform_test.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/rk3399_ARM-atf/plat/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/nvidia/tegra/common/tegra_bl31_setup.c
/rk3399_ARM-atf/plat/nxp/soc-ls1028a/soc.c
/rk3399_ARM-atf/plat/nxp/soc-ls1028a/soc.mk
/rk3399_ARM-atf/plat/qemu/qemu/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu/platform.mk
/rk3399_ARM-atf/plat/qemu/qemu/qemu_measured_boot.c
/rk3399_ARM-atf/plat/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/rpi/rpi3/include/rpi3_measured_boot.h
/rk3399_ARM-atf/plat/rpi/rpi3/include/rpi_hw.h
/rk3399_ARM-atf/plat/rpi/rpi3/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_common_mboot.c
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.c
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm_main.c
650bfcbd11-Dec-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix(cpufeat): always provide pauth context helper

We need to be able to work on the structure with or without pauth.
Arrange the getter so that it can compile even if it wouldn't be
functional.

Cha

fix(cpufeat): always provide pauth context helper

We need to be able to work on the structure with or without pauth.
Arrange the getter so that it can compile even if it wouldn't be
functional.

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

show more ...

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

fix(cm): remove set_aapcs_args functions

These functions were added as wrappers on context but were never used,
mainly because we sometimes only have a reference to the gpregs
sub-struct. Remove the

fix(cm): remove set_aapcs_args functions

These functions were added as wrappers on context but were never used,
mainly because we sometimes only have a reference to the gpregs
sub-struct. Remove them to reduce clutter.

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/bl31_traps.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/numa-per-cpu.rst
/rk3399_ARM-atf/docs/components/ras.rst
/rk3399_ARM-atf/docs/components/realm-management-extension.rst
/rk3399_ARM-atf/docs/conf.py
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/perf/psci-performance-juno.rst
/rk3399_ARM-atf/docs/perf/psci-performance-n1sdp.rst
/rk3399_ARM-atf/docs/plat/arm/arm-build-options.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/rdaspen.rst
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-false-sharing.png
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-numa-disabled.png
/rk3399_ARM-atf/docs/resources/diagrams/per-cpu-numa-enabled.png
/rk3399_ARM-atf/docs/resources/diagrams/plantuml/firmware_handoff_dfd.puml
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/index.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model_firmware_handoff.rst
/rk3399_ARM-atf/drivers/arm/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/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/drivers/clk/clk.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/pwrc/pwrc.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/pwrc/pwrc.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen5/scif/scif.c
/rk3399_ARM-atf/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/drivers/clk.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a725.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a76ae.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/lsc25_e_core.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/lsc25_p_core.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
aarch64/context.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/plat/arm/common/arm_fconf_io_storage.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a65.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a725.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_e_core.S
/rk3399_ARM-atf/lib/cpus/aarch64/lsc25_p_core.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/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/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/libfdt/fdt_overlay.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_stat.c
/rk3399_ARM-atf/lib/zlib/crc32.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/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/neoverse_rd/platform/rdn2/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_rng_trap.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_io_storage.c
/rk3399_ARM-atf/plat/arm/common/fconf/arm_fconf_io.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mn/imx8mn_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_system_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_sip_svc.c
/rk3399_ARM-atf/plat/nvidia/tegra/soc/t194/platform_t194.mk
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/sbsa_sip_svc.c
/rk3399_ARM-atf/plat/qti/sc7180/inc/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/aarch64/platform_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat.ld.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat_helpers.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_scmi_id.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/include/rcar_version.h
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_pm.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_pm_scmi.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/plat_topology.c
/rk3399_ARM-atf/plat/renesas/rcar_gen5/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen5/rcar_common.c
/rk3399_ARM-atf/pyproject.toml
/rk3399_ARM-atf/readme.rst
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/tools/conventional-changelog-tf-a/package.json
f396aec809-Sep-2025 Arvind Ram Prakash <arvind.ramprakash@arm.com>

feat(cpufeat): add support for FEAT_IDTE3

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

feat(cpufeat): add support for FEAT_IDTE3

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

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

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

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

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

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

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

show more ...


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

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

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

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

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

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

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

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

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

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

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

show more ...


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

fix(bl1): use per-world context correctly

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

fix(bl1): use per-world context correctly

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

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

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

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

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2u/bl2u.mk
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/about/lts.rst
/rk3399_ARM-atf/docs/architecture_features.rst
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/components/realm-management-extension.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/index.rst
/rk3399_ARM-atf/docs/getting_started/initial-build.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/index.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/rdaspen.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-9.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model.rst
/rk3399_ARM-atf/drivers/arm/css/scp/css_pm_scmi.c
/rk3399_ARM-atf/drivers/arm/dsu/dsu.c
/rk3399_ARM-atf/drivers/auth/auth_mod.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/scmi-msg/clock.c
/rk3399_ARM-atf/drivers/scmi-msg/clock.h
/rk3399_ARM-atf/drivers/st/rif/stm32_rifsc.c
/rk3399_ARM-atf/drivers/st/usb_dwc3/usb_dwc3.c
/rk3399_ARM-atf/drivers/st/usb_dwc3/usb_dwc3_regs.h
/rk3399_ARM-atf/drivers/usb/usb_device.c
/rk3399_ARM-atf/fdts/rdaspen-defs.dtsi
/rk3399_ARM-atf/fdts/rdaspen.dts
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/scmi-msg.h
/rk3399_ARM-atf/include/drivers/st/stm32_rifsc.h
/rk3399_ARM-atf/include/drivers/st/stm32mp_rifsc_regs.h
/rk3399_ARM-atf/include/drivers/st/usb_dwc3.h
/rk3399_ARM-atf/include/drivers/usb_device.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x4.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/dionysus.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v3.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/venom.h
context_mgmt.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm_lfa_components.h
/rk3399_ARM-atf/include/plat/arm/css/common/aarch64/css_macros.S
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/lfa_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/caddo.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x4.S
/rk3399_ARM-atf/lib/cpus/aarch64/dionysus.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/aarch64/venom.S
/rk3399_ARM-atf/lib/cpus/aarch64/veymont.S
/rk3399_ARM-atf/lib/cpus/aarch64/wa_cve_2022_23960_bhb.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/pauth/pauth.c
/rk3399_ARM-atf/lib/extensions/sme/sme.c
/rk3399_ARM-atf/lib/extensions/sve/sve.c
/rk3399_ARM-atf/lib/romlib/Makefile
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/toolchain.mk
/rk3399_ARM-atf/make_helpers/utilities.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/fdts/rdaspen_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/fdts/rdaspen_optee_spmc_manifest.dts
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_plat.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rdaspen/rdaspen_topology.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_lfa.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/st/common/bl2_io_storage.c
/rk3399_ARM-atf/plat/st/common/include/stm32cubeprogrammer.h
/rk3399_ARM-atf/plat/st/common/include/stm32mp_common.h
/rk3399_ARM-atf/plat/st/common/stm32cubeprogrammer_uart.c
/rk3399_ARM-atf/plat/st/common/stm32cubeprogrammer_usb.c
/rk3399_ARM-atf/plat/st/common/stm32mp_common.c
/rk3399_ARM-atf/plat/st/common/usb_dfu.c
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1_usb_dfu.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/include/platform_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_private.c
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_usb_dfu.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_event.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_main.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_private.h
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc.h
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_shared_mem.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_shared_mem.h
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
/rk3399_ARM-atf/bl1/aarch64/bl1_context_mgmt.c
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2u/bl2u.mk
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.ld.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl32/sp_min/aarch32/entrypoint.S
/rk3399_ARM-atf/bl32/sp_min/sp_min.mk
/rk3399_ARM-atf/bl32/sp_min/sp_min_main.c
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/backtrace/backtrace.mk
/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/auth/mbedtls/mbedtls_crypto.mk
/rk3399_ARM-atf/drivers/measured_boot/rse/dice_prot_env.c
/rk3399_ARM-atf/drivers/nxp/ddr/nxp-ddr/ddr.mk
/rk3399_ARM-atf/drivers/nxp/scmi/vendor/scmi_imx9.h
/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/drivers/nxp/flexspi/flash_info.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/caddo.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/veymont.h
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/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/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/lib/stack_protector/stack_protector.mk
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/march.mk
/rk3399_ARM-atf/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/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/hisilicon/hikey960/platform.mk
/rk3399_ARM-atf/plat/imx/common/imx_sip_handler.c
/rk3399_ARM-atf/plat/imx/common/plat_imx8_gic.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/intel/soc/agilex5/bl2_plat_setup.c
/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/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/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/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/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/st/common/common_rules.mk
/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/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp.mk
/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
80684b7e13-Oct-2025 Olivier Deprez <olivier.deprez@arm.com>

Merge "fix(cm): deprecate use of NS_TIMER_SWITCH" into integration


/rk3399_ARM-atf/.readthedocs.yaml
/rk3399_ARM-atf/.vscode/settings.json
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl31/aarch64/ea_delegate.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/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/docs/tools/index.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/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc3.dts
/rk3399_ARM-atf/fdts/tc4.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_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/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_a510.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/cpus/errata.h
context_el1.h
/rk3399_ARM-atf/include/lib/extensions/cpa2.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_a510.S
/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/debugfs/dev.c
/rk3399_ARM-atf/lib/debugfs/dev.h
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/cpa2/cpa2.c
/rk3399_ARM-atf/lib/gpt_rme/gpt_rme.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/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/corstone1000/common/include/platform_def.h
/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/include/platform_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/include/platform_def.h
/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/fconf/arm_fconf_io.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/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/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/nvidia/tegra/soc/t194/platform_t194.mk
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/ddr_sb.mk
/rk3399_ARM-atf/plat/renesas/rcar/bl2_plat_setup.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/Makefile
/rk3399_ARM-atf/plat/socionext/uniphier/platform.mk
/rk3399_ARM-atf/plat/ti/common/plat_common.mk
/rk3399_ARM-atf/plat/ti/k3low/common/am62l_bl31_setup.c
/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/poetry.lock
/rk3399_ARM-atf/pyproject.toml
/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_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
4779becd06-Aug-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(el3-runtime): streamline cpu_data assembly offsets using the cpu_ops template

The cpu_data structure, just like cpu_ops, is collection of disparate
data that must be accessible from both C

refactor(el3-runtime): streamline cpu_data assembly offsets using the cpu_ops template

The cpu_data structure, just like cpu_ops, is collection of disparate
data that must be accessible from both C and assembly. Achieving this is
tricky as there is no way to export structure offsets from C directly so
they must be manually recreated with `#define`s and asserts. However,
the cpu_data structure is quite old and the assembly offsets are a
patchwork of additions and extremely difficult to reason with and
modify. In fact, certain currently unused builds with
ENABLE_RUNTIME_INSTRUMENTATION=1 fail to build.

To untangle this, convert the assembly offsets to the pattern used for
the cpu_ops structure. That is, first define the sizes of every member,
as generically as possible, and then chain their offsets one after the
other. To make sure this is always correct, add a CASSERT for the offset
of every member. This makes it easy to modify the structure and fixes
the build failures.

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

show more ...

2c730eea12-Sep-2025 Boyan Karatotev <boyan.karatotev@arm.com>

fix: remove unused cpu_data related macros

There are no uses for CPU_DATA_PSCI_LOCK_OFFSET so it is removed.

PLAT_PCPU_DATA_SIZE is also unused in ST platforms and causes offsets
to mismatch when t

fix: remove unused cpu_data related macros

There are no uses for CPU_DATA_PSCI_LOCK_OFFSET so it is removed.

PLAT_PCPU_DATA_SIZE is also unused in ST platforms and causes offsets
to mismatch when the linker garbage collects it. It is also removed.

CPU_DATA_PLAT_PCPU_OFFSET is also removed as its only use is in
rcar_lock_get() and related macros which are never called since all
calls of these macros lack an argument.

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

show more ...

34a22a0205-Aug-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(el3-runtime): move context security states to context.h

The three security states (S, NS, RL) are architecturally quite
consistent - anything that uses them has the same numerical assignmen

refactor(el3-runtime): move context security states to context.h

The three security states (S, NS, RL) are architecturally quite
consistent - anything that uses them has the same numerical assignments
(0, 1, 2) and they are quite convenient for indexing. However, we're not
as consistent in tf-a and this is defined in a few places. Since
cpu_data has a dependency on the context management library, use its
security state convention in a few more places and take away this
responsibility from cpu_data.

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

show more ...

01b3d39405-Aug-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(el3-runtime): extract cpu_data limitations to top-level constraints

CRASH_REPORTING is checked via an `#error` statement in the header,
while EL3_EXCEPTION_HANDLING is carefully carved out

refactor(el3-runtime): extract cpu_data limitations to top-level constraints

CRASH_REPORTING is checked via an `#error` statement in the header,
while EL3_EXCEPTION_HANDLING is carefully carved out when not supported.
However, both are only used on AArch64 builds and never on AArch32. We
can promote both to proper make constraints and keep the cpu_data
implementation a little bit simpler.

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

show more ...


/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/bl1/aarch32/bl1_entrypoint.S
/rk3399_ARM-atf/bl1/aarch64/bl1_entrypoint.S
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/aarch32/bl2_el3_entrypoint.S
/rk3399_ARM-atf/bl2/aarch32/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/aarch64/bl2_el3_entrypoint.S
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2/bl2_el3.ld.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/interrupt_mgmt.c
/rk3399_ARM-atf/bl32/sp_min/sp_min_main.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/rmm-el3-comms-spec.rst
/rk3399_ARM-atf/docs/plat/nvidia-tegra.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_base.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/mssr/mssr.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/mssr/mssr.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/ptp/ptp.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/ptp/ptp.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/call_sram.S
/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/renesas/rcar_gen4/scif/scif.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/scif/scif_helpers.S
/rk3399_ARM-atf/drivers/st/uart/aarch32/stm32_console.S
/rk3399_ARM-atf/drivers/st/uart/aarch64/stm32_console.S
/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/tc4.dts
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/bl1/bl1.h
/rk3399_ARM-atf/include/bl2/bl2.h
/rk3399_ARM-atf/include/bl31/bl31.h
/rk3399_ARM-atf/include/drivers/auth/crypto_mod.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/neoverse_n3.h
cpu_data.h
/rk3399_ARM-atf/include/lib/extensions/pauth.h
/rk3399_ARM-atf/include/lib/libc/cdefs.h
/rk3399_ARM-atf/include/lib/psci/psci_lib.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/plat/nuvoton/common/npcm845x_arm_def.h
/rk3399_ARM-atf/include/services/ffa_svc.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/c1_nano.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_premium.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_pro.S
/rk3399_ARM-atf/lib/cpus/aarch64/c1_ultra.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n3.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/debugfs/debugfs_smc.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/pauth/pauth.c
/rk3399_ARM-atf/lib/extensions/sve/sve.c
/rk3399_ARM-atf/lib/optee/optee_utils.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_main.c
/rk3399_ARM-atf/lib/transfer_list/transfer_list.mk
/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/constraints.mk
/rk3399_ARM-atf/make_helpers/utilities.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/plat/allwinner/common/allwinner-common.mk
/rk3399_ARM-atf/plat/amd/common/plat_xfer_list.c
/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/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/fdts/fvp_stmm_bl2_sp_list.dts
/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.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_drtm_measurement.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv3.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/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/neoverse_rd/platform/rdv3/rdv3_common.c
/rk3399_ARM-atf/plat/arm/board/tc/fdts/tc_spmc_manifest.dtsi
/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/common/arm_dyn_cfg_helpers.c
/rk3399_ARM-atf/plat/arm/common/arm_transfer_list.c
/rk3399_ARM-atf/plat/arm/common/tsp/arm_tsp_setup.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/common/plat_gicv2.c
/rk3399_ARM-atf/plat/common/plat_gicv3.c
/rk3399_ARM-atf/plat/common/plat_spmd_manifest.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c
/rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_bl2_setup.c
/rk3399_ARM-atf/plat/qemu/common/qemu_common.c
/rk3399_ARM-atf/plat/qemu/qemu/qemu_measured_boot.c
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen4/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/aarch64/platform_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat.ld.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat_helpers.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_version.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/plat_pm.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/plat_topology.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen4/rcar_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/rcar_stack_protector.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/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/ipi_mailbox_service/ipi_mailbox_svc.c
/rk3399_ARM-atf/plat/xilinx/common/plat_clkfunc.c
/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/services/std_svc/drtm/drtm_measurements.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/spm/el3_spmc/spmc_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_setup.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/tools/tlc/poetry.lock
ccf6796521-Aug-2025 Sumit Garg <sumit.garg@oss.qualcomm.com>

fix(cm): deprecate use of NS_TIMER_SWITCH

On AArch64, secure world has it's own EL3 physical timer registers
accessible to secure EL1 in absence of S-EL2. With S-EL2 there is
virtualized view availa

fix(cm): deprecate use of NS_TIMER_SWITCH

On AArch64, secure world has it's own EL3 physical timer registers
accessible to secure EL1 in absence of S-EL2. With S-EL2 there is
virtualized view available for EL1 timer registers. So it is
unreasonable for secure world to use non-secure EL1 physical timer
registers. Moreover, the non-secure operating system (Linux in our case)
relies heavily on these EL1 physical timer registers for scheduling
decisions. If NS_TIMER_SWITCH is enabled, it simply breaks the preemption
model of the non-secure world by disabling non-secure timer interrupts
leading to RCU stalls being observed on long running secure world tasks.

The only arch timer register which will benefit from context management
is cntkctl_el1: Counter-timer Kernel Control Register. This enables the
secure and non-secure worlds to independently control accesses to EL0
for counter-timer registers. This is something that OP-TEE uses to
enable ftrace feature for Trusted Applications and SPM_MM uses for EL0
access as well.

Lets enable context management of cntkctl_el1 by default and deprecate
conditional context management of non-secure EL1 physical timer
registers for whom there isn't any upstream user. With that deprecate
this NS_TIMER_SWITCH build option which just adds confusion for the
platform maintainers. It will be eventually dropped following
deprecation policy of TF-A.

Reported-by: Stauffer Thomas MTANA <thomas.stauffer@mt.com>
Reported-by: Andrew Davis <afd@ti.com>
Change-Id: Ifb3a919dc0bf8c05c38895352de5fe94b4f4387e
Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>

show more ...


/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch32/bl1_entrypoint.S
/rk3399_ARM-atf/bl1/aarch64/bl1_entrypoint.S
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/aarch32/bl2_el3_entrypoint.S
/rk3399_ARM-atf/bl2/aarch32/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/aarch64/bl2_el3_entrypoint.S
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2/bl2_el3.ld.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl32/sp_min/sp_min_main.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/tf_log.c
/rk3399_ARM-atf/contrib/libeventlog
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/rmm-el3-comms-spec.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/arm/arm-build-options.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-build-options.rst
/rk3399_ARM-atf/docs/plat/s32g274a.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/resources/diagrams/FIP_in_a_GPT_image.png
/rk3399_ARM-atf/drivers/arm/cci/cci.c
/rk3399_ARM-atf/drivers/arm/css/scmi/scmi_base_proto.c
/rk3399_ARM-atf/drivers/arm/css/scmi/scmi_private.h
/rk3399_ARM-atf/drivers/arm/dcc/dcc_console.c
/rk3399_ARM-atf/drivers/arm/gic/v3/arm_gicv3_common.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gic-x00.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_base.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_helpers.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/nxp/scmi/vendor/scmi_imx9.c
/rk3399_ARM-atf/drivers/nxp/scmi/vendor/scmi_imx9.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/mssr/mssr.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/mssr/mssr.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/ptp/ptp.c
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/ptp/ptp.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/pwrc/call_sram.S
/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/renesas/rcar_gen4/scif/scif.h
/rk3399_ARM-atf/drivers/renesas/rcar_gen4/scif/scif_helpers.S
/rk3399_ARM-atf/drivers/st/clk/clk-stm32mp2.c
/rk3399_ARM-atf/drivers/st/uart/aarch32/stm32_console.S
/rk3399_ARM-atf/drivers/st/uart/aarch64/stm32_console.S
/rk3399_ARM-atf/drivers/ti/ipc/mailbox.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/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/bl1/bl1.h
/rk3399_ARM-atf/include/bl2/bl2.h
/rk3399_ARM-atf/include/bl31/bl31.h
/rk3399_ARM-atf/include/drivers/arm/css/scmi.h
/rk3399_ARM-atf/include/drivers/arm/gicv3.h
/rk3399_ARM-atf/include/drivers/auth/crypto_mod.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/canyon.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/cpus/errata.h
context_el1.h
/rk3399_ARM-atf/include/lib/extensions/mpam.h
/rk3399_ARM-atf/include/lib/extensions/pauth.h
/rk3399_ARM-atf/include/lib/libc/cdefs.h
/rk3399_ARM-atf/include/lib/psci/psci_lib.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/plat/nuvoton/common/npcm845x_arm_def.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/ffa_svc.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/canyon.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_alto.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/debugfs/debugfs_smc.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/mpam/mpam.c
/rk3399_ARM-atf/lib/extensions/pauth/pauth.c
/rk3399_ARM-atf/lib/extensions/pmuv3/aarch64/pmuv3.c
/rk3399_ARM-atf/lib/optee/optee_utils.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_setup.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/lib/transfer_list/transfer_list.mk
/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/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/tbbr/tbbr_tools.mk
/rk3399_ARM-atf/make_helpers/utilities.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/plat/allwinner/common/allwinner-common.mk
/rk3399_ARM-atf/plat/amd/common/plat_xfer_list.c
/rk3399_ARM-atf/plat/amd/versal2/aarch64/helpers.S
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/amd/versal2/platform.mk
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_client.c
/rk3399_ARM-atf/plat/amd/versal2/spmc_sel1_optee_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_stmm_bl2_sp_list.dts
/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.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_drtm_measurement.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_err.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv3.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/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/neoverse_rd/common/nrd_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_common.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_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_dyn_cfg_helpers.c
/rk3399_ARM-atf/plat/arm/common/arm_err.c
/rk3399_ARM-atf/plat/arm/common/arm_nor_psci_mem_protect.c
/rk3399_ARM-atf/plat/arm/common/arm_transfer_list.c
/rk3399_ARM-atf/plat/arm/common/plat_rmm_mem_carveout.c
/rk3399_ARM-atf/plat/arm/common/tsp/arm_tsp_setup.c
/rk3399_ARM-atf/plat/common/plat_gicv3.c
/rk3399_ARM-atf/plat/common/plat_spmd_manifest.c
/rk3399_ARM-atf/plat/imx/common/imx9_sm_sema.c
/rk3399_ARM-atf/plat/imx/common/imx_sip_svc.c
/rk3399_ARM-atf/plat/imx/common/include/ele_api.h
/rk3399_ARM-atf/plat/imx/common/include/plat_imx8.h
/rk3399_ARM-atf/plat/imx/common/plat_imx8_gic.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx9/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/imx/imx9/common/ele_api.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_psci_common.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_sys_sleep.c
/rk3399_ARM-atf/plat/imx/imx9/common/include/imx9_psci_common.h
/rk3399_ARM-atf/plat/imx/imx9/common/include/imx9_sys_sleep.h
/rk3399_ARM-atf/plat/imx/imx9/common/include/imx_scmi_client.h
/rk3399_ARM-atf/plat/imx/imx9/common/plat_topology.c
/rk3399_ARM-atf/plat/imx/imx9/common/scmi/scmi_client.c
/rk3399_ARM-atf/plat/imx/imx9/imx94/imx94_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx9/imx94/imx94_psci.c
/rk3399_ARM-atf/plat/imx/imx9/imx94/include/imx94_scmi_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx94/include/platform_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx94/platform.mk
/rk3399_ARM-atf/plat/imx/imx9/imx95/imx95_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx9/imx95/imx95_psci.c
/rk3399_ARM-atf/plat/imx/imx9/imx95/include/imx95_scmi_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx95/include/platform_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx95/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_iossm_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_iossm_mailbox.c
/rk3399_ARM-atf/plat/intel/soc/common/sip/socfpga_sip_fcs.c
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mt8189/mtcmos.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mt8196/mtcmos.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mtcmos_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_bus26m.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_syspll.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_vcore.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_hwreq.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_suspend.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/plat_conf.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/sleep_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/inc/thermal_lvts.h
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/mt8189/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/mt8189/soc_temp_lvts.c
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/mt8189/soc_temp_lvts.h
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/src/thermal_lvts.c
/rk3399_ARM-atf/plat/mediatek/include/drivers/thermal/mt8189/soc_temp_lvts_interface.h
/rk3399_ARM-atf/plat/mediatek/mt8189/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8189/platform.mk
/rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_bl2_setup.c
/rk3399_ARM-atf/plat/qemu/common/qemu_common.c
/rk3399_ARM-atf/plat/qemu/qemu/qemu_measured_boot.c
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen4/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/aarch64/platform_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/bl31_plat_setup.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat.ld.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat_helpers.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/plat_macros.S
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/platform_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_def.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_private.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/include/rcar_version.h
/rk3399_ARM-atf/plat/renesas/rcar_gen4/plat_pm.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/plat_topology.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk
/rk3399_ARM-atf/plat/renesas/rcar_gen4/rcar_common.c
/rk3399_ARM-atf/plat/renesas/rcar_gen4/rcar_stack_protector.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/ti/common/plat_common.mk
/rk3399_ARM-atf/plat/ti/k3low/board/am62lx/include/board_def.h
/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/include/pm_defs.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/versal/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal/include/versal_def.h
/rk3399_ARM-atf/plat/xilinx/versal/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal/pm_service/pm_client.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/aarch64/versal_net_helpers.S
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/include/plat_private.h
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_topology.c
/rk3399_ARM-atf/plat/xilinx/versal_net/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal_net/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/include/plat_pm_common.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/platform.mk
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_clock.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_clock.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.h
/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/poetry.lock
/rk3399_ARM-atf/services/spd/opteed/opteed.mk
/rk3399_ARM-atf/services/std_svc/drtm/drtm_main.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_remediation.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd.mk
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_mem.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_private.h
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_main.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/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/services/std_svc/trng/trng_entropy_pool.c
/rk3399_ARM-atf/tools/cert_create/src/tbbr/tbb_ext.c
/rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile
/rk3399_ARM-atf/tools/tlc/poetry.lock
c4babc4f13-Aug-2025 Noah Woo <namyoon@google.com>

refactor(lib): add cache unit alignment attribute to cpu_context_t

This patch ensures that the dirty cache lines associated with a single
CPU's context are contained within that core, preventing the

refactor(lib): add cache unit alignment attribute to cpu_context_t

This patch ensures that the dirty cache lines associated with a single
CPU's context are contained within that core, preventing them from
being shared with other CPUs. The alignment applied to cpu_context_t
is consistent with the existing alignment for cpu_data_t.

Change-Id: I4973cd46fe85724f61cd83e4d26ec366671061e2
Signed-off-by: Noah Woo <namyoon@google.com>

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/tf_log.c
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/rmm-el3-comms-spec.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/arm/arm-build-options.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-build-options.rst
/rk3399_ARM-atf/docs/plat/s32g274a.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/resources/diagrams/FIP_in_a_GPT_image.png
/rk3399_ARM-atf/drivers/arm/cci/cci.c
/rk3399_ARM-atf/drivers/arm/css/scmi/scmi_base_proto.c
/rk3399_ARM-atf/drivers/arm/css/scmi/scmi_private.h
/rk3399_ARM-atf/drivers/arm/dcc/dcc_console.c
/rk3399_ARM-atf/drivers/arm/gic/v3/arm_gicv3_common.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gic-x00.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_base.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_helpers.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/drivers/nxp/scmi/vendor/scmi_imx9.c
/rk3399_ARM-atf/drivers/nxp/scmi/vendor/scmi_imx9.h
/rk3399_ARM-atf/drivers/st/clk/clk-stm32mp2.c
/rk3399_ARM-atf/drivers/ti/ipc/mailbox.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/drivers/arm/css/scmi.h
/rk3399_ARM-atf/include/drivers/arm/gicv3.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/canyon.h
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/cpus/errata.h
aarch64/context.h
/rk3399_ARM-atf/include/lib/extensions/mpam.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/ffa_svc.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/canyon.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_alto.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/mpam/mpam.c
/rk3399_ARM-atf/lib/extensions/pmuv3/aarch64/pmuv3.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_setup.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/make_helpers/tbbr/tbbr_tools.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/plat/amd/versal2/aarch64/helpers.S
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/amd/versal2/platform.mk
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_client.c
/rk3399_ARM-atf/plat/amd/versal2/spmc_sel1_optee_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_err.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd_bl31_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_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_err.c
/rk3399_ARM-atf/plat/arm/common/arm_nor_psci_mem_protect.c
/rk3399_ARM-atf/plat/arm/common/plat_rmm_mem_carveout.c
/rk3399_ARM-atf/plat/common/plat_gicv3.c
/rk3399_ARM-atf/plat/imx/common/imx9_sm_sema.c
/rk3399_ARM-atf/plat/imx/common/imx_sip_svc.c
/rk3399_ARM-atf/plat/imx/common/include/ele_api.h
/rk3399_ARM-atf/plat/imx/common/include/plat_imx8.h
/rk3399_ARM-atf/plat/imx/common/plat_imx8_gic.c
/rk3399_ARM-atf/plat/imx/imx9/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/imx/imx9/common/ele_api.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_psci_common.c
/rk3399_ARM-atf/plat/imx/imx9/common/imx9_sys_sleep.c
/rk3399_ARM-atf/plat/imx/imx9/common/include/imx9_psci_common.h
/rk3399_ARM-atf/plat/imx/imx9/common/include/imx9_sys_sleep.h
/rk3399_ARM-atf/plat/imx/imx9/common/include/imx_scmi_client.h
/rk3399_ARM-atf/plat/imx/imx9/common/plat_topology.c
/rk3399_ARM-atf/plat/imx/imx9/common/scmi/scmi_client.c
/rk3399_ARM-atf/plat/imx/imx9/imx94/imx94_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx9/imx94/imx94_psci.c
/rk3399_ARM-atf/plat/imx/imx9/imx94/include/imx94_scmi_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx94/include/platform_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx94/platform.mk
/rk3399_ARM-atf/plat/imx/imx9/imx95/imx95_bl31_setup.c
/rk3399_ARM-atf/plat/imx/imx9/imx95/imx95_psci.c
/rk3399_ARM-atf/plat/imx/imx9/imx95/include/imx95_scmi_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx95/include/platform_def.h
/rk3399_ARM-atf/plat/imx/imx9/imx95/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_iossm_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_iossm_mailbox.c
/rk3399_ARM-atf/plat/intel/soc/common/sip/socfpga_sip_fcs.c
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mt8189/mtcmos.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mt8196/mtcmos.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mtcmos_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_bus26m.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_syspll.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_vcore.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_hwreq.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_suspend.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/plat_conf.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/sleep_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/inc/thermal_lvts.h
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/mt8189/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/mt8189/soc_temp_lvts.c
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/mt8189/soc_temp_lvts.h
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/thermal/src/thermal_lvts.c
/rk3399_ARM-atf/plat/mediatek/include/drivers/thermal/mt8189/soc_temp_lvts_interface.h
/rk3399_ARM-atf/plat/mediatek/mt8189/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8189/platform.mk
/rk3399_ARM-atf/plat/ti/k3low/board/am62lx/include/board_def.h
/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/include/pm_defs.h
/rk3399_ARM-atf/plat/xilinx/common/pm_service/pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/versal/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal/include/versal_def.h
/rk3399_ARM-atf/plat/xilinx/versal/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal/pm_service/pm_client.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/aarch64/versal_net_helpers.S
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/include/plat_private.h
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_topology.c
/rk3399_ARM-atf/plat/xilinx/versal_net/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal_net/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/include/plat_pm_common.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/platform.mk
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_clock.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_clock.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.h
/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/drtm/drtm_main.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_remediation.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd.mk
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_mem.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_private.h
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/services/std_svc/trng/trng_entropy_pool.c
/rk3399_ARM-atf/tools/cert_create/src/tbbr/tbb_ext.c
/rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile
022fcb4814-Aug-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(el3-runtime): move the initialisation of the cpu_ops_ptr to C

The difference between AArch32 and AArch64 is insignificant and the
usage is identical. The only thing that required the use of

refactor(el3-runtime): move the initialisation of the cpu_ops_ptr to C

The difference between AArch32 and AArch64 is insignificant and the
usage is identical. The only thing that required the use of assembly was
that the get_cpu_ops_ptr() function was not PCS compliant and needed a
wrapper to do that instead. That has now been fixed so move this to C so
it's more readable and more optimise-able by the compiler.

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

show more ...


/rk3399_ARM-atf/.github/dependabot.yml
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/common/desc_image_load.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/components/fconf/tb_fw_bindings.rst
/rk3399_ARM-atf/docs/components/secure-partition-manager-mm.rst
/rk3399_ARM-atf/docs/components/ven-el3-service.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/plat/amd-versal2.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-specific-configs.rst
/rk3399_ARM-atf/docs/plat/xilinx-versal.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/security_advisories/index.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-10.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-12.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-13.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-6.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-7.rst
/rk3399_ARM-atf/docs/security_advisories/security-advisory-tfv-9.rst
/rk3399_ARM-atf/docs/tools/cot-dt2c.rst
/rk3399_ARM-atf/drivers/arm/dcc/dcc_console.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_base.c
/rk3399_ARM-atf/drivers/cadence/emmc/cdns_sdmmc.c
/rk3399_ARM-atf/drivers/console/multi_console.c
/rk3399_ARM-atf/drivers/st/crypto/stm32_hash.c
/rk3399_ARM-atf/drivers/st/crypto/stm32_rng.c
/rk3399_ARM-atf/drivers/st/mce/stm32_mce.c
/rk3399_ARM-atf/drivers/st/rif/stm32mp2_risaf.c
/rk3399_ARM-atf/drivers/tpm/tpm2_fifo.c
/rk3399_ARM-atf/fdts/cca_cot_descriptors.dts
/rk3399_ARM-atf/fdts/dualroot_cot_descriptors.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2.dtsi
/rk3399_ARM-atf/fdts/fvp-base-gicv23-interrupts.dtsi
/rk3399_ARM-atf/fdts/fvp-base-gicv3.dtsi
/rk3399_ARM-atf/fdts/fvp-base-gicv5-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv5.dtsi
/rk3399_ARM-atf/fdts/fvp-base-psci-common.dtsi
/rk3399_ARM-atf/fdts/stm32mp13-fw-config-mem-encrypt.dtsi
/rk3399_ARM-atf/fdts/stm32mp135f-dk-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp25-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp251.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-dk-ca35tdcid-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-dk.dts
/rk3399_ARM-atf/fdts/stm32mp257f-ev1-ca35tdcid-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-ev1.dts
/rk3399_ARM-atf/fdts/stmm_common.dtsi
/rk3399_ARM-atf/fdts/stmm_dev_region.dtsi
/rk3399_ARM-atf/fdts/stmm_mem_region.dtsi
/rk3399_ARM-atf/fdts/stmm_template.dts
/rk3399_ARM-atf/fdts/tbbr_cot_descriptors.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/bl31/bl31.h
/rk3399_ARM-atf/include/common/feat_detect.h
/rk3399_ARM-atf/include/drivers/cadence/cdns_sdmmc.h
/rk3399_ARM-atf/include/drivers/console.h
/rk3399_ARM-atf/include/drivers/st/stm32_mce.h
/rk3399_ARM-atf/include/drivers/st/stm32_rng.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_risaf.h
/rk3399_ARM-atf/include/dt-bindings/interrupt-controller/arm-gic.h
/rk3399_ARM-atf/include/dt-bindings/interrupt-controller/arm-gicv5.h
/rk3399_ARM-atf/include/dt-bindings/interrupt-controller/irq.h
/rk3399_ARM-atf/include/dt-bindings/soc/rif.h
/rk3399_ARM-atf/include/dt-bindings/soc/stm32mp13-mce.h
/rk3399_ARM-atf/include/dt-bindings/soc/stm32mp25-rif.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x2.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x4.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
cpu_data.h
/rk3399_ARM-atf/include/lib/extensions/spe.h
/rk3399_ARM-atf/include/lib/extensions/trbe.h
/rk3399_ARM-atf/include/lib/hob/hob_guid.h
/rk3399_ARM-atf/include/lib/psci/psci.h
/rk3399_ARM-atf/include/lib/psci/psci_lib.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_v2.h
/rk3399_ARM-atf/include/plat/arm/common/arm_spm_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/spm_mm_svc.h
/rk3399_ARM-atf/include/services/spmd_svc.h
/rk3399_ARM-atf/include/services/ven_el3_svc.h
/rk3399_ARM-atf/lib/aarch64/armclang_printf.S
/rk3399_ARM-atf/lib/cpus/aarch32/cpu_helpers.S
/rk3399_ARM-atf/lib/cpus/aarch64/aem_generic.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a35.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a510.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a53.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a57.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a72.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a73.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a77.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a78.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a78c.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_alto.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_gelas.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/cpu_helpers.S
/rk3399_ARM-atf/lib/cpus/aarch64/generic.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_v1.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/qemu_max.S
/rk3399_ARM-atf/lib/cpus/aarch64/travis.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/el3_runtime/cpu_data_array.c
/rk3399_ARM-atf/lib/extensions/brbe/brbe.c
/rk3399_ARM-atf/lib/extensions/spe/spe.c
/rk3399_ARM-atf/lib/extensions/trbe/trbe.c
/rk3399_ARM-atf/lib/fconf/fconf.c
/rk3399_ARM-atf/lib/psci/aarch32/psci_helpers.S
/rk3399_ARM-atf/lib/psci/aarch64/psci_helpers.S
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_main.c
/rk3399_ARM-atf/lib/psci/psci_mem_protect.c
/rk3399_ARM-atf/lib/psci/psci_private.h
/rk3399_ARM-atf/lib/psci/psci_setup.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_context.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/build_macros.mk
/rk3399_ARM-atf/make_helpers/cflags.mk
/rk3399_ARM-atf/make_helpers/constraints.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/allwinner/common/sunxi_native_pm.c
/rk3399_ARM-atf/plat/allwinner/common/sunxi_scpi_pm.c
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/include/platform_def.h
/rk3399_ARM-atf/plat/amd/versal2/include/scmi.h
/rk3399_ARM-atf/plat/amd/versal2/platform.mk
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_client.c
/rk3399_ARM-atf/plat/amd/versal2/scmi.c
/rk3399_ARM-atf/plat/amd/versal2/sip_svc_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_cot_desc.dtsi
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_stmm_rust_spmc_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_stmm_spmc_at_el3_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_tsp_sp_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv3.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c
/rk3399_ARM-atf/plat/arm/board/fvp/gicv5_config.yaml
/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/juno/fdts/juno_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/juno/fdts/juno_stmm_spmc_at_el3_manifest.dts
/rk3399_ARM-atf/plat/arm/board/juno/include/platform_def.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_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_common.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_common_measured_boot.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_el3_spmc.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_security.c
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/n1sdp/n1sdp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/include/nrd2/nrd_plat_arm_def2.h
/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/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_transfer_list.c
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min_setup.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/common/plat_psci_common.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/intel/soc/agilex/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/agilex/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl2_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_iossm_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_power_manager.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_ddr.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_iossm_mailbox.c
/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/include/socfpga_private.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_reset_manager.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_sip_svc.h
/rk3399_ARM-atf/plat/intel/soc/common/lib/utils/alignment_utils.c
/rk3399_ARM-atf/plat/intel/soc/common/lib/utils/alignment_utils.h
/rk3399_ARM-atf/plat/intel/soc/common/sip/socfpga_sip_fcs.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_reset_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_psci.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_sip_svc.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_sip_svc_v2.c
/rk3399_ARM-atf/plat/intel/soc/n5x/platform.mk
/rk3399_ARM-atf/plat/intel/soc/stratix10/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/stratix10/platform.mk
/rk3399_ARM-atf/plat/marvell/armada/a8k/common/plat_pm.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv3_2/mt_cpu_pm.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv3_2/mt_cpu_pm_cpc.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/dcm/mtk_dcm_utils.c
/rk3399_ARM-atf/plat/mediatek/drivers/dcm/mtk_dcm_utils.h
/rk3399_ARM-atf/plat/mediatek/drivers/dcm/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/disp/mt8189/mtk_disp_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/disp/mtk_disp_priv.h
/rk3399_ARM-atf/plat/mediatek/drivers/disp/mtk_disp_smc.c
/rk3399_ARM-atf/plat/mediatek/drivers/disp/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/mcusys/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mt8189/mtcmos.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mt8196/mtcmos.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mtcmos.c
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mtcmos_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/ptp3/mt8188/ptp3_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/ptp3/mt8189/ptp3_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/ptp3/mt8195/ptp3_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/ptp3/ptp3_plat_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/ptp3/ptp3_plat_v1.h
/rk3399_ARM-atf/plat/mediatek/drivers/ptp3/ptp3_plat_v2.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_api.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_api.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_bus26m.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_internal.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_syspll.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_rc_vcore.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/constraints/mt_spm_trace.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_plat_spm_setting.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_plat_spm_setting.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_cond.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_cond.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_conservation.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_conservation.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_doe_resource_ctrl.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_hwreq.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_hwreq.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_idle.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_idle.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_internal.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_internal.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_pmic_lp.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_pmic_lp.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_reg.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_stats.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_suspend.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_suspend.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_vcorefs.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_vcorefs.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_vcorefs_ext.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm_vcorefs_reg.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_vcore_dvfsrc_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_vcore_dvfsrc_plat_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/pcm_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/plat_conf.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/pmic_gs/mt_spm_pmic_gs_dpidle.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/pmic_gs/mt_spm_pmic_gs_sodi3.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/pmic_gs/mt_spm_pmic_gs_suspend.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/sleep_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/constraints/mt_spm_rc_api.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/constraints/mt_spm_rc_api.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/constraints/mt_spm_rc_internal.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/constraints/mt_spm_rc_vcore.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_plat_spm_setting.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_plat_spm_setting.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_hwreq.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_hwreq.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_internal.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/pcm_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_common_v1.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_dispatcher.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_dispatcher.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_rc_api_common.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_rc_api_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_stats.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/mt8189/ufs_ctrl_soc.c
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/ufs_ctrl.c
/rk3399_ARM-atf/plat/mediatek/include/drivers/mcusys/v1/mcucfg.h
/rk3399_ARM-atf/plat/mediatek/include/mtk_sip_def.h
/rk3399_ARM-atf/plat/mediatek/lib/pm/armv9_0/pwr_ctrl.c
/rk3399_ARM-atf/plat/mediatek/mt8189/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8189/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8189/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8195/platform.mk
/rk3399_ARM-atf/plat/nuvoton/npcm845x/npcm845x_bl31_setup.c
/rk3399_ARM-atf/plat/qti/common/src/qti_pm.c
/rk3399_ARM-atf/plat/qti/qcs615/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/qti/sc7180/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/qti/sc7280/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/rockchip/common/include/plat_private.h
/rk3399_ARM-atf/plat/rockchip/common/plat_pm.c
/rk3399_ARM-atf/plat/rockchip/px30/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3328/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3588/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/socionext/uniphier/uniphier_console_setup.c
/rk3399_ARM-atf/plat/st/common/common.mk
/rk3399_ARM-atf/plat/st/common/include/stm32mp_mbedtls_config.h
/rk3399_ARM-atf/plat/st/stm32mp1/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp1/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/include/stm32mp2_private.h
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_private.c
/rk3399_ARM-atf/plat/xilinx/common/include/pm_node.h
/rk3399_ARM-atf/plat/xilinx/common/plat_startup.c
/rk3399_ARM-atf/plat/xilinx/common/versal.c
/rk3399_ARM-atf/plat/xilinx/versal/bl31_versal_setup.c
/rk3399_ARM-atf/plat/xilinx/versal/include/plat_private.h
/rk3399_ARM-atf/plat/xilinx/versal/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal/plat_topology.c
/rk3399_ARM-atf/plat/xilinx/versal/plat_versal.c
/rk3399_ARM-atf/plat/xilinx/versal/versal_gicv3.c
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/include/plat_private.h
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/versal_net/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal_net/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/versal_net/tsp/tsp-versal_net.mk
/rk3399_ARM-atf/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/el3/ven_el3_svc.c
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/rk3399_ARM-atf/services/spd/opteed/opteed_pm.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd_pm.c
/rk3399_ARM-atf/services/spd/trusty/trusty.c
/rk3399_ARM-atf/services/spd/tspd/tspd_pm.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_pm.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_setup.c
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm_main.c
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm_private.h
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm_xlat.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
f05b489424-Apr-2024 Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com>

fix(el3-runtime): typecast operands to match data type

This corrects the MISRA violation C2012-10.3:
The value of an expression shall not be assigned to an object with a
narrower essential type or o

fix(el3-runtime): typecast operands to match data type

This corrects the MISRA violation C2012-10.3:
The value of an expression shall not be assigned to an object with a
narrower essential type or of a different essential type category.
Replaced usage of 'unsigned int' with 'size_t' to ensure type
consistency and prevent assignment to a narrower or different
essential type.

Change-Id: I79501e216a04753ebd005d64375357b9332440d9
Signed-off-by: Nithin G <nithing@amd.com>
Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com>

show more ...

6eafc06004-Mar-2025 Boyan Karatotev <boyan.karatotev@arm.com>

refactor(cm): gather per-world context management to the same place

The per-world calls are disparate - they get called in different places,
are guarded in different ways, and the code is apart.

Si

refactor(cm): gather per-world context management to the same place

The per-world calls are disparate - they get called in different places,
are guarded in different ways, and the code is apart.

Since they just need to be called once at boot, add a function that we
can call from BL31 and be done with it.

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

show more ...


/rk3399_ARM-atf/.commitlintrc.js
/rk3399_ARM-atf/.gitmodules
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/common/tf_log.c
/rk3399_ARM-atf/contrib/libtl
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/components/ven-el3-service.rst
/rk3399_ARM-atf/docs/conf.py
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/firmware-design.rst
/rk3399_ARM-atf/docs/design/interrupt-framework-design.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/docs-build.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/license.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/fvp/fvp-build-options.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-specific-configs.rst
/rk3399_ARM-atf/docs/plat/arm/juno/index.rst
/rk3399_ARM-atf/docs/plat/st/stm32mp2.rst
/rk3399_ARM-atf/docs/plat/xilinx-versal-net.rst
/rk3399_ARM-atf/docs/plat/xilinx-versal.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/process/commit-style.rst
/rk3399_ARM-atf/docs/sbom.cdx.json
/rk3399_ARM-atf/docs/tools/memory-layout-tool.rst
/rk3399_ARM-atf/drivers/arm/dsu/dsu.c
/rk3399_ARM-atf/drivers/arm/gic/gic.mk
/rk3399_ARM-atf/drivers/arm/gic/v2/gicdv2_helpers.c
/rk3399_ARM-atf/drivers/arm/gicv5/gicv5_cpuif.c
/rk3399_ARM-atf/drivers/arm/gicv5/gicv5_iri.c
/rk3399_ARM-atf/drivers/arm/gicv5/gicv5_main.c
/rk3399_ARM-atf/drivers/auth/auth.mk
/rk3399_ARM-atf/drivers/auth/auth_mod.c
/rk3399_ARM-atf/drivers/auth/auth_util.c
/rk3399_ARM-atf/drivers/auth/crypto_mod.c
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_crypto.c
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_psa_crypto.c
/rk3399_ARM-atf/drivers/console/multi_console.c
/rk3399_ARM-atf/drivers/imx/usdhc/imx_usdhc.c
/rk3399_ARM-atf/drivers/imx/usdhc/imx_usdhc.h
/rk3399_ARM-atf/drivers/marvell/mochi/cp110_setup.c
/rk3399_ARM-atf/drivers/marvell/trng.c
/rk3399_ARM-atf/drivers/mmc/mmc.c
/rk3399_ARM-atf/drivers/nxp/crypto/caam/src/auth/nxp_crypto.c
/rk3399_ARM-atf/drivers/nxp/crypto/caam/src/hw_key_blob.c
/rk3399_ARM-atf/drivers/nxp/crypto/caam/src/rng.c
/rk3399_ARM-atf/drivers/renesas/common/scif/scif.S
/rk3399_ARM-atf/drivers/st/bsec/bsec3.c
/rk3399_ARM-atf/drivers/st/clk/clk-stm32mp2.c
/rk3399_ARM-atf/drivers/st/crypto/stm32_saes.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp2_ddr_helpers.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp2_ram.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp_ddr.c
/rk3399_ARM-atf/drivers/st/gpio/stm32_gpio.c
/rk3399_ARM-atf/drivers/st/iwdg/stm32_iwdg.c
/rk3399_ARM-atf/drivers/st/mmc/stm32_sdmmc2.c
/rk3399_ARM-atf/drivers/st/regulator/regulator_fixed.c
/rk3399_ARM-atf/fdts/fvp-base-psci-common.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/bl31/interrupt_mgmt.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/drivers/arm/dsu.h
/rk3399_ARM-atf/include/drivers/arm/gicv5.h
/rk3399_ARM-atf/include/drivers/auth/auth_util.h
/rk3399_ARM-atf/include/drivers/auth/crypto_mod.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_psa_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/mbedtls_psa_crypto.h
/rk3399_ARM-atf/include/drivers/cadence/cdns_sdmmc.h
/rk3399_ARM-atf/include/drivers/marvell/trng.h
/rk3399_ARM-atf/include/drivers/measured_boot/event_log/event_handoff.h
/rk3399_ARM-atf/include/drivers/measured_boot/event_log/event_log.h
/rk3399_ARM-atf/include/drivers/mmc.h
/rk3399_ARM-atf/include/drivers/nxp/crypto/caam/sec_hw_specific.h
/rk3399_ARM-atf/include/drivers/nxp/trdc/imx_trdc.h
/rk3399_ARM-atf/include/drivers/st/bsec3_reg.h
/rk3399_ARM-atf/include/drivers/st/stm32mp21_pwr.h
/rk3399_ARM-atf/include/drivers/st/stm32mp21_rcc.h
/rk3399_ARM-atf/include/drivers/st/stm32mp25_rcc.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_ddr_helpers.h
/rk3399_ARM-atf/include/drivers/st/stm32mp_ddr.h
/rk3399_ARM-atf/include/dt-bindings/clock/st,stm32mp21-rcc.h
/rk3399_ARM-atf/include/dt-bindings/clock/stm32mp21-clksrc.h
/rk3399_ARM-atf/include/dt-bindings/reset/st,stm32mp21-rcc.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a710.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/lib/cpus/aarch64/dsu_def.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/dsu_macros.S
/rk3399_ARM-atf/include/lib/cpus/errata.h
context_mgmt.h
/rk3399_ARM-atf/include/lib/libc/stdbool.h
/rk3399_ARM-atf/include/lib/libc/string_private.h
/rk3399_ARM-atf/include/lib/mmio_poll.h
/rk3399_ARM-atf/include/lib/psci/psci_lib.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_defs.h
/rk3399_ARM-atf/include/plat/arm/common/plat_acs_smc_handler.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/bl31_lfa.h
/rk3399_ARM-atf/include/services/drtm_svc.h
/rk3399_ARM-atf/include/services/lfa_component_desc.h
/rk3399_ARM-atf/include/services/lfa_holding_pen.h
/rk3399_ARM-atf/include/services/lfa_svc.h
/rk3399_ARM-atf/include/services/rmmd_rmm_lfa.h
/rk3399_ARM-atf/include/services/ven_el3_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a520.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a720.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a725.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x4.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x925.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n1.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/cpus/errata_report.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/libc/memcpy.c
/rk3399_ARM-atf/lib/libc/memmove.c
/rk3399_ARM-atf/lib/libc/printf.c
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_main.c
/rk3399_ARM-atf/lib/transfer_list/transfer_list.mk
/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/march.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/common/include/plat_xfer_list.h
/rk3399_ARM-atf/plat/amd/common/plat_fdt.c
/rk3399_ARM-atf/plat/amd/common/plat_xfer_list.c
/rk3399_ARM-atf/plat/amd/versal2/aarch64/common.c
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/include/def.h
/rk3399_ARM-atf/plat/amd/versal2/plat_psci.c
/rk3399_ARM-atf/plat/amd/versal2/plat_psci_pm.c
/rk3399_ARM-atf/plat/amd/versal2/platform.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/arm/board/fvp/fconf/fconf_gicv3_config_getter.c
/rk3399_ARM-atf/plat/arm/board/fvp/fconf/fconf_hw_config_getter.c
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_cpu_pwr.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv5.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_lfa.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/fvp_lfa_components.h
/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/juno/cert_create_tbbr.mk
/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_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/plat_acs_smc_handler.c
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/brcm/board/common/board_common.mk
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/common/plat_gicv5.c
/rk3399_ARM-atf/plat/hisilicon/hikey/platform.mk
/rk3399_ARM-atf/plat/hisilicon/hikey960/platform.mk
/rk3399_ARM-atf/plat/imx/imx7/common/imx7.mk
/rk3399_ARM-atf/plat/imx/imx8m/imx8mm/platform.mk
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/gpc.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/platform.mk
/rk3399_ARM-atf/plat/imx/imx8ulp/imx8ulp_psci.c
/rk3399_ARM-atf/plat/imx/imx93/trdc_config.h
/rk3399_ARM-atf/plat/intel/soc/agilex/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_ddr.c
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_fcs.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_private.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_sip_svc.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/intel/soc/common/socfpga_sip_svc.c
/rk3399_ARM-atf/plat/marvell/armada/a8k/common/a8k_common.mk
/rk3399_ARM-atf/plat/marvell/armada/a8k/common/ble/ble.mk
/rk3399_ARM-atf/plat/marvell/armada/common/mrvl_sip_svc.c
/rk3399_ARM-atf/plat/mediatek/build_helpers/options.mk
/rk3399_ARM-atf/plat/mediatek/common/mtk_bl31_lib.c
/rk3399_ARM-atf/plat/mediatek/common/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_security_ctrl_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv3_2/mt_cpu_pm.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_qos/mt8196/mtk_cpuqos.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_qos/mt8196/mtk_cpuqos_stub.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_qos/mt8196/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_qos/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/dfd/mt8189/plat_dfd.c
/rk3399_ARM-atf/plat/mediatek/drivers/dfd/mt8189/plat_dfd.h
/rk3399_ARM-atf/plat/mediatek/drivers/emi/emi_ctrl.c
/rk3399_ARM-atf/plat/mediatek/drivers/emi/emi_stub.c
/rk3399_ARM-atf/plat/mediatek/drivers/emi/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/iommu/mt8189/mtk_iommu_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/iommu/mt8189/mtk_iommu_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/mminfra/mminfra_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/mminfra/mt8196/mminfra.c
/rk3399_ARM-atf/plat/mediatek/drivers/mminfra/mt8196/mminfra.h
/rk3399_ARM-atf/plat/mediatek/drivers/mminfra/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/mt8196/mtcmos.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt6359p/mt6359p_psc.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt6359p/registers.h
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt6359p/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt8189/pmic_lowpower_init.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt8189/pmic_shutdown_cfg.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt8189/pmic_swap_api.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/pmic_wrap/mt8189/pmic_wrap_init.h
/rk3399_ARM-atf/plat/mediatek/drivers/pmic_wrap/pmic_wrap_init_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/pmic_wrap/pmic_wrap_init_v3.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic_wrap/pmic_wrap_v3.h
/rk3399_ARM-atf/plat/mediatek/drivers/pmic_wrap/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/slbc/mt8196/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/slbc/mt8196/slbc.c
/rk3399_ARM-atf/plat/mediatek/drivers/slbc/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/smmu_sid/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/smmu_sid/smmu_sid.c
/rk3399_ARM-atf/plat/mediatek/drivers/smmu_sid/smmu_sid_stub.c
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/mt8189/platform_pmif_spmi.c
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/mt8196/ufs_ctrl_soc.c
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/ufs_ctrl.c
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/mt6319_lowpower_reg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/mt6359p_lowpower_reg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/mt6359p_set_lowpower.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/pmic_set_lowpower.h
/rk3399_ARM-atf/plat/mediatek/include/mtk_bl31_interface.h
/rk3399_ARM-atf/plat/mediatek/mt8189/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8189/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8189/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8195/plat_sip_calls.c
/rk3399_ARM-atf/plat/mediatek/mt8196/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8196/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/nxp/common/sip_svc/sip_svc.c
/rk3399_ARM-atf/plat/nxp/common/tbbr/tbbr.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/include/platform_def.h
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_bl2_el3_setup.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_helpers.S
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_io_storage.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/platform.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/s32cc_bl_common.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/s32g2_soc.c
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/aarch64/lx2160a_helpers.S
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/ddr_tbbr.mk
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2160aqds/platform.mk
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2162aqds/cert_create_helper/include/pdef_tbb_cert.h
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2162aqds/cert_create_helper/include/pdef_tbb_ext.h
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2162aqds/cert_create_helper/include/pdef_tbb_key.h
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2162aqds/cert_create_helper/src/pdef_tbb_cert.c
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2162aqds/cert_create_helper/src/pdef_tbb_ext.c
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2162aqds/cert_create_helper/src/pdef_tbb_key.c
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/lx2162aqds/cert_create_tbbr.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_bl2_setup.c
/rk3399_ARM-atf/plat/qemu/common/qemu_bl31_setup.c
/rk3399_ARM-atf/plat/qemu/common/qemu_spm.c
/rk3399_ARM-atf/plat/qemu/qemu/platform.mk
/rk3399_ARM-atf/plat/qti/qcs615/platform.mk
/rk3399_ARM-atf/plat/qti/sc7180/platform.mk
/rk3399_ARM-atf/plat/rpi/rpi3/platform.mk
/rk3399_ARM-atf/plat/socionext/synquacer/platform.mk
/rk3399_ARM-atf/plat/socionext/uniphier/platform.mk
/rk3399_ARM-atf/plat/st/common/common.mk
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/st/common/stm32mp_crypto_lib.c
/rk3399_ARM-atf/plat/st/stm32mp1/cert_create_tbbr.mk
/rk3399_ARM-atf/plat/st/stm32mp1/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1.S
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1.ld.S
/rk3399_ARM-atf/plat/st/stm32mp2/aarch64/stm32mp2.S
/rk3399_ARM-atf/plat/st/stm32mp2/aarch64/stm32mp2.ld.S
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_def.h
/rk3399_ARM-atf/plat/ti/k3/common/k3_psci.c
/rk3399_ARM-atf/plat/xilinx/common/custom_sip_svc.c
/rk3399_ARM-atf/plat/xilinx/common/include/custom_svc.h
/rk3399_ARM-atf/plat/xilinx/common/include/ipi.h
/rk3399_ARM-atf/plat/xilinx/common/include/plat_fdt.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/include/pm_defs.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_node.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_svc_main.h
/rk3399_ARM-atf/plat/xilinx/common/ipi.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/bl31_versal_setup.c
/rk3399_ARM-atf/plat/xilinx/versal/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/platform.mk
/rk3399_ARM-atf/plat/xilinx/zynqmp/sip_svc_setup.c
/rk3399_ARM-atf/pyproject.toml
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/el3/ven_el3_svc.c
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_dma_prot.h
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.c
/rk3399_ARM-atf/services/std_svc/lfa/bl31_lfa.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa.mk
/rk3399_ARM-atf/services/std_svc/lfa/lfa_holding_pen.c
/rk3399_ARM-atf/services/std_svc/lfa/lfa_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_rmm_lfa.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_event.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_intr_mgmt.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_main.c
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm_setup.c
/rk3399_ARM-atf/services/std_svc/std_svc_setup.c
/rk3399_ARM-atf/tools/cert_create/Makefile
/rk3399_ARM-atf/tools/cert_create/src/cca/cot.mk
/rk3399_ARM-atf/tools/cert_create/src/dualroot/cot.mk
/rk3399_ARM-atf/tools/cert_create/src/tbbr/tbbr.mk
/rk3399_ARM-atf/tools/conventional-changelog-tf-a/package.json
/rk3399_ARM-atf/tools/encrypt_fw/Makefile
/rk3399_ARM-atf/tools/fiptool/Makefile
/rk3399_ARM-atf/tools/fiptool/plat_fiptool/arm/board/juno/plat_fiptool.mk
/rk3399_ARM-atf/tools/fiptool/plat_fiptool/arm/board/tc/plat_fiptool.mk
/rk3399_ARM-atf/tools/fiptool/plat_fiptool/nxp/plat_fiptool.mk
/rk3399_ARM-atf/tools/fiptool/plat_fiptool/st/plat_fiptool.mk
/rk3399_ARM-atf/tools/memory/poetry.lock
/rk3399_ARM-atf/tools/memory/pyproject.toml
/rk3399_ARM-atf/tools/memory/src/memory/elfparser.py
/rk3399_ARM-atf/tools/memory/src/memory/image.py
/rk3399_ARM-atf/tools/memory/src/memory/mapparser.py
/rk3399_ARM-atf/tools/memory/src/memory/memmap.py
/rk3399_ARM-atf/tools/memory/src/memory/printer.py
/rk3399_ARM-atf/tools/memory/src/memory/summary.py
/rk3399_ARM-atf/tools/memory/src/memory/templates/summary-flamegraph.html
/rk3399_ARM-atf/tools/sptool/sp_mk_generator.py
d43b2ea618-Mar-2025 Boyan Karatotev <boyan.karatotev@arm.com>

perf(bl31): convert cpu_data fetching to C

The assembly routines are opaque to the compiler and it can't inline
them. There is also no requirement for them to be called without a
stack - each of the

perf(bl31): convert cpu_data fetching to C

The assembly routines are opaque to the compiler and it can't inline
them. There is also no requirement for them to be called without a
stack - each of their calls has a stack available. So convert them to C
so that the compiler can do its inlining magic.

On AArch32 we need to be able to call _cpu_data from the entrypoint so
it has to stay as a slight exception.

We can also straighten out the type of the cpu_ops_ptr member so we
don't have to cast it everywhere.

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

show more ...


/rk3399_ARM-atf/.clang-format
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl2u/aarch64/bl2u_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/ea_delegate.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/bl31_traps.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/tsp_common.c
/rk3399_ARM-atf/bl32/tsp/tsp_interrupt.c
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/backtrace/backtrace.c
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/about/lts.rst
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/about/release-information.rst
/rk3399_ARM-atf/docs/components/ffa-manifest-binding.rst
/rk3399_ARM-atf/docs/components/rmm-el3-comms-spec.rst
/rk3399_ARM-atf/docs/design_documents/measured_boot.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-support.rst
/rk3399_ARM-atf/docs/plat/arm/tc/index.rst
/rk3399_ARM-atf/docs/plat/index.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/arm/css/scp/css_pm_scmi.c
/rk3399_ARM-atf/drivers/arm/css/scp/css_pm_scpi.c
/rk3399_ARM-atf/drivers/arm/gic/gic.mk
/rk3399_ARM-atf/drivers/arm/gic/v2/gicv2_base.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_base.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_handoff.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_print.c
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_early_clks.c
/rk3399_ARM-atf/drivers/partition/partition.c
/rk3399_ARM-atf/fdts/stm32mp151a-prtt1a.dts
/rk3399_ARM-atf/fdts/stm32mp153c-lxa-fairytux2-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp153c-lxa-fairytux2.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/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/bl32/tsp/platform_tsp.h
/rk3399_ARM-atf/include/bl32/tsp/tsp.h
/rk3399_ARM-atf/include/common/asm_macros_common.S
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/drivers/arm/gic.h
/rk3399_ARM-atf/include/drivers/measured_boot/event_log/event_handoff.h
/rk3399_ARM-atf/include/drivers/measured_boot/event_log/event_log.h
/rk3399_ARM-atf/include/drivers/mmc.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/lib/cpus/cpu_ops.h
/rk3399_ARM-atf/include/lib/cpus/errata.h
cpu_data.h
/rk3399_ARM-atf/include/lib/extensions/pauth.h
/rk3399_ARM-atf/include/lib/libc/cdefs.h
/rk3399_ARM-atf/include/lib/libc/string.h
/rk3399_ARM-atf/include/lib/libc/string_private.h
/rk3399_ARM-atf/include/lib/utils_def.h
/rk3399_ARM-atf/include/lib/xlat_tables/xlat_tables_defs.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/drtm_svc.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/include/services/trp/platform_trp.h
/rk3399_ARM-atf/include/services/trp/trp_helpers.h
/rk3399_ARM-atf/lib/aarch64/cache_helpers.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a510.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a55.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a57.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a72.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a73.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a75.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a76.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/cpu_helpers.S
/rk3399_ARM-atf/lib/cpus/aarch64/denver.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/errata_common.c
/rk3399_ARM-atf/lib/cpus/errata_report.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/el3_runtime/cpu_data_array.c
/rk3399_ARM-atf/lib/extensions/pauth/pauth.c
/rk3399_ARM-atf/lib/extensions/pmuv3/aarch64/pmuv3.c
/rk3399_ARM-atf/lib/extensions/spe/spe.c
/rk3399_ARM-atf/lib/libc/memchr.c
/rk3399_ARM-atf/lib/libc/memcmp.c
/rk3399_ARM-atf/lib/libc/memcpy.c
/rk3399_ARM-atf/lib/libc/memcpy_s.c
/rk3399_ARM-atf/lib/libc/memmove.c
/rk3399_ARM-atf/lib/libc/memset.c
/rk3399_ARM-atf/lib/libc/printf.c
/rk3399_ARM-atf/lib/libc/strchr.c
/rk3399_ARM-atf/lib/libc/strcmp.c
/rk3399_ARM-atf/lib/libc/strlen.c
/rk3399_ARM-atf/lib/libc/strncmp.c
/rk3399_ARM-atf/lib/libc/strrchr.c
/rk3399_ARM-atf/lib/psci/psci_lib.mk
/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_setup.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/lib/psci/psci_system_off.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_core.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/amd/common/plat_xfer_list.c
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/include/plat_ipi.h
/rk3399_ARM-atf/plat/amd/versal2/plat_psci_pm.c
/rk3399_ARM-atf/plat/amd/versal2/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/amd/versal2/soc_ipi.c
/rk3399_ARM-atf/plat/arm/board/a5ds/platform.mk
/rk3399_ARM-atf/plat/arm/board/a5ds/sp_min/sp_min-a5ds.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/platform.mk
/rk3399_ARM-atf/plat/arm/board/corstone1000/common/corstone1000_pm.c
/rk3399_ARM-atf/plat/arm/board/corstone1000/platform.mk
/rk3399_ARM-atf/plat/arm/board/corstone700/platform.mk
/rk3399_ARM-atf/plat/arm/board/corstone700/sp_min/sp_min-corstone700.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fconf/fconf_hw_config_getter.c
/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_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_gicv3.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_ide_keymgmt.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_private.h
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/sp_min/sp_min-fvp.mk
/rk3399_ARM-atf/plat/arm/board/fvp/trp/test_ide_km_interface.c
/rk3399_ARM-atf/plat/arm/board/fvp/trp/trp-fvp.mk
/rk3399_ARM-atf/plat/arm/board/fvp/tsp/fvp_tsp_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/tsp/tsp-fvp.mk
/rk3399_ARM-atf/plat/arm/board/fvp_ve/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp_ve/sp_min/sp_min-fvp_ve.mk
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/rk3399_ARM-atf/plat/arm/board/juno/sp_min/sp_min-juno.mk
/rk3399_ARM-atf/plat/arm/board/juno/tsp/tsp-juno.mk
/rk3399_ARM-atf/plat/arm/board/morello/morello_pm.c
/rk3399_ARM-atf/plat/arm/board/morello/platform.mk
/rk3399_ARM-atf/plat/arm/board/n1sdp/n1sdp_pm.c
/rk3399_ARM-atf/plat/arm/board/n1sdp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/include/nrd_variant.h
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd-common.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd_interconnect.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_common_measured_boot.c
/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/board/tc/tc_security.c
/rk3399_ARM-atf/plat/arm/common/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_pm.c
/rk3399_ARM-atf/plat/arm/common/arm_transfer_list.c
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/common/tsp/arm_tsp.mk
/rk3399_ARM-atf/plat/arm/common/tsp/arm_tsp_setup.c
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/common/plat_gicv2_base.c
/rk3399_ARM-atf/plat/common/plat_gicv3_base.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8m_measured_boot.c
/rk3399_ARM-atf/plat/imx/imx8m/imx8mp/platform.mk
/rk3399_ARM-atf/plat/mediatek/build_helpers/options.mk
/rk3399_ARM-atf/plat/mediatek/common/cache_ops.c
/rk3399_ARM-atf/plat/mediatek/common/cache_ops.h
/rk3399_ARM-atf/plat/mediatek/common/mtk_bl31_setup.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_rv_pwr_ctrl.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_rv_pwr_ctrl.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_lp_irqremain.c
/rk3399_ARM-atf/plat/mediatek/drivers/smmu/smmu.c
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/ufs_ctrl.c
/rk3399_ARM-atf/plat/mediatek/drivers/ufs/ufs_stub.c
/rk3399_ARM-atf/plat/mediatek/include/mtk_bl31_interface.h
/rk3399_ARM-atf/plat/mediatek/mt8173/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8189/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8189/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8189/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_helpers.S
/rk3399_ARM-atf/plat/qemu/common/common.mk
/rk3399_ARM-atf/plat/qemu/qemu/qemu_measured_boot.c
/rk3399_ARM-atf/plat/qti/common/src/aarch64/qti_kryo4_gold.S
/rk3399_ARM-atf/plat/qti/msm8916/tsp/msm8916_tsp_setup.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl1_mboot.c
/rk3399_ARM-atf/plat/rpi/rpi3/rpi3_bl2_mboot.c
/rk3399_ARM-atf/plat/socionext/uniphier/tsp/uniphier_tsp_setup.c
/rk3399_ARM-atf/plat/ti/k3low/common/am62l_psci.c
/rk3399_ARM-atf/plat/xilinx/common/include/ipi.h
/rk3399_ARM-atf/plat/xilinx/common/include/pm_api_sys.h
/rk3399_ARM-atf/plat/xilinx/common/ipi.c
/rk3399_ARM-atf/plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.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/common/tsp/tsp_plat_setup.c
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/versal/versal_ipi.c
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/versal_net/platform.mk
/rk3399_ARM-atf/plat/xilinx/versal_net/versal_net_sdei.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/platform.mk
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd.mk
/rk3399_ARM-atf/services/std_svc/drtm/drtm_main.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.c
/rk3399_ARM-atf/services/std_svc/errata_abi/cpu_errata_info.h
/rk3399_ARM-atf/services/std_svc/errata_abi/errata_abi_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd.mk
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_keymgmt.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/trp/trp_entry.S
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_helpers.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/trp/trp_private.h
/rk3399_ARM-atf/services/std_svc/sdei/sdei_event.c
/rk3399_ARM-atf/services/std_svc/sdei/sdei_intr_mgmt.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_shared_mem.c
/rk3399_ARM-atf/services/std_svc/spm/spm_mm/spm_mm_main.c
ef738d1921-Jun-2024 Manish Pandey <manish.pandey2@arm.com>

feat(psci): remove cpu context init by index

Currently, the calling core (meaning the core which received the call to
CPU_ON or the powerdown path of CPU_SUSPEND on the same core) is in
charge of in

feat(psci): remove cpu context init by index

Currently, the calling core (meaning the core which received the call to
CPU_ON or the powerdown path of CPU_SUSPEND on the same core) is in
charge of initialising the context for the waking core (the warmboot
entrypoint for both). This is convenient because the calling core can
write the context while in coherency and the waking core will only need
the context after its entered coherency. This avoids any cache
maintenance and makes communication simple.

However, this has 3 main problems:
a) asymmetric feature support is problematic - the calling core has no
way of knowing the feature set of the waking core. If the two
diverge, the architectural feature discovery via ID registers breaks
down. We've thus far "fixed" this on a case by case basis which
doesn't scale and introduces redundancy.

b) powerdown abandon (pabandon) introduces a contradiction - the calling
core has to initialise the context for when the core wakes up, but
should the core not powerdown it needs its old context intact. The only
way to work around this is by keeping two copies of context which
incurs a runtime and memory overhead.

c) cm_prepare_el3_exit[_ns]() doesn't have access to the entrypoint but needs
it to make initialisation decisions. We can infer some of this from
registers that have already been written but this is awkwardly
limiting for what we can do. This also necessitates the split from
the context initialisation.

We can solve all three by a making a core be in full ownership of its
own context. The calling core then only writes entrypoint information
and nothing else. The waking core then initialises its own context as it
sees fit with full knowledge of the whole picture.

The only tricky bit is cache coherency - the waking core has to be able
to coherently observe its new entrypoint. Calling cores will write to
the shared region with coherent caches on. If we make sure to read the
context only after the waking core has entered coherency, then we can
avoid cache operations and let hardware handle everything.

We can skip the spsr check for FEAT_TCR2 as it doesn't make a
difference. We can also skip enabling it twice from generic code.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I86e7fe8b698191fc3b469e5ced1fd010f8754b0e

show more ...


/rk3399_ARM-atf/.github/dependabot.yml
/rk3399_ARM-atf/.husky/prepare-commit-msg
/rk3399_ARM-atf/.readthedocs.yaml
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1_fwu.c
/rk3399_ARM-atf/bl2/aarch32/bl2_entrypoint.S
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/interrupt_mgmt.c
/rk3399_ARM-atf/bl32/sp_min/sp_min.mk
/rk3399_ARM-atf/bl32/sp_min/sp_min_main.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/common/tf_log.c
/rk3399_ARM-atf/docs/Makefile
/rk3399_ARM-atf/docs/about/features.rst
/rk3399_ARM-atf/docs/about/lts.rst
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/activity-monitors.rst
/rk3399_ARM-atf/docs/components/context-management-library.rst
/rk3399_ARM-atf/docs/components/rmm-el3-comms-spec.rst
/rk3399_ARM-atf/docs/components/xlat-tables-lib-v2-design.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/dtpm_drivers.rst
/rk3399_ARM-atf/docs/design_documents/index.rst
/rk3399_ARM-atf/docs/design_documents/measured_boot.rst
/rk3399_ARM-atf/docs/design_documents/measured_boot_dtpm_poc.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/global_substitutions.txt
/rk3399_ARM-atf/docs/glossary.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-build-options.rst
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-specific-configs.rst
/rk3399_ARM-atf/docs/plat/arm/index.rst
/rk3399_ARM-atf/docs/plat/index.rst
/rk3399_ARM-atf/docs/plat/mt8189.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/resources/diagrams/rpi3_dtpm_driver.png
/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/tools/memory-layout-tool.rst
/rk3399_ARM-atf/drivers/arm/cci/cci.c
/rk3399_ARM-atf/drivers/arm/gic/v2/gicdv2_helpers.c
/rk3399_ARM-atf/drivers/arm/gic/v2/gicv2_helpers.c
/rk3399_ARM-atf/drivers/arm/gic/v2/gicv2_main.c
/rk3399_ARM-atf/drivers/console/multi_console.c
/rk3399_ARM-atf/drivers/gpio/gpio_spi.c
/rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk
/rk3399_ARM-atf/drivers/partition/partition.c
/rk3399_ARM-atf/drivers/st/pmic/stm32mp_pmic2.c
/rk3399_ARM-atf/drivers/st/pmic/stpmic2.c
/rk3399_ARM-atf/drivers/ti/ipc/mailbox.c
/rk3399_ARM-atf/drivers/ti/ipc/sec_proxy.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/drivers/ti/ti_sci/ti_sci_transport.h
/rk3399_ARM-atf/drivers/tpm/tpm2.mk
/rk3399_ARM-atf/drivers/tpm/tpm2_chip.c
/rk3399_ARM-atf/drivers/tpm/tpm2_cmds.c
/rk3399_ARM-atf/drivers/tpm/tpm2_fifo.c
/rk3399_ARM-atf/drivers/tpm/tpm2_fifo_spi.c
/rk3399_ARM-atf/drivers/tpm/tpm2_slb9670/slb9670_gpio.c
/rk3399_ARM-atf/fdts/fvp-base-psci-common.dtsi
/rk3399_ARM-atf/fdts/stm32mp157c-lxa-tac-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp157c-lxa-tac.dts
/rk3399_ARM-atf/fdts/stm32mp25-ddr4-2x8Gbits-2x16bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-lpddr4-1x16Gbits-1x32bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-lpddr4-1x32Gbits-1x32bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-lpddr4-2x16Gbits-32bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp257d-ultra-fly-sbc-ca35tdcid-rcc.dtsi
/rk3399_ARM-atf/fdts/stm32mp257d-ultra-fly-sbc-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp257d-ultra-fly-sbc.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/arch_helpers.h
/rk3399_ARM-atf/include/common/feat_detect.h
/rk3399_ARM-atf/include/drivers/arm/css/css_scp.h
/rk3399_ARM-atf/include/drivers/arm/smmu_v3.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/console.h
/rk3399_ARM-atf/include/drivers/delay_timer.h
/rk3399_ARM-atf/include/drivers/gpio_spi.h
/rk3399_ARM-atf/include/drivers/st/stpmic2.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2_chip.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2_interface.h
/rk3399_ARM-atf/include/drivers/tpm/tpm2_slb9670/slb9670_gpio.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a510.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a710.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a715.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a78.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a78c.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x2.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x3.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_n2.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v1.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_v2.h
/rk3399_ARM-atf/include/lib/cpus/errata.h
context_mgmt.h
cpu_data.h
/rk3399_ARM-atf/include/lib/extensions/ras_arch.h
/rk3399_ARM-atf/include/lib/libc/cdefs.h
/rk3399_ARM-atf/include/lib/libc/string.h
/rk3399_ARM-atf/include/lib/transfer_list.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/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/drtm_svc.h
/rk3399_ARM-atf/include/services/ffa_svc.h
/rk3399_ARM-atf/include/services/rmm_core_manifest.h
/rk3399_ARM-atf/include/services/rmmd_svc.h
/rk3399_ARM-atf/include/services/spm_mm_svc.h
/rk3399_ARM-atf/lib/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a510.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_a77.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a78.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a78_ae.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a78c.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x1.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/neoverse_n1.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v1.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/cpus/errata_report.c
/rk3399_ARM-atf/lib/el3_runtime/aarch32/context_mgmt.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/trf/aarch64/trf.c
/rk3399_ARM-atf/lib/libc/libc_common.mk
/rk3399_ARM-atf/lib/libc/strcpy_secure.c
/rk3399_ARM-atf/lib/libc/strnlen_secure.c
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock_coherent.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_private.h
/rk3399_ARM-atf/lib/psci/psci_setup.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/lib/psci/psci_system_off.c
/rk3399_ARM-atf/lib/transfer_list/transfer_list.c
/rk3399_ARM-atf/lib/xlat_tables_v2/xlat_tables_core.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/build_macros.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/include/def.h
/rk3399_ARM-atf/plat/amd/versal2/include/plat_ocm_coherency.h
/rk3399_ARM-atf/plat/amd/versal2/plat_ocm_coherency.c
/rk3399_ARM-atf/plat/amd/versal2/platform.mk
/rk3399_ARM-atf/plat/arm/board/a5ds/a5ds_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/a5ds/sp_min/a5ds_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/common/board_common.mk
/rk3399_ARM-atf/plat/arm/board/corstone700/sp_min/corstone700_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fconf/fconf_hw_config_getter.c
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp_ve/fvp_ve_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp_ve/sp_min/fvp_ve_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/juno/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/juno/juno_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/include/nrd_ras.h
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdn2/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/rdv3_common.c
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_plat.c
/rk3399_ARM-atf/plat/arm/common/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/css/common/css_bl2_setup.c
/rk3399_ARM-atf/plat/common/aarch64/plat_common.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/common/plat_gicv2.c
/rk3399_ARM-atf/plat/common/plat_psci_common.c
/rk3399_ARM-atf/plat/intel/soc/agilex/bl2_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_ddr.c
/rk3399_ARM-atf/plat/intel/soc/common/include/platform_def.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_fcs.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_ros.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_sip_svc.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/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/intel/soc/n5x/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/n5x/platform.mk
/rk3399_ARM-atf/plat/intel/soc/stratix10/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/stratix10/platform.mk
/rk3399_ARM-atf/plat/mediatek/common/include/plat_macros.S
/rk3399_ARM-atf/plat/mediatek/common/include/plat_private.h
/rk3399_ARM-atf/plat/mediatek/drivers/gicv3/mt_gic_v3.c
/rk3399_ARM-atf/plat/mediatek/mt8186/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8188/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8188/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8189/drivers/gpio/mtgpio.c
/rk3399_ARM-atf/plat/mediatek/mt8189/drivers/gpio/mtgpio.h
/rk3399_ARM-atf/plat/mediatek/mt8189/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8189/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8189/plat_mmap.c
/rk3399_ARM-atf/plat/mediatek/mt8189/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8192/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8195/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8196/drivers/gpio/mtgpio.c
/rk3399_ARM-atf/plat/mediatek/mt8196/drivers/gpio/mtgpio.h
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_common.c
/rk3399_ARM-atf/plat/qti/sc7280/platform.mk
/rk3399_ARM-atf/plat/rpi/common/rpi3_common.c
/rk3399_ARM-atf/plat/rpi/rpi3/include/platform_def.h
/rk3399_ARM-atf/plat/rpi/rpi3/include/rpi3_measured_boot.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_dyn_cfg_helpers.c
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_def.h
/rk3399_ARM-atf/plat/ti/common/include/k3_console.h
/rk3399_ARM-atf/plat/ti/common/include/k3_gicv3.h
/rk3399_ARM-atf/plat/ti/common/include/plat_macros.S
/rk3399_ARM-atf/plat/ti/common/include/plat_private.h
/rk3399_ARM-atf/plat/ti/common/include/ti_platform_defs.h
/rk3399_ARM-atf/plat/ti/common/k3_console.c
/rk3399_ARM-atf/plat/ti/common/k3_gicv3.c
/rk3399_ARM-atf/plat/ti/common/k3_helpers.S
/rk3399_ARM-atf/plat/ti/common/plat_common.mk
/rk3399_ARM-atf/plat/ti/common/ti_bl31_setup.c
/rk3399_ARM-atf/plat/ti/k3/common/k3_bl31_setup.c
/rk3399_ARM-atf/plat/ti/k3/include/platform_def.h
/rk3399_ARM-atf/plat/ti/k3/platform.mk
/rk3399_ARM-atf/plat/ti/k3low/board/am62lx/board.mk
/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/common/am62l_topology.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/pm_service/pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/versal/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal_net/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_pinctrl.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_pinctrl.h
/rk3399_ARM-atf/poetry.lock
/rk3399_ARM-atf/pyproject.toml
/rk3399_ARM-atf/services/std_svc/drtm/drtm_main.c
/rk3399_ARM-atf/services/std_svc/errata_abi/errata_abi_main.c
/rk3399_ARM-atf/services/std_svc/rmmd/rmmd_main.c
/rk3399_ARM-atf/services/std_svc/spm/el3_spmc/spmc_main.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
/rk3399_ARM-atf/services/std_svc/std_svc_setup.c
/rk3399_ARM-atf/tools/cot_dt2c/poetry.lock
/rk3399_ARM-atf/tools/marvell/doimage/doimage.c
/rk3399_ARM-atf/tools/memory/poetry.lock
/rk3399_ARM-atf/tools/memory/pyproject.toml
/rk3399_ARM-atf/tools/memory/src/memory/__init__.py
/rk3399_ARM-atf/tools/memory/src/memory/buildparser.py
/rk3399_ARM-atf/tools/memory/src/memory/elfparser.py
/rk3399_ARM-atf/tools/memory/src/memory/mapparser.py
/rk3399_ARM-atf/tools/memory/src/memory/memmap.py
/rk3399_ARM-atf/tools/memory/src/memory/printer.py
/rk3399_ARM-atf/tools/nxp/create_pbl/Makefile
/rk3399_ARM-atf/tools/sptool/hob.py
/rk3399_ARM-atf/tools/sptool/sp_mk_generator.py
/rk3399_ARM-atf/tools/tlc/poetry.lock
c722003503-Feb-2025 Manish Pandey <manish.pandey2@arm.com>

fix(el3-runtime): replace CTX_ESR_EL3 with CTX_DOUBLE_FAULT_ESR

ESR_EL3 value is updated when an exception is taken to EL3 and its value
does not change until a new exception is taken to EL3. We nee

fix(el3-runtime): replace CTX_ESR_EL3 with CTX_DOUBLE_FAULT_ESR

ESR_EL3 value is updated when an exception is taken to EL3 and its value
does not change until a new exception is taken to EL3. We need to save
ESR in context memory only when we expect nested exception in EL3.

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

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

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I7720c5f03903f894a77413a235e3cc05c86f9c17

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/aarch64/ea_delegate.S
/rk3399_ARM-atf/docs/plat/arm/fvp/fvp-support.rst
/rk3399_ARM-atf/docs/plat/rockchip.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/st/pmic/stpmic2.c
/rk3399_ARM-atf/fdts/stm32mp157a-dk1-sp_min-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp157a-dk1-sp_min.dts
/rk3399_ARM-atf/fdts/stm32mp157c-dk2-sp_min-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp157c-dk2-sp_min.dts
/rk3399_ARM-atf/fdts/stm32mp157c-ed1-sp_min-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp157c-ed1-sp_min.dts
/rk3399_ARM-atf/fdts/stm32mp157c-ed1.dts
/rk3399_ARM-atf/fdts/stm32mp157c-ev1-sp_min-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp157c-ev1-sp_min.dts
/rk3399_ARM-atf/fdts/stm32mp15xx-dkx.dtsi
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a320.h
aarch64/context.h
/rk3399_ARM-atf/include/plat/common/plat_drtm.h
/rk3399_ARM-atf/include/services/drtm_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a320.S
/rk3399_ARM-atf/lib/romlib/Makefile
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_drtm_stub.c
/rk3399_ARM-atf/plat/arm/board/fvp/jmptbl_mbedtls_psa.i
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/ras/nrd_ras_cpu.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/platform/rdv3/platform.mk
/rk3399_ARM-atf/plat/rockchip/common/aarch64/platform_common.c
/rk3399_ARM-atf/plat/rockchip/common/include/plat_private.h
/rk3399_ARM-atf/plat/rockchip/common/scmi/rockchip_common_clock.c
/rk3399_ARM-atf/plat/rockchip/common/scmi/scmi_clock.h
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/dmc/dmc_rk3576.h
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/dmc/suspend.c
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/pmu/plat_pmu_macros.S
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/pmu/pm_pd_regs.c
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/pmu/pm_pd_regs.h
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/pmu/pmu.h
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/secure/firewall.c
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/secure/firewall.h
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/secure/secure.c
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/secure/secure.h
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/soc/soc.c
/rk3399_ARM-atf/plat/rockchip/rk3576/drivers/soc/soc.h
/rk3399_ARM-atf/plat/rockchip/rk3576/include/plat.ld.S
/rk3399_ARM-atf/plat/rockchip/rk3576/include/plat_sip_calls.h
/rk3399_ARM-atf/plat/rockchip/rk3576/include/platform_def.h
/rk3399_ARM-atf/plat/rockchip/rk3576/plat_sip_calls.c
/rk3399_ARM-atf/plat/rockchip/rk3576/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3576/rk3576_def.h
/rk3399_ARM-atf/plat/rockchip/rk3576/scmi/rk3576_clk.c
/rk3399_ARM-atf/plat/rockchip/rk3576/scmi/rk3576_clk.h
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/st/stm32mp1/platform.mk
/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/services/std_svc/drtm/drtm_main.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_main.h
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.c
/rk3399_ARM-atf/services/std_svc/drtm/drtm_measurements.h
0a580b5115-Nov-2024 Boyan Karatotev <boyan.karatotev@arm.com>

perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context

SVE and SME aren't enabled symmetrically for all worlds, but EL3 needs
to context switch them nonetheless. Previously,

perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context

SVE and SME aren't enabled symmetrically for all worlds, but EL3 needs
to context switch them nonetheless. Previously, this had to happen by
writing the enable bits just before reading/writing the relevant
context. But since the introduction of root context, this need not be
the case. We can have these enables always be present for EL3 and save
on some work (and ISBs!) on every context switch.

We can also hoist ZCR_EL3 to a never changing register, as we set its
value to be identical for every world, which happens to be the one we
want for EL3 too.

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

show more ...

83ec7e4506-Nov-2024 Boyan Karatotev <boyan.karatotev@arm.com>

perf(amu): greatly simplify AMU context management

The current code is incredibly resilient to updates to the spec and
has worked quite well so far. However, recent implementations expose a
weakness

perf(amu): greatly simplify AMU context management

The current code is incredibly resilient to updates to the spec and
has worked quite well so far. However, recent implementations expose a
weakness in that this is rather slow. A large part of it is written in
assembly, making it opaque to the compiler for optimisations. The
future proofness requires reading registers that are effectively
`volatile`, making it even harder for the compiler, as well as adding
lots of implicit barriers, making it hard for the microarchitecutre to
optimise as well.

We can make a few assumptions, checked by a few well placed asserts, and
remove a lot of this burden. For a start, at the moment there are 4
group 0 counters with static assignments. Contexting them is a trivial
affair that doesn't need a loop. Similarly, there can only be up to 16
group 1 counters. Contexting them is a bit harder, but we can do with a
single branch with a falling through switch. If/when both of these
change, we have a pair of asserts and the feature detection mechanism to
guard us against pretending that we support something we don't.

We can drop contexting of the offset registers. They are fully
accessible by EL2 and as such are its responsibility to preserve on
powerdown.

Another small thing we can do, is pass the core_pos into the hook.
The caller already knows which core we're running on, we don't need to
call this non-trivial function again.

Finally, knowing this, we don't really need the auxiliary AMUs to be
described by the device tree. Linux doesn't care at the moment, and any
information we need for EL3 can be neatly placed in a simple array.

All of this, combined with lifting the actual saving out of assembly,
reduces the instructions to save the context from 180 to 40, including a
lot fewer branches. The code is also much shorter and easier to read.

Also propagate to aarch32 so that the two don't diverge too much.

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/components/activity-monitors.rst
/rk3399_ARM-atf/docs/components/fconf/index.rst
/rk3399_ARM-atf/docs/components/mpmm.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc2.dts
/rk3399_ARM-atf/include/arch/aarch32/arch.h
/rk3399_ARM-atf/include/arch/aarch32/arch_features.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_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
context_mgmt.h
/rk3399_ARM-atf/include/lib/extensions/amu.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a510.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a520.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_alto.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_arcadia.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_gelas.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/nevis.S
/rk3399_ARM-atf/lib/cpus/aarch64/travis.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/amu/amu.mk
/rk3399_ARM-atf/lib/fconf/fconf.mk
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/make_helpers/arch_features.mk
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/tc_bl31_setup.c

1234567