History log of /rk3399_ARM-atf/make_helpers/ (Results 101 – 125 of 516)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
2b5e00d419-Dec-2024 Boyan Karatotev <boyan.karatotev@arm.com>

feat(psci): allow cores to wake up from powerdown

The simplistic view of a core's powerdown sequence is that power is
atomically cut upon calling `wfi`. However, it turns out that it has
lots to do

feat(psci): allow cores to wake up from powerdown

The simplistic view of a core's powerdown sequence is that power is
atomically cut upon calling `wfi`. However, it turns out that it has
lots to do - it has to talk to the interconnect to exit coherency, clean
caches, check for RAS errors, etc. These take significant amounts of
time and are certainly not atomic. As such there is a significant window
of opportunity for external events to happen. Many of these steps are
not destructive to context, so theoretically, the core can just "give
up" half way (or roll certain actions back) and carry on running. The
point in this sequence after which roll back is not possible is called
the point of no return.

One of these actions is the checking for RAS errors. It is possible for
one to happen during this lengthy sequence, or at least remain
undiscovered until that point. If the core were to continue powerdown
when that happens, there would be no (easy) way to inform anyone about
it. Rejecting the powerdown and letting software handle the error is the
best way to implement this.

Arm cores since at least the a510 have included this exact feature. So
far it hasn't been deemed necessary to account for it in firmware due to
the low likelihood of this happening. However, events like GIC wakeup
requests are much more probable. Older cores will powerdown and
immediately power back up when this happens. Travis and Gelas include a
feature similar to the RAS case above, called powerdown abandon. The
idea is that this will improve the latency to service the interrupt by
saving on work which the core and software need to do.

So far firmware has relied on the `wfi` being the point of no return and
if it doesn't explicitly detect a pending interrupt quite early on, it
will embark onto a sequence that it expects to end with shutdown. To
accommodate for it not being a point of no return, we must undo all of
the system management we did, just like in the warm boot entrypoint.

To achieve that, the pwr_domain_pwr_down_wfi hook must not be terminal.
Most recent platforms do some platform management and finish on the
standard `wfi`, followed by a panic or an endless loop as this is
expected to not return. To make this generic, any platform that wishes
to support wakeups must instead let common code call
`psci_power_down_wfi()` right after. Besides wakeups, this lets common
code handle powerdown errata better as well.

Then, the CPU_OFF case is simple - PSCI does not allow it to return. So
the best that can be done is to attempt the `wfi` a few times (the
choice of 32 is arbitrary) in the hope that the wakeup is transient. If
it isn't, the only choice is to panic, as the system is likely to be in
a bad state, eg. interrupts weren't routed away. The same applies for
SYSTEM_OFF, SYSTEM_RESET, and SYSTEM_RESET2. There the panic won't
matter as the system is going offline one way or another. The RAS case
will be considered in a separate patch.

Now, the CPU_SUSPEND case is more involved. First, to powerdown it must
wipe its context as it is not written on warm boot. But it cannot be
overwritten in case of a wakeup. To avoid the catch 22, save a copy that
will only be used if powerdown fails. That is about 500 bytes on the
stack so it hopefully doesn't tip anyone over any limits. In future that
can be avoided by having a core manage its own context.

Second, when the core wakes up, it must undo anything it did to prepare
for poweroff, which for the cores we care about, is writing
CPUPWRCTLR_EL1.CORE_PWRDN_EN. The least intrusive for the cpu library
way of doing this is to simply call the power off hook again and have
the hook toggle the bit. If in the future there need to be more complex
sequences, their direction can be advised on the value of this bit.

Third, do the actual "resume". Most of the logic is already there for
the retention suspend, so that only needs a small touch up to apply to
the powerdown case as well. The missing bit is the powerdown specific
state management. Luckily, the warmboot entrypoint does exactly that
already too, so steal that and we're done.

All of this is hidden behind a FEAT_PABANDON flag since it has a large
memory and runtime cost that we don't want to burden non pabandon cores
with.

Finally, do some function renaming to better reflect their purpose and
make names a little bit more consistent.

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

show more ...


/rk3399_ARM-atf/.github/CODEOWNERS
/rk3399_ARM-atf/.github/dependabot.yml
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/docs/about/index.rst
/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/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/glossary.rst
/rk3399_ARM-atf/docs/plat/meson-gxl.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/resources/diagrams/lts-timeline-example.png
/rk3399_ARM-atf/drivers/arm/css/scp/css_pm_scmi.c
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_helpers.c
/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-pinctrl.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-dk-ca35tdcid-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-dk-ca35tdcid-rcc.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-dk-fw-config.dts
/rk3399_ARM-atf/fdts/stm32mp257f-dk.dts
/rk3399_ARM-atf/fdts/tc-fpga.dtsi
/rk3399_ARM-atf/fdts/tc3-4-base.dtsi
/rk3399_ARM-atf/fdts/tc3.dts
/rk3399_ARM-atf/fdts/tc4.dts
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x4.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x925.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/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/cpus/errata.h
/rk3399_ARM-atf/include/lib/psci/psci.h
/rk3399_ARM-atf/include/lib/psci/psci_lib.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/include/services/el3_spmd_logical_sp.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_gelas.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/neoverse_n2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v2.S
/rk3399_ARM-atf/lib/cpus/aarch64/neoverse_v3.S
/rk3399_ARM-atf/lib/cpus/aarch64/travis.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/pmuv3/aarch64/pmuv3.c
/rk3399_ARM-atf/lib/psci/aarch64/psci_helpers.S
/rk3399_ARM-atf/lib/psci/psci_common.c
/rk3399_ARM-atf/lib/psci/psci_off.c
/rk3399_ARM-atf/lib/psci/psci_private.h
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/lib/psci/psci_system_off.c
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/plat_psci.c
/rk3399_ARM-atf/plat/amd/versal2/plat_topology.c
/rk3399_ARM-atf/plat/amd/versal2/scmi.c
/rk3399_ARM-atf/plat/amlogic/gxl/gxl_bl31_setup.c
/rk3399_ARM-atf/plat/amlogic/gxl/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/platform.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/common/include/nrd3/nrd_pas_def3.h
/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_dpe.c
/rk3399_ARM-atf/plat/arm/board/tc/tc_stack_protector.c
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/intel/soc/agilex/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/intel/soc/common/include/platform_def.h
/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/n5x/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/stratix10/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/mediatek/build_helpers/options.mk
/rk3399_ARM-atf/plat/mediatek/common/lpm/mt_lpm_dispatch.c
/rk3399_ARM-atf/plat/mediatek/common/lpm/rules.mk
/rk3399_ARM-atf/plat/mediatek/common/lpm_v2/mt_lp_api.c
/rk3399_ARM-atf/plat/mediatek/common/lpm_v2/mt_lp_mmap.c
/rk3399_ARM-atf/plat/mediatek/common/lpm_v2/mt_lp_rm.c
/rk3399_ARM-atf/plat/mediatek/common/lpm_v2/mt_lp_rq.c
/rk3399_ARM-atf/plat/mediatek/common/lpm_v2/mt_lpm_dispatch.c
/rk3399_ARM-atf/plat/mediatek/common/lpm_v2/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_power.c
/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/cpu_pm/cpcv5_4/mt_cpu_pm.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_cpu_pm.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_cpu_pm_cpc.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_cpu_pm_cpc.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_cpu_pm_mbox.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_cpu_pm_mbox.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_cpu_pm_smc.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_cpu_pm_smc.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_lp_irqremain.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_lp_irqremain.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_ppu.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_ppu.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_smp.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/mt_smp.h
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/cpcv5_4/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/topology/default/pwr.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/topology/default/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/topology/group_4_3_1/pwr.c
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/topology/group_4_3_1/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/cpu_pm/topology/inc/pwr_topology.h
/rk3399_ARM-atf/plat/mediatek/drivers/gicv3/mt_gic_v3.c
/rk3399_ARM-atf/plat/mediatek/drivers/gicv3/mt_gic_v3.h
/rk3399_ARM-atf/plat/mediatek/drivers/gicv3/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/mcusys/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/mminfra/mminfra_stub.c
/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/mtcmos/mt8196/mtcmos.h
/rk3399_ARM-atf/plat/mediatek/drivers/mtcmos/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt6363/mt6363_psc.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt6363/registers.h
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt6363/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt8196/pmic_lowpower_init.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt8196/pmic_shutdown_cfg.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/mt8196/pmic_swap_api.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/pmic_common_swap_api.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/pmic_psc.c
/rk3399_ARM-atf/plat/mediatek/drivers/pmic/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/common/dbg_ctrl.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/common/mt_spm_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/common/mt_spm_constraint.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/common/mt_spm_smc.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/common/rules.mk
/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_bus26m.c
/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_syspll.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/constraints/mt_spm_rc_vcore.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/constraints/mt_spm_trace.h
/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.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_conservation.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_conservation.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_dispatcher.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_dispatcher.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_doe_resource_ctrl.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_idle.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_idle.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_internal.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_internal.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_pmic_lp.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_pmic_lp.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_reg.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_stats.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_stats.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_suspend.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_suspend.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_vcorefs.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_vcorefs.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_vcorefs_ext.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_spm_vcorefs_reg.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_vcore_dvfsrc_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/mt_vcore_dvfsrc_plat_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/pcm_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/plat_conf.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8196/sleep_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_vcorefs_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_vcorefs_exp.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/mt_spm_vcorefs_smc.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spm/version/inc/mt_spm_ver.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/version/notifier/inc/mt_spm_notifier.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/version/notifier/v4/mt_spm_sspm_intc.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/version/notifier/v4/mt_spm_sspm_notifier.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/version/pmic_wrap/inc/mt_spm_pmic_wrap.h
/rk3399_ARM-atf/plat/mediatek/drivers/spm/version/pmic_wrap/v1/mt_spm_pmic_wrap.c
/rk3399_ARM-atf/plat/mediatek/drivers/spm/version/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/mt8196/platform_pmif_spmi.c
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/pmif_common.c
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/pmif_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/pmif_v1/pmif.h
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/spmi_common.c
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/spmi_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/spmi/spmi_sw.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/dbgtop.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/dramc.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/mcusys/mcupm/mcupm_cfg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/mcusys/v1/mcucfg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/mcusys/v2/mcucfg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/mcusys/v3/mcucfg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/mcusys/v4/mcucfg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/mminfra_public.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/mt6316_lowpower_reg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/mt6363_lowpower_reg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/mt6373_lowpower_reg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/pmic_psc.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/pmic_set_lowpower.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/pmic_shutdown_cfg.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/pmic/pmic_swap_api.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/spm/mt_spm_resource_req.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/spm/mt_spm_vcorefs_api.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/spmi_api.h
/rk3399_ARM-atf/plat/mediatek/include/drivers/sramrc.h
/rk3399_ARM-atf/plat/mediatek/include/lib/pm/mtk_pm.h
/rk3399_ARM-atf/plat/mediatek/include/lpm/mt_lpm_dispatch.h
/rk3399_ARM-atf/plat/mediatek/include/lpm_v2/mt_lp_api.h
/rk3399_ARM-atf/plat/mediatek/include/lpm_v2/mt_lp_rm.h
/rk3399_ARM-atf/plat/mediatek/include/lpm_v2/mt_lp_rq.h
/rk3399_ARM-atf/plat/mediatek/include/lpm_v2/mt_lp_rqm.h
/rk3399_ARM-atf/plat/mediatek/include/lpm_v2/mt_lpm_dispatch.h
/rk3399_ARM-atf/plat/mediatek/include/lpm_v2/mt_lpm_smc.h
/rk3399_ARM-atf/plat/mediatek/include/mtk_sip_def.h
/rk3399_ARM-atf/plat/mediatek/include/mtk_sip_svc.h
/rk3399_ARM-atf/plat/mediatek/lib/pm/armv9_0/pwr_ctrl.c
/rk3399_ARM-atf/plat/mediatek/lib/pm/armv9_0/rules.mk
/rk3399_ARM-atf/plat/mediatek/lib/pm/mtk_pm.c
/rk3399_ARM-atf/plat/mediatek/lib/pm/mtk_pm.h
/rk3399_ARM-atf/plat/mediatek/mt8196/drivers/dcm/mtk_dcm.c
/rk3399_ARM-atf/plat/mediatek/mt8196/drivers/dcm/mtk_dcm_utils.c
/rk3399_ARM-atf/plat/mediatek/mt8196/drivers/dcm/mtk_dcm_utils.h
/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/mediatek/topology/group_4_3_1/topology.c
/rk3399_ARM-atf/plat/mediatek/topology/group_4_3_1/topology_conf.mk
/rk3399_ARM-atf/plat/mediatek/topology/rules.mk
/rk3399_ARM-atf/plat/qti/common/src/qti_pm.c
/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/rk3399/drivers/pmu/pmu_fw.S
/rk3399_ARM-atf/plat/rockchip/rk3588/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/st/stm32mp2/aarch64/stm32mp2_helper.S
/rk3399_ARM-atf/plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.c
/rk3399_ARM-atf/plat/xilinx/common/plat_startup.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/common/versal.c
/rk3399_ARM-atf/plat/xilinx/versal/bl31_versal_setup.c
/rk3399_ARM-atf/plat/xilinx/versal/include/versal_def.h
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal/plat_versal.c
/rk3399_ARM-atf/plat/xilinx/versal_net/aarch64/versal_net_common.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/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_topology.c
/rk3399_ARM-atf/plat/xilinx/versal_net/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/versal_net/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_zynqmp.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/pm_api_pinctrl.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_svc_main.c
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.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_logical_sp.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_main.c
/rk3399_ARM-atf/services/std_svc/spmd/spmd_private.h
/rk3399_ARM-atf/tools/sptool/sp_mk_generator.py
422b181f17-Jan-2025 Yann Gautier <yann.gautier@st.com>

fix(build): do not force PLAT in plat_helpers.mk

After the change to allow overriding platform specific defaults [1],
the PLAT macro is forced to DEFAULT_PLAT in plat_helpers.mk. But this
makefile i

fix(build): do not force PLAT in plat_helpers.mk

After the change to allow overriding platform specific defaults [1],
the PLAT macro is forced to DEFAULT_PLAT in plat_helpers.mk. But this
makefile is also called for tools. For example in fiptool makefile, as
PLAT is reset to default plat (fvp), we cannot use specific platforms
plat_fiptool.mk files. Put back the setting of PLAT macro in Makefile.

[1]: 1b2fb6adb5 feat(build): add ability to define platform specific
defaults

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

show more ...

d6dccfb020-Jan-2025 Manish Pandey <manish.pandey2@arm.com>

Merge "build: remove Windows compatibility layer" into integration

6b8df7b909-Jan-2025 Arvind Ram Prakash <arvind.ramprakash@arm.com>

feat(mops): enable FEAT_MOPS in EL3 when INIT_UNUSED_NS_EL2=1

FEAT_MOPS, mandatory from Arm v8.8, is typically managed in EL2.
However, in configurations where NS_EL2 is not enabled,
EL3 must set th

feat(mops): enable FEAT_MOPS in EL3 when INIT_UNUSED_NS_EL2=1

FEAT_MOPS, mandatory from Arm v8.8, is typically managed in EL2.
However, in configurations where NS_EL2 is not enabled,
EL3 must set the HCRX_EL2.MSCEn bit to 1 to enable the feature.

This patch ensures FEAT_MOPS is enabled by setting HCRX_EL2.MSCEn to 1.

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

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_clk_drv.c
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_early_clks.c
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc2.dts
/rk3399_ARM-atf/fdts/tc3-4-base.dtsi
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/drivers/nxp/clk/s32cc/s32cc-clk-drv.h
/rk3399_ARM-atf/include/drivers/nxp/clk/s32cc/s32cc-clk-utils.h
/rk3399_ARM-atf/include/lib/transfer_list.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/ffa_svc.h
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/spe/spe.c
/rk3399_ARM-atf/lib/extensions/trbe/trbe.c
arch_features.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_stmm_manifest.dts
/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/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_ni.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_cache.S
/rk3399_ARM-atf/plat/mediatek/drivers/emi/common/emi.h
/rk3399_ARM-atf/plat/mediatek/drivers/emi/emi_stub.c
/rk3399_ARM-atf/plat/mediatek/drivers/emi/rules.mk
/rk3399_ARM-atf/plat/mediatek/include/mtk_sip_def.h
/rk3399_ARM-atf/plat/mediatek/mt8196/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/include/platform_def.h
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/include/s32cc-bl-common.h
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_bl2_el3_setup.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_bl31_setup.c
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_console.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/qemu/common/common.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_bl31_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/socionext/synquacer/platform.mk
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/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_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_setup.c
/rk3399_ARM-atf/tools/cot_dt2c/poetry.lock
/rk3399_ARM-atf/tools/cot_dt2c/pyproject.toml
/rk3399_ARM-atf/tools/tlc/poetry.lock
/rk3399_ARM-atf/tools/tlc/pyproject.toml
c327370313-Jan-2025 Chris Kay <chris.kay@arm.com>

build: remove Windows compatibility layer

For a couple of releases now we have officially withdrawn support for
building TF-A on Windows using the native environment, relying instead
on POSIX emulat

build: remove Windows compatibility layer

For a couple of releases now we have officially withdrawn support for
building TF-A on Windows using the native environment, relying instead
on POSIX emulation layers like MSYS2, Mingw64, Cygwin or WSL.

This change removes the remainder of the OS compatibility layer
entirely, and migrates the build system over to explicitly relying on a
POSIX environment.

Change-Id: I8fb60d998162422e958009afd17eab826e3bc39b
Signed-off-by: Chris Kay <chris.kay@arm.com>

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc2.dts
/rk3399_ARM-atf/fdts/tc3-4-base.dtsi
/rk3399_ARM-atf/include/lib/transfer_list.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/services/ffa_svc.h
/rk3399_ARM-atf/lib/extensions/spe/spe.c
/rk3399_ARM-atf/lib/extensions/trbe/trbe.c
common.mk
toolchain.mk
utilities.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/plat/arm/board/a5ds/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/fdts/fvp_stmm_manifest.dts
/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/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_ni.c
/rk3399_ARM-atf/plat/common/plat_bl_common.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/bl31_plat_setup.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_cache.S
/rk3399_ARM-atf/plat/mediatek/drivers/emi/common/emi.h
/rk3399_ARM-atf/plat/mediatek/drivers/emi/emi_stub.c
/rk3399_ARM-atf/plat/mediatek/drivers/emi/rules.mk
/rk3399_ARM-atf/plat/mediatek/include/mtk_sip_def.h
/rk3399_ARM-atf/plat/mediatek/mt8196/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/nuvoton/npcm845x/platform.mk
/rk3399_ARM-atf/plat/nxp/soc-lx2160a/ddr_fip.mk
/rk3399_ARM-atf/plat/qemu/common/common.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_bl31_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/socionext/synquacer/platform.mk
/rk3399_ARM-atf/plat/st/common/common.mk
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/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_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_setup.c
/rk3399_ARM-atf/tools/amlogic/Makefile
/rk3399_ARM-atf/tools/cert_create/Makefile
/rk3399_ARM-atf/tools/cot_dt2c/poetry.lock
/rk3399_ARM-atf/tools/cot_dt2c/pyproject.toml
/rk3399_ARM-atf/tools/encrypt_fw/Makefile
/rk3399_ARM-atf/tools/fiptool/Makefile
/rk3399_ARM-atf/tools/nxp/create_pbl/Makefile
/rk3399_ARM-atf/tools/nxp/create_pbl/create_pbl.mk
/rk3399_ARM-atf/tools/nxp/create_pbl/pbl_ch2.mk
/rk3399_ARM-atf/tools/nxp/create_pbl/pbl_ch3.mk
/rk3399_ARM-atf/tools/sptool/Makefile
/rk3399_ARM-atf/tools/stm32image/Makefile
/rk3399_ARM-atf/tools/tlc/poetry.lock
/rk3399_ARM-atf/tools/tlc/pyproject.toml
8db1705225-Oct-2024 Boyan Karatotev <boyan.karatotev@arm.com>

feat(smccc): implement SMCCC_ARCH_FEATURE_AVAILABILITY

SMCCC_ARCH_FEATURE_AVAILABILITY [1] is a call to query firmware about
the features it is aware of and enables. This is useful when a feature
is

feat(smccc): implement SMCCC_ARCH_FEATURE_AVAILABILITY

SMCCC_ARCH_FEATURE_AVAILABILITY [1] is a call to query firmware about
the features it is aware of and enables. This is useful when a feature
is not enabled at EL3, eg due to an older FW image, but it is present in
hardware. In those cases, the EL1 ID registers do not reflect the usable
feature set and this call should provide the necessary information to
remedy that.

The call itself is very lightweight - effectively a sanitised read of
the relevant system register. Bits that are not relevant to feature
enablement are masked out and active low bits are converted to active
high.

The implementation is also very simple. All relevant, irrelevant, and
inverted bits combined into bitmasks at build time. Then at runtime the
masks are unconditionally applied to produce the right result. This
assumes that context managers will make sure that disabled features
do not have their bits set and the registers are context switched if
any fields in them make enablement ambiguous.

Features that are not yet supported in TF-A have not been added. On
debug builds, calling this function will fail an assert if any bits that
are not expected are set. In combination with CI this should allow for
this feature to to stay up to date as new architectural features are
added.

If a call for MPAM3_EL3 is made when MPAM is not enabled, the call
will return INVALID_PARAM, while if it is FEAT_STATE_CHECK, it will
return zero. This should be fairly consistent with feature detection.

The bitmask is meant to be interpreted as the logical AND of the
relevant ID registers. It would be permissible for this to return 1
while the ID returns 0. Despite this, this implementation takes steps
not to. In the general case, the two should match exactly.

Finally, it is not entirely clear whether this call replies to SMC32
requests. However, it will not, as the return values are all 64 bits.

[1]: https://developer.arm.com/documentation/den0028/galp1/?lang=en

Co-developed-by: Charlie Bareham <charlie.bareham@arm.com>
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I1a74e7d0b3459b1396961b8fa27f84e3f0ad6a6f

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/design/trusted-board-boot-build.rst
/rk3399_ARM-atf/docs/design/trusted-board-boot.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/qti.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/fdts/stm32mp157c-ed1.dts
/rk3399_ARM-atf/fdts/stm32mp15xx-dkx.dtsi
/rk3399_ARM-atf/fdts/tc3-4-base.dtsi
/rk3399_ARM-atf/fdts/tc3.dts
/rk3399_ARM-atf/fdts/tc4.dts
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/arch_features.h
/rk3399_ARM-atf/include/arch/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/arch/aarch64/asm_macros.S
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_mbedtls_config.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/default_psa_mbedtls_config.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_el1.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_el2.h
/rk3399_ARM-atf/include/lib/el3_runtime/pubsub.h
/rk3399_ARM-atf/include/lib/extensions/spe.h
/rk3399_ARM-atf/include/lib/transfer_list.h
/rk3399_ARM-atf/include/plat/arm/board/common/rotpk/rotpk_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/nuvoton/common/npcm845x_arm_def.h
/rk3399_ARM-atf/include/services/arm_arch_svc.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a710.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/cortex_x925.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/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.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/psci/psci_common.c
/rk3399_ARM-atf/lib/romlib/Makefile
/rk3399_ARM-atf/lib/transfer_list/transfer_list.c
defaults.mk
/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/include/versal2-scmi.h
/rk3399_ARM-atf/plat/amd/versal2/plat_psci.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/common/board_arm_trusted_boot.c
/rk3399_ARM-atf/plat/arm/board/common/board_common.mk
/rk3399_ARM-atf/plat/arm/board/common/protpk/README
/rk3399_ARM-atf/plat/arm/board/common/protpk/arm_dev_protpk.S
/rk3399_ARM-atf/plat/arm/board/common/protpk/arm_protprivk_ecdsa.pem
/rk3399_ARM-atf/plat/arm/board/common/protpk/arm_protprivk_ecdsa_secp384r1.pem
/rk3399_ARM-atf/plat/arm/board/common/rotpk/arm_dev_rotpk.S
/rk3399_ARM-atf/plat/arm/board/common/rotpk/arm_rotprivk_rsa_3k.pem
/rk3399_ARM-atf/plat/arm/board/common/rotpk/arm_rotprivk_rsa_4k.pem
/rk3399_ARM-atf/plat/arm/board/common/swd_rotpk/README
/rk3399_ARM-atf/plat/arm/board/common/swd_rotpk/arm_dev_swd_rotpk.S
/rk3399_ARM-atf/plat/arm/board/common/swd_rotpk/arm_swd_rotprivk_ecdsa.pem
/rk3399_ARM-atf/plat/arm/board/common/swd_rotpk/arm_swd_rotprivk_ecdsa_secp384r1.pem
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl2_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/jmptbl.i
/rk3399_ARM-atf/plat/arm/board/fvp/jmptbl_mbedtls.i
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/juno/jmptbl.i
/rk3399_ARM-atf/plat/arm/board/juno/jmptbl_mbedtls.i
/rk3399_ARM-atf/plat/arm/board/juno/juno_trusted_boot.c
/rk3399_ARM-atf/plat/arm/board/neoverse_rd/common/nrd_bl31_setup.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_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/arm_dyn_cfg.c
/rk3399_ARM-atf/plat/arm/common/arm_transfer_list.c
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/apusys.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/apusys.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/apusys_rv/2.0/apusys_rv.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/apusys_rv/2.0/apusys_rv.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/apusys_rv/2.0/apusys_rv_sec_info.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/devapc/apusys_dapc_v1.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8188/apusys_power.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8188/apusys_power.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8188/apusys_rv_mbox_mpu.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8188/apusys_rv_pwr_ctrl.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8188/apusys_security_ctrl_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8188/apusys_security_ctrl_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_ammu.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_ammu.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_devapc.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_devapc.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_devapc_def.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_power.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_power.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_rv_mbox_mpu.h
/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/apusys/mt8196/apusys_security_ctrl_perm_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_security_ctrl_perm_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_security_ctrl_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/mt8196/apusys_security_ctrl_plat.h
/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/apusys/security_ctrl/apusys_security_ctrl_perm.h
/rk3399_ARM-atf/plat/mediatek/drivers/apusys/security_ctrl/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/vcp/mt8196/vcp_helper.h
/rk3399_ARM-atf/plat/mediatek/drivers/vcp/mt8196/vcp_reg.h
/rk3399_ARM-atf/plat/mediatek/drivers/vcp/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/vcp/rv/mmup_common.c
/rk3399_ARM-atf/plat/mediatek/drivers/vcp/rv/mmup_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/vcp/rv/rules.mk
/rk3399_ARM-atf/plat/mediatek/drivers/vcp/rv/vcp_common.c
/rk3399_ARM-atf/plat/mediatek/include/drivers/apusys_rv_public.h
/rk3399_ARM-atf/plat/mediatek/include/mtk_sip_def.h
/rk3399_ARM-atf/plat/mediatek/mt8186/drivers/mcdi/mt_cpu_pm.c
/rk3399_ARM-atf/plat/mediatek/mt8192/drivers/mcdi/mt_cpu_pm.c
/rk3399_ARM-atf/plat/mediatek/mt8195/drivers/mcdi/mt_cpu_pm.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/plat_mmap.c
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/qemu/common/common.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_common.c
/rk3399_ARM-atf/plat/qemu/common/qemu_private.h
/rk3399_ARM-atf/plat/qemu/qemu/include/qemu_pas_def.h
/rk3399_ARM-atf/plat/qemu/qemu/platform.mk
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/include/qemu_sbsa_pas_def.h
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/include/sbsa_platform.h
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/platform.mk
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/sbsa_platform.c
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/sbsa_sip_svc.c
/rk3399_ARM-atf/plat/qemu/qemu_sbsa/trp/trp-qemu_sbsa.mk
/rk3399_ARM-atf/plat/qti/common/src/qti_gic_v3.c
/rk3399_ARM-atf/plat/qti/qcs615/inc/platform_def.h
/rk3399_ARM-atf/plat/qti/qcs615/inc/qti_map_chipinfo.h
/rk3399_ARM-atf/plat/qti/qcs615/inc/qti_rng_io.h
/rk3399_ARM-atf/plat/qti/qcs615/inc/qti_secure_io_cfg.h
/rk3399_ARM-atf/plat/qti/qcs615/platform.mk
/rk3399_ARM-atf/plat/qti/qtiseclib/inc/qcs615/qtiseclib_defs_plat.h
/rk3399_ARM-atf/plat/rockchip/common/drivers/pmu/pmu_com.h
/rk3399_ARM-atf/plat/rockchip/px30/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3288/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dram_spec_timing.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/Makefile
/rk3399_ARM-atf/plat/rockchip/rk3588/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/st/common/include/stm32mp_svc_setup.h
/rk3399_ARM-atf/plat/st/common/stm32mp_svc_setup.c
/rk3399_ARM-atf/plat/st/stm32mp1/include/stm32mp1_smc.h
/rk3399_ARM-atf/plat/st/stm32mp1/services/bsec_svc.c
/rk3399_ARM-atf/plat/st/stm32mp1/services/stm32mp1_svc_setup.c
/rk3399_ARM-atf/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/include/stm32mp2_smc.h
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp2/services/stgen_svc.c
/rk3399_ARM-atf/plat/st/stm32mp2/services/stgen_svc.h
/rk3399_ARM-atf/plat/st/stm32mp2/services/stm32mp2_svc_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/stm32mp2_private.c
/rk3399_ARM-atf/plat/xilinx/common/include/ipi.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/plat_startup.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/common/versal.c
/rk3399_ARM-atf/plat/xilinx/versal/bl31_versal_setup.c
/rk3399_ARM-atf/plat/xilinx/versal/include/versal_def.h
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/include/versal_net_def.h
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_topology.c
/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/bl31_zynqmp_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/include/zynqmp_def.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_zynqmp.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/pm_api_pinctrl.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_defs.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/zynqmp_pm_svc_main.c
/rk3399_ARM-atf/poetry.lock
/rk3399_ARM-atf/services/arm_arch_svc/arm_arch_svc_setup.c
/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/rmmd/rmmd_main.c
/rk3399_ARM-atf/tools/cert_create/include/key.h
/rk3399_ARM-atf/tools/encrypt_fw/src/main.c
/rk3399_ARM-atf/tools/tlc/tests/conftest.py
/rk3399_ARM-atf/tools/tlc/tests/test_cli.py
/rk3399_ARM-atf/tools/tlc/tests/test_transfer_list.py
/rk3399_ARM-atf/tools/tlc/tlc/cli.py
/rk3399_ARM-atf/tools/tlc/tlc/te.py
/rk3399_ARM-atf/tools/tlc/tlc/tl.py
a57e18e411-Nov-2024 Arvind Ram Prakash <arvind.ramprakash@arm.com>

feat(fpmr): disable FPMR trap

This patch enables support of FEAT_FPMR by enabling access
to FPMR register. It achieves it by setting the EnFPM bit of
SCR_EL3. This feature is currently enabled for N

feat(fpmr): disable FPMR trap

This patch enables support of FEAT_FPMR by enabling access
to FPMR register. It achieves it by setting the EnFPM bit of
SCR_EL3. This feature is currently enabled for NS world only.

Reference:
https://developer.arm.com/documentation/109697/2024_09/
Feature-descriptions/The-Armv9-5-architecture-extension?lang=en

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

show more ...

8953568a13-May-2024 Levi Yun <yeoreum.yun@arm.com>

feat(lib): introduce Hob creation library

According to Platform Initialization (PI) Specification [1] and
discussion on edk2 mailing list [2],
StandaloneMm shouldn't create Hob but it should be pass

feat(lib): introduce Hob creation library

According to Platform Initialization (PI) Specification [1] and
discussion on edk2 mailing list [2],
StandaloneMm shouldn't create Hob but it should be passed from TF-A.
IOW, TF-A should pass boot information via HOB list to initialise
StandaloneMm properly.

And this HOB lists could be delivered via
- SPM_MM: Transfer List according to the firmware handoff spec[3]

- FF-A v1.1 >= : FF-A boot protocol.

This patch introduces a TF-A HOB creation library and
some of definitions which StandaloneMm requires to boot.

Link: https://uefi.org/sites/default/files/resources/PI_Spec_1_6.pdf [1]
Link: https://edk2.groups.io/g/devel/topic/103675962#114283 [2]
Link: https://github.com/FirmwareHandoff/firmware_handoff [3]
Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
Change-Id: I5e0838adce487110206998a8b79bc3adca922cec

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/docs/license.rst
/rk3399_ARM-atf/docs/plat/arm/automotive_rd/index.rst
/rk3399_ARM-atf/docs/plat/index.rst
/rk3399_ARM-atf/docs/plat/mt8188.rst
/rk3399_ARM-atf/docs/plat/mt8196.rst
/rk3399_ARM-atf/drivers/renesas/common/io/io_rcar.c
/rk3399_ARM-atf/fdts/rd1ae.dts
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/fdts/tc-fpga.dtsi
/rk3399_ARM-atf/fdts/tc-fvp.dtsi
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_alto.h
/rk3399_ARM-atf/include/lib/hob/efi_types.h
/rk3399_ARM-atf/include/lib/hob/hob.h
/rk3399_ARM-atf/include/lib/hob/hob_guid.h
/rk3399_ARM-atf/include/lib/hob/mmram.h
/rk3399_ARM-atf/include/lib/hob/mpinfo.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_alto.S
/rk3399_ARM-atf/lib/hob/hob.c
/rk3399_ARM-atf/lib/hob/hob.mk
defaults.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/fdts/rd1ae_fw_config.dts
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/fdts/rd1ae_optee_spmc_manifest.dts
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/platform.mk
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/rd1ae_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/rd1ae_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/rd1ae_plat.c
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_mailbox.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_reset_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_sip_svc.c
/rk3399_ARM-atf/plat/mediatek/drivers/gpio/mtgpio_common.h
/rk3399_ARM-atf/plat/mediatek/drivers/timer/mt_timer.h
/rk3399_ARM-atf/plat/mediatek/helpers/armv9/arch_helpers.S
/rk3399_ARM-atf/plat/mediatek/include/armv9/arch_def.h
/rk3399_ARM-atf/plat/mediatek/lib/pm/armv9_0/rules.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/include/plat_macros.S
/rk3399_ARM-atf/plat/mediatek/mt8196/include/plat_private.h
/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/plat_mmap.c
/rk3399_ARM-atf/plat/mediatek/mt8196/platform.mk
/rk3399_ARM-atf/plat/mediatek/topology/armv9/topology.c
/rk3399_ARM-atf/plat/renesas/rcar/platform.mk
/rk3399_ARM-atf/plat/rpi/common/include/rpi_shared.h
/rk3399_ARM-atf/plat/rpi/common/rpi3_common.c
/rk3399_ARM-atf/plat/rpi/common/rpi3_trusted_boot.c
/rk3399_ARM-atf/poetry.lock
/rk3399_ARM-atf/tools/renesas/rcar_layout_create/makefile
a7bbd8e711-Sep-2024 Chris Kay <chris.kay@arm.com>

build: use parameters in calls to `MAKE_DEP`

This is a small change to the behaviour of the `MAKE_DEP` macro to force
it to take its inputs as arguments, rather than assuming the variables
that its

build: use parameters in calls to `MAKE_DEP`

This is a small change to the behaviour of the `MAKE_DEP` macro to force
it to take its inputs as arguments, rather than assuming the variables
that its inputs come from.

Change-Id: Ibe44f19e6bea43c9feed34710cdd30704576b4d7
Signed-off-by: Chris Kay <chris.kay@arm.com>

show more ...

daab00cf03-Sep-2024 Chris Kay <chris.kay@arm.com>

build: disable suffix rules globally

This change centralises the logic that disables the default suffix rules
that Make provides. These rules are a hold-over from legacy standards of
Make, and occas

build: disable suffix rules globally

This change centralises the logic that disables the default suffix rules
that Make provides. These rules are a hold-over from legacy standards of
Make, and occasionally conflict with our rules.

Change-Id: I9e023edbc01b5ae48a96fa1078d0b81faabb0cb9
Signed-off-by: Chris Kay <chris.kay@arm.com>

show more ...

6e62281803-Sep-2024 Chris Kay <chris.kay@arm.com>

build: use full paths for generated libraries

This change modifies the build rules for static libraries so that
individual rules which use those libraries depend directly on the
archive files that a

build: use full paths for generated libraries

This change modifies the build rules for static libraries so that
individual rules which use those libraries depend directly on the
archive files that are generated, rather than their phony target aliases
and `-lX` link flags.

The goal of this is to clean up Make's view of the dependencies between
files, avoiding phony targets (which do not honour timestamps) making
their way into intermediate dependencies.

Change-Id: I96d655fcd94dc259ffa6e8970b2be7b8c7e11123
Signed-off-by: Chris Kay <chris.kay@arm.com>

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/bl31_traps.c
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/bl32/tsp/tsp_context.c
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/components/context-management-library.rst
/rk3399_ARM-atf/docs/conf.py
/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/fvp/fvp-support.rst
/rk3399_ARM-atf/docs/plat/arm/juno/index.rst
/rk3399_ARM-atf/docs/plat/arm/tc/index.rst
/rk3399_ARM-atf/docs/resources/diagrams/root_context_sequence.png
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_crypto.c
/rk3399_ARM-atf/fdts/stm32mp15xx-dhcom-som.dtsi
/rk3399_ARM-atf/fdts/tc3-4-base.dtsi
/rk3399_ARM-atf/include/bl32/tsp/tsp.h
/rk3399_ARM-atf/include/bl32/tsp/tsp_el1_context.h
/rk3399_ARM-atf/include/services/rmm_core_manifest.h
/rk3399_ARM-atf/lib/romlib/Makefile
build_macros.mk
/rk3399_ARM-atf/package-lock.json
/rk3399_ARM-atf/package.json
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/juno/platform.mk
/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/platform.mk
/rk3399_ARM-atf/plat/nxp/common/tbbr/tbbr.mk
/rk3399_ARM-atf/plat/qemu/common/qemu_common.c
/rk3399_ARM-atf/plat/qemu/qemu/include/platform_def.h
/rk3399_ARM-atf/plat/qemu/qemu/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/stm32mp2/bl31_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/pyproject.toml
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/tools/conventional-changelog-tf-a/package.json
5b9e703508-Nov-2024 Govindraj Raja <govindraj.raja@arm.com>

Merge "fix(build): correct feature assignment for ARM v8.8 compliance" into integration

7ea8852e08-Nov-2024 Yann Gautier <yann.gautier@st.com>

Merge changes If56ed0ab,I632236a1 into integration

* changes:
perf(build): don't check the compiler's flags for every target
perf(build): be clever about uppercasing

316f5c9710-Oct-2024 Boyan Karatotev <boyan.karatotev@arm.com>

perf(build): don't check the compiler's flags for every target

The TF_FLAGS variable must be recursively expanded as the rules that use
it are defined before it has been fully defined. That has the

perf(build): don't check the compiler's flags for every target

The TF_FLAGS variable must be recursively expanded as the rules that use
it are defined before it has been fully defined. That has the
unfortunate side effect of spawning a subshell that calls the compiler
for every file that is being built, thrashing multicore build times.

We don't cater to the possibility of the toolchain changing mid build so
precomputing this value would be more sensible. Doing a clean build on
an Intel dual socket Xeon Gold 5218 (i.e. 64 threads) workstation used
to take about 9 seconds. After this patch it takes about 1.5. Single
core performance went from ~45 seconds to about 25.

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

show more ...

f7a41fb410-Oct-2024 Boyan Karatotev <boyan.karatotev@arm.com>

perf(build): be clever about uppercasing

Most of the macros in build_macros.mk get lazily evaluated. That's
mostly fine, except for the fact that the `uppercase` macro needs to
spawn a subshell to g

perf(build): be clever about uppercasing

Most of the macros in build_macros.mk get lazily evaluated. That's
mostly fine, except for the fact that the `uppercase` macro needs to
spawn a subshell to get its output. And the target for every file
requires calling `uppercase` many, MANY, times, thrashing performance on
even the most trivial of make commands.

We can be a little clever and only call `uppercase` a handful of times
and then pass around the already uppercased strings.

The same is true about the verbosity augmentation variables. Simply
changing them to simply expanded variables allows for them to be
pre-processed and then used over and over again.

`make realclean` is a pretty good benchmark for this as it doesn't do
much else but must process all the rules, like every other make command.
On a clean checkout of TF-A on an Intel Xeon Gold 5218 (i.e. slow
single-core) workstation, that command used to take about 7 seconds.
With this patch it takes about 0.5.

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

show more ...

94ff1d9808-Nov-2024 Manish V Badarkhe <Manish.Badarkhe@arm.com>

fix(build): correct feature assignment for ARM v8.8 compliance

Correct feature list assignment to apply ARM v8.7 features
to `armv8-8-a-feats` instead of `armv8-7-a-feats` for ARM v8.8
compliance.
T

fix(build): correct feature assignment for ARM v8.8 compliance

Correct feature list assignment to apply ARM v8.7 features
to `armv8-8-a-feats` instead of `armv8-7-a-feats` for ARM v8.8
compliance.
This was highlighted during the build of TC4 with ARM_ARCH_MAJOR=8
and ARM_ARCH_MINOR=8.

Change-Id: I6c48a3ffa2f1e18d5e4a6484a823c9112dddd751
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>

show more ...

b40bc36c07-Nov-2024 Yann Gautier <yann.gautier@st.com>

Merge "build(bl31): support separated memory for RW DATA" into integration

19d52a8309-Aug-2024 Andre Przywara <andre.przywara@arm.com>

feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA

Armv8.6 introduced the FEAT_LS64 extension, which provides a 64 *byte*
store instruction. A related instruction is ST64BV0, which will replace
the lowest

feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA

Armv8.6 introduced the FEAT_LS64 extension, which provides a 64 *byte*
store instruction. A related instruction is ST64BV0, which will replace
the lowest 32 bits of the data with a value taken from the ACCDATA_EL1
system register (so that EL0 cannot alter them).
Using that ST64BV0 instruction and accessing the ACCDATA_EL1 system
register is guarded by two SCR_EL3 bits, which we should set to avoid a
trap into EL3, when lower ELs use one of those.

Add the required bits and pieces to make this feature usable:
- Add the ENABLE_FEAT_LS64_ACCDATA build option (defaulting to 0).
- Add the CPUID and SCR_EL3 bit definitions associated with FEAT_LS64.
- Add a feature check to check for the existing four variants of the
LS64 feature and detect future extensions.
- Add code to save and restore the ACCDATA_EL1 register on
secure/non-secure context switches.
- Enable the feature with runtime detection for FVP and Arm FPGA.

Please note that the *basic* FEAT_LS64 feature does not feature any trap
bits, it's only the addition of the ACCDATA_EL1 system register that
adds these traps and the SCR_EL3 bits.

Change-Id: Ie3e2ca2d9c4fbbd45c0cc6089accbb825579138a
Signed-off-by: Andre Przywara <andre.przywara@arm.com>

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/components/rmm-el3-comms-spec.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/global_substitutions.txt
/rk3399_ARM-atf/docs/glossary.rst
/rk3399_ARM-atf/docs/porting-guide.rst
/rk3399_ARM-atf/docs/threat_model/firmware_threat_model/threat_model.rst
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_c_initphyconfig.c
/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/lib/el3_runtime/context_el1.h
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
arch_features.mk
/rk3399_ARM-atf/plat/amd/versal2/aarch64/common.c
/rk3399_ARM-atf/plat/amd/versal2/include/scmi.h
/rk3399_ARM-atf/plat/amd/versal2/plat_psci.c
/rk3399_ARM-atf/plat/arm/board/arm_fpga/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/mediatek/include/plat_helpers.h
/rk3399_ARM-atf/plat/st/common/common_rules.mk
/rk3399_ARM-atf/plat/st/stm32mp2/include/platform_def.h
/rk3399_ARM-atf/plat/st/stm32mp2/plat_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/st/stm32mp2/platform.mk
/rk3399_ARM-atf/plat/xilinx/common/plat_clkfunc.c
/rk3399_ARM-atf/plat/xilinx/common/versal.c
/rk3399_ARM-atf/plat/xilinx/versal/include/plat_private.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/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/custom_sip_svc.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_topology.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
86acbbe226-Aug-2022 Ye Li <ye.li@nxp.com>

build(bl31): support separated memory for RW DATA

Update linker file and init codes to allow using separated
memory region for RW DATA. Init codes will copy the RW DATA
from the image to the linked

build(bl31): support separated memory for RW DATA

Update linker file and init codes to allow using separated
memory region for RW DATA. Init codes will copy the RW DATA
from the image to the linked address.

On some NXP platforms, after the BL31 image has been verified,
the bl31 image space will be locked/protected as RO only, so
need to move the RW DATA and NOBITS out of the bl31 image.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I361d9a715890961bf30790a3325f8085a40c0c39

show more ...

e01bcfb004-Nov-2024 Manish V Badarkhe <manish.badarkhe@arm.com>

Merge "build: fix grouped targets on Make <= 4.2" into integration


/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/drivers/cadence/emmc/cdns_sdmmc.c
/rk3399_ARM-atf/include/drivers/cadence/cdns_sdmmc.h
/rk3399_ARM-atf/lib/romlib/Makefile
utilities.mk
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/amd/versal2/plat_psci.c
/rk3399_ARM-atf/plat/amd/versal2/scmi.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/arm/board/tc/platform.mk
/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/include/agilex5_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/platform.mk
/rk3399_ARM-atf/plat/intel/soc/common/drivers/sdmmc/sdmmc.c
/rk3399_ARM-atf/plat/intel/soc/common/drivers/sdmmc/sdmmc.h
/rk3399_ARM-atf/plat/intel/soc/common/include/platform_def.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/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/intel/soc/common/socfpga_storage.c
/rk3399_ARM-atf/plat/intel/soc/n5x/include/socfpga_plat_def.h
/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/mediatek/drivers/rng/mt8186/rng_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/rng/mt8186/rng_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/rng/mt8188/rng_plat.c
/rk3399_ARM-atf/plat/mediatek/drivers/rng/mt8188/rng_plat.h
/rk3399_ARM-atf/plat/mediatek/drivers/rng/rng.c
/rk3399_ARM-atf/plat/mediatek/drivers/rng/rules.mk
/rk3399_ARM-atf/plat/mediatek/mt8186/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8186/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt8188/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt8188/plat_config.mk
/rk3399_ARM-atf/plat/mediatek/mt8188/platform.mk
/rk3399_ARM-atf/plat/rockchip/common/include/plat_macros.S
/rk3399_ARM-atf/plat/ti/k3/common/drivers/ti_sci/ti_sci.c
/rk3399_ARM-atf/plat/ti/k3/common/drivers/ti_sci/ti_sci.h
/rk3399_ARM-atf/plat/ti/k3/common/drivers/ti_sci/ti_sci_protocol.h
/rk3399_ARM-atf/plat/ti/k3/common/k3_psci.c
/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/plat_startup.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/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/versal/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/plat/xilinx/versal_net/plat_psci_pm.c
/rk3399_ARM-atf/plat/xilinx/versal_net/sip_svc_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_zynqmp.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/pm_api_pinctrl.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_svc_main.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/sip_svc_setup.c
8936321928-Oct-2024 Manish Pandey <manish.pandey2@arm.com>

Merge "feat(d128): add support for FEAT_D128" into integration

a57b94ec06-Aug-2024 Chris Kay <chris.kay@arm.com>

build: fix grouped targets on Make <= 4.2

Grouped targets are a feature introduced with GNU Make 4.3 which enable
rules with multiple targets to communicate that all of the targets of
that rule are

build: fix grouped targets on Make <= 4.2

Grouped targets are a feature introduced with GNU Make 4.3 which enable
rules with multiple targets to communicate that all of the targets of
that rule are built simultaneously, rather than independently.

For example, without grouped targets the following rule may be executed
twice:

a.txt b.txt:
touch a.txt b.txt

# $ remake -j2 a.txt b.txt
# touch a.txt b.txt
# touch a.txt b.txt

In this example, both `a.txt` and `b.txt` are touched twice, when the
rule should only be executed once. Instead, this rule can use a grouped
target:

a.txt b.txt &:
touch a.txt b.txt

# $ remake -j2 a.txt b.txt
# touch a.txt b.txt
# remake: 'b.txt' is up to date.

In this case, both `a.txt` and `b.txt` are created once only, as Make
now knows that the recipe will create both files.

Note that pattern rules with multiple targets always behave this way.

Previously, we assumed that the grouped target feature was available,
but on systems still packaging Make 4.2, most prominently Ubuntu 20.04,
this is not the case. This change adds a check to ensure that we do not
use grouped targets if they are unavailable.

Change-Id: Ifd9da35421ae11468d7a25d3cbc76f6036921749
Signed-off-by: Chris Kay <chris.kay@arm.com>

show more ...

98e7a83e25-Oct-2024 Govindraj Raja <govindraj.raja@arm.com>

Merge "fix(mte): remove deprecated CTX_INCLUDE_MTE_REGS/FEAT_MTE" into integration


/rk3399_ARM-atf/.editorconfig
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/about/release-information.rst
/rk3399_ARM-atf/docs/components/secure-partition-manager.rst
/rk3399_ARM-atf/drivers/delay_timer/delay_timer.c
/rk3399_ARM-atf/drivers/delay_timer/generic_delay_timer.c
/rk3399_ARM-atf/fdts/stm32mp25-bl2.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-bl31.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-ev1-ca35tdcid-fw-config.dtsi
/rk3399_ARM-atf/include/arch/aarch64/arch.h
/rk3399_ARM-atf/include/arch/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/cadence/cdns_sdmmc.h
/rk3399_ARM-atf/include/drivers/delay_timer.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720_ae.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_arcadia.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/lib/el3_runtime/cpu_data.h
/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_a720_ae.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_arcadia.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/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/brbe/brbe.c
/rk3399_ARM-atf/lib/psci/aarch64/psci_helpers.S
/rk3399_ARM-atf/lib/psci/psci_lib.mk
arch_features.mk
/rk3399_ARM-atf/plat/allwinner/sun50i_a64/platform.mk
/rk3399_ARM-atf/plat/allwinner/sun50i_a64/platform_defaults.mk
/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/platform_def.h
/rk3399_ARM-atf/plat/amd/versal2/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/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/include/agilex_memory_controller.h
/rk3399_ARM-atf/plat/intel/soc/agilex/include/agilex_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/agilex/include/socfpga_plat_def.h
/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_cache.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_clock_manager.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_ddr.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_iossm_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_pinmux.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/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_cache.S
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_clock_manager.c
/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/agilex5/soc/agilex5_pinmux.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_power_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/intel/soc/common/drivers/ccu/ncore_ccu.c
/rk3399_ARM-atf/plat/intel/soc/common/drivers/ccu/ncore_ccu.h
/rk3399_ARM-atf/plat/intel/soc/common/include/platform_def.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_handoff.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_private.h
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_mailbox.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_reset_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_delay_timer.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_image_load.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_psci.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_storage.c
/rk3399_ARM-atf/plat/intel/soc/n5x/include/n5x_clock_manager.h
/rk3399_ARM-atf/plat/intel/soc/n5x/include/n5x_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/n5x/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/stratix10/include/s10_memory_controller.h
/rk3399_ARM-atf/plat/intel/soc/stratix10/include/s10_system_manager.h
/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/mediatek/mt8192/drivers/emi_mpu/emi_mpu.c
/rk3399_ARM-atf/plat/mediatek/mt8195/drivers/emi_mpu/emi_mpu.c
/rk3399_ARM-atf/plat/st/common/stm32mp_fconf_io.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl31_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/plat_bl2_mem_params_desc.c
/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/plat_xfer_list.h
/rk3399_ARM-atf/plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.c
/rk3399_ARM-atf/plat/xilinx/common/plat_xfer_list.c
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.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/zynqmp_pm_api_sys.c
3065513606-Sep-2024 Govindraj Raja <govindraj.raja@arm.com>

feat(d128): add support for FEAT_D128

This patch disables trapping to EL3 when the FEAT_D128
specific registers are accessed by setting the SCR_EL3.D128En bit.

If FEAT_D128 is implemented, then FEA

feat(d128): add support for FEAT_D128

This patch disables trapping to EL3 when the FEAT_D128
specific registers are accessed by setting the SCR_EL3.D128En bit.

If FEAT_D128 is implemented, then FEAT_SYSREG128 is implemented.
With FEAT_SYSREG128 certain system registers are treated as 128-bit,
so we should be context saving and restoring 128-bits instead of 64-bit
when FEAT_D128 is enabled.

FEAT_SYSREG128 adds support for MRRS and MSRR instruction which
helps us to read write to 128-bit system register.
Refer to Arm Architecture Manual for further details.

Change the FVP platform to default to handling this as a dynamic option
so the right decision can be made by the code at runtime.

Change-Id: I1a53db5eac29e56c8fbdcd4961ede3abfcb2411a
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>

show more ...


/rk3399_ARM-atf/.editorconfig
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/changelog.yaml
/rk3399_ARM-atf/common/feat_detect.c
/rk3399_ARM-atf/docs/about/maintainers.rst
/rk3399_ARM-atf/docs/getting_started/build-options.rst
/rk3399_ARM-atf/drivers/delay_timer/delay_timer.c
/rk3399_ARM-atf/drivers/delay_timer/generic_delay_timer.c
/rk3399_ARM-atf/fdts/stm32mp25-bl2.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-bl31.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-fw-config.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-ev1-ca35tdcid-fw-config.dtsi
/rk3399_ARM-atf/include/arch/aarch32/arch.h
/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/el3_common_macros.S
/rk3399_ARM-atf/include/common/par.h
/rk3399_ARM-atf/include/drivers/cadence/cdns_sdmmc.h
/rk3399_ARM-atf/include/drivers/delay_timer.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a720_ae.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_arcadia.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/lib/el3_runtime/context_el1.h
/rk3399_ARM-atf/include/lib/el3_runtime/context_el2.h
/rk3399_ARM-atf/include/lib/el3_runtime/cpu_data.h
/rk3399_ARM-atf/include/lib/extensions/sysreg128.h
/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_a720_ae.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_arcadia.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/el3_runtime/aarch64/context.S
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/lib/extensions/brbe/brbe.c
/rk3399_ARM-atf/lib/extensions/sysreg128/sysreg128.S
/rk3399_ARM-atf/lib/psci/aarch64/psci_helpers.S
/rk3399_ARM-atf/lib/psci/psci_lib.mk
/rk3399_ARM-atf/lib/xlat_tables/aarch64/xlat_tables.c
/rk3399_ARM-atf/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
arch_features.mk
/rk3399_ARM-atf/plat/allwinner/sun50i_a64/platform.mk
/rk3399_ARM-atf/plat/allwinner/sun50i_a64/platform_defaults.mk
/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/platform_def.h
/rk3399_ARM-atf/plat/amd/versal2/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/common/arm_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/include/agilex_memory_controller.h
/rk3399_ARM-atf/plat/intel/soc/agilex/include/agilex_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/agilex/include/socfpga_plat_def.h
/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_cache.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_ddr.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_iossm_mailbox.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/include/agilex5_pinmux.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/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/agilex5/platform.mk
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_cache.S
/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/agilex5/soc/agilex5_pinmux.c
/rk3399_ARM-atf/plat/intel/soc/agilex5/soc/agilex5_power_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/intel/soc/common/drivers/ccu/ncore_ccu.c
/rk3399_ARM-atf/plat/intel/soc/common/drivers/ccu/ncore_ccu.h
/rk3399_ARM-atf/plat/intel/soc/common/include/platform_def.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_handoff.h
/rk3399_ARM-atf/plat/intel/soc/common/include/socfpga_private.h
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_mailbox.c
/rk3399_ARM-atf/plat/intel/soc/common/soc/socfpga_reset_manager.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_delay_timer.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_image_load.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_psci.c
/rk3399_ARM-atf/plat/intel/soc/common/socfpga_storage.c
/rk3399_ARM-atf/plat/intel/soc/n5x/include/n5x_clock_manager.h
/rk3399_ARM-atf/plat/intel/soc/n5x/include/n5x_system_manager.h
/rk3399_ARM-atf/plat/intel/soc/n5x/include/socfpga_plat_def.h
/rk3399_ARM-atf/plat/intel/soc/stratix10/include/s10_memory_controller.h
/rk3399_ARM-atf/plat/intel/soc/stratix10/include/s10_system_manager.h
/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/mediatek/mt8192/drivers/emi_mpu/emi_mpu.c
/rk3399_ARM-atf/plat/mediatek/mt8195/drivers/emi_mpu/emi_mpu.c
/rk3399_ARM-atf/plat/st/common/stm32mp_fconf_io.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl2_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/bl31_plat_setup.c
/rk3399_ARM-atf/plat/st/stm32mp2/plat_bl2_mem_params_desc.c
/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/plat_xfer_list.h
/rk3399_ARM-atf/plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.c
/rk3399_ARM-atf/plat/xilinx/common/plat_xfer_list.c
/rk3399_ARM-atf/plat/xilinx/versal/plat_psci.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/zynqmp_pm_api_sys.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd.mk
6f2b881024-Oct-2024 Sona Mathew <sonarebecca.mathew@arm.com>

fix(mte): remove deprecated CTX_INCLUDE_MTE_REGS/FEAT_MTE

Remove all instances of macros CTX_INCLUDE_MTE_REGS and FEAT_MTE
since these have been deprecated in v2.11

Change-Id: I7838a865755326f03668

fix(mte): remove deprecated CTX_INCLUDE_MTE_REGS/FEAT_MTE

Remove all instances of macros CTX_INCLUDE_MTE_REGS and FEAT_MTE
since these have been deprecated in v2.11

Change-Id: I7838a865755326f03668e43768140929a2d9e418
Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/docs/about/release-information.rst
/rk3399_ARM-atf/docs/components/secure-partition-manager.rst
/rk3399_ARM-atf/docs/design/cpu-specific-build-macros.rst
/rk3399_ARM-atf/docs/getting_started/prerequisites.rst
/rk3399_ARM-atf/docs/plat/index.rst
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/include/s32cc-clk-regs.h
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/include/s32cc-mc-me.h
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/include/s32cc-mc-rgm.h
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/mc_me.c
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/mc_rgm.c
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_clk.mk
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_clk_drv.c
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_clk_modules.c
/rk3399_ARM-atf/drivers/nxp/clk/s32cc/s32cc_early_clks.c
/rk3399_ARM-atf/drivers/st/ddr/phy/firmware/include/mnpmusrammsgblock_ddr3.h
/rk3399_ARM-atf/drivers/st/ddr/phy/firmware/include/mnpmusrammsgblock_ddr4.h
/rk3399_ARM-atf/drivers/st/ddr/phy/firmware/include/mnpmusrammsgblock_lpddr4.h
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/include/ddrphy_csr_all_cdefines.h
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/include/ddrphy_phyinit.h
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/include/ddrphy_phyinit_struct.h
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/include/ddrphy_phyinit_usercustom.h
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/include/ddrphy_wrapper.h
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_c_initphyconfig.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_calcmb.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_d_loadimem.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_f_loaddmem.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_g_execfw.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_i_loadpieimage.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_initstruct.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_isdbytedisabled.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_loadpieprodcode.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_mapdrvstren.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_progcsrskiptrain.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_reginterface.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_restore_sequence.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_sequence.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_softsetmb.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/src/ddrphy_phyinit_writeoutmem.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/usercustom/ddrphy_phyinit_usercustom_custompretrain.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/usercustom/ddrphy_phyinit_usercustom_g_waitfwdone.c
/rk3399_ARM-atf/drivers/st/ddr/phy/phyinit/usercustom/ddrphy_phyinit_usercustom_saveretregs.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp1_ddr.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp2_ddr.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp2_ddr_helpers.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp2_ram.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp_ddr.c
/rk3399_ARM-atf/drivers/st/ddr/stm32mp_ddr_test.c
/rk3399_ARM-atf/drivers/st/pmic/stm32mp_pmic.c
/rk3399_ARM-atf/fdts/stm32mp25-ddr.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-ddr4-2x16Gbits-2x16bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp25-ddr4-2x8Gbits-2x16bits-1200MHz.dtsi
/rk3399_ARM-atf/fdts/stm32mp251.dtsi
/rk3399_ARM-atf/fdts/stm32mp257f-ev1.dts
/rk3399_ARM-atf/fdts/tc-base.dtsi
/rk3399_ARM-atf/include/drivers/nxp/clk/s32cc/s32cc-clk-ids.h
/rk3399_ARM-atf/include/drivers/nxp/clk/s32cc/s32cc-clk-modules.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_ddr.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_ddr_helpers.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_ddr_regs.h
/rk3399_ARM-atf/include/drivers/st/stm32mp2_ram.h
/rk3399_ARM-atf/include/drivers/st/stm32mp_ddr.h
/rk3399_ARM-atf/include/drivers/st/stm32mp_ddrctrl_regs.h
/rk3399_ARM-atf/include/drivers/st/stm32mp_pmic.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a75.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_x4.h
/rk3399_ARM-atf/include/lib/cpus/errata.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a75.S
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_x4.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/cpus/errata_common.c
/rk3399_ARM-atf/lib/el3_runtime/aarch64/context_mgmt.c
arch_features.mk
/rk3399_ARM-atf/plat/amd/versal2/bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/tc/fdts/tc_spmc_manifest.dtsi
/rk3399_ARM-atf/plat/arm/board/tc/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/tc/platform_test.mk
/rk3399_ARM-atf/plat/intel/soc/common/drivers/ccu/ncore_ccu.c
/rk3399_ARM-atf/plat/intel/soc/common/drivers/ccu/ncore_ccu.h
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/include/s32cc-ncore.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/platform.mk
/rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/s32cc_ncore.c
/rk3399_ARM-atf/plat/st/common/include/stm32mp_common.h
/rk3399_ARM-atf/plat/st/stm32mp1/plat_ddr.c
/rk3399_ARM-atf/plat/st/stm32mp1/platform.mk
/rk3399_ARM-atf/plat/st/stm32mp1/stm32mp1_private.c
/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/plat_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/st/stm32mp2/plat_ddr.c
/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/ipi_mailbox_service/ipi_mailbox_svc.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_net/bl31_versal_net_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/custom_sip_svc.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

12345678910>>...21