History log of /rk3399_ARM-atf/bl1/aarch64/ (Results 51 – 75 of 92)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
52010cc719-May-2015 Sandrine Bailleux <sandrine.bailleux@arm.com>

Rationalize reset handling code

The attempt to run the CPU reset code as soon as possible after reset
results in highly complex conditional code relating to the
RESET_TO_BL31 option.

This patch rel

Rationalize reset handling code

The attempt to run the CPU reset code as soon as possible after reset
results in highly complex conditional code relating to the
RESET_TO_BL31 option.

This patch relaxes this requirement a little. In the BL1, BL3-1 and
PSCI entrypoints code, the sequence of operations is now as follows:
1) Detect whether it is a cold or warm boot;
2) For cold boot, detect whether it is the primary or a secondary
CPU. This is needed to handle multiple CPUs entering cold reset
simultaneously;
3) Run the CPU init code.

This patch also abstracts the EL3 registers initialisation done by
the BL1, BL3-1 and PSCI entrypoints into common code.

This improves code re-use and consolidates the code flows for
different types of systems.

NOTE: THE FUNCTION plat_secondary_cold_boot() IS NOW EXPECTED TO
NEVER RETURN. THIS PATCH FORCES PLATFORM PORTS THAT RELIED ON THE
FORMER RETRY LOOP AT THE CALL SITE TO MODIFY THEIR IMPLEMENTATION.
OTHERWISE, SECONDARY CPUS WILL PANIC.

Change-Id: If5ecd74d75bee700b1bd718d23d7556b8f863546

show more ...


/rk3399_ARM-atf/Makefile
bl1_entrypoint.S
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/bl32/tsp/tsp_interrupt.c
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/pl011/pl011_console.S
/rk3399_ARM-atf/drivers/arm/tzc400/tzc400.c
/rk3399_ARM-atf/drivers/console/console.S
/rk3399_ARM-atf/drivers/console/skeleton_console.S
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/rk3399_ARM-atf/include/bl32/payloads/tlk.h
/rk3399_ARM-atf/include/common/asm_macros.S
/rk3399_ARM-atf/include/common/assert_macros.S
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/arm/tzc400.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/plat/arm/board/common/board_arm_def.h
/rk3399_ARM-atf/include/plat/arm/board/common/board_arm_oid.h
/rk3399_ARM-atf/include/plat/arm/board/common/board_css_def.h
/rk3399_ARM-atf/include/plat/arm/board/common/v2m_def.h
/rk3399_ARM-atf/include/plat/arm/common/aarch64/arm_macros.S
/rk3399_ARM-atf/include/plat/arm/common/arm_config.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/arm/css/common/aarch64/css_macros.S
/rk3399_ARM-atf/include/plat/arm/css/common/css_def.h
/rk3399_ARM-atf/include/plat/arm/soc/common/soc_css.h
/rk3399_ARM-atf/include/plat/arm/soc/common/soc_css_def.h
/rk3399_ARM-atf/include/plat/common/common_def.h
/rk3399_ARM-atf/lib/cpus/aarch64/aem_generic.S
/rk3399_ARM-atf/plat/arm/board/common/aarch64/board_arm_helpers.S
/rk3399_ARM-atf/plat/arm/board/common/board_arm_trusted_boot.c
/rk3399_ARM-atf/plat/arm/board/common/board_css.mk
/rk3399_ARM-atf/plat/arm/board/common/board_css_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.c
/rk3399_ARM-atf/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.h
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl1_setup.c
/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_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_io_storage.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_private.h
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_topology.c
/rk3399_ARM-atf/plat/arm/board/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/fvp/include/platform_oid.h
/rk3399_ARM-atf/plat/arm/board/fvp/platform.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/juno/aarch64/juno_helpers.S
/rk3399_ARM-atf/plat/arm/board/juno/include/plat_macros.S
/rk3399_ARM-atf/plat/arm/board/juno/include/platform_def.h
/rk3399_ARM-atf/plat/arm/board/juno/include/platform_oid.h
/rk3399_ARM-atf/plat/arm/board/juno/juno_def.h
/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/juno/tsp/tsp-juno.mk
/rk3399_ARM-atf/plat/arm/common/aarch64/arm_common.c
/rk3399_ARM-atf/plat/arm/common/aarch64/arm_helpers.S
/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_io_storage.c
/rk3399_ARM-atf/plat/arm/common/arm_pm.c
/rk3399_ARM-atf/plat/arm/common/arm_security.c
/rk3399_ARM-atf/plat/arm/common/arm_topology.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/aarch64/css_helpers.S
/rk3399_ARM-atf/plat/arm/css/common/css_bl2_setup.c
/rk3399_ARM-atf/plat/arm/css/common/css_common.c
/rk3399_ARM-atf/plat/arm/css/common/css_common.mk
/rk3399_ARM-atf/plat/arm/css/common/css_mhu.c
/rk3399_ARM-atf/plat/arm/css/common/css_mhu.h
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/arm/css/common/css_scp_bootloader.c
/rk3399_ARM-atf/plat/arm/css/common/css_scp_bootloader.h
/rk3399_ARM-atf/plat/arm/css/common/css_scpi.c
/rk3399_ARM-atf/plat/arm/css/common/css_scpi.h
/rk3399_ARM-atf/plat/arm/soc/common/soc_css.mk
/rk3399_ARM-atf/plat/arm/soc/common/soc_css_security.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd_main.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_on.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/tools/cert_create/Makefile
8b77962024-Mar-2015 Kévin Petit <kevin.petit@arm.com>

Add support to indicate size and end of assembly functions

In order for the symbol table in the ELF file to contain the size of
functions written in assembly, it is necessary to report it to the
ass

Add support to indicate size and end of assembly functions

In order for the symbol table in the ELF file to contain the size of
functions written in assembly, it is necessary to report it to the
assembler using the .size directive.

To fulfil the above requirements, this patch introduces an 'endfunc'
macro which contains the .endfunc and .size directives. It also adds
a .func directive to the 'func' assembler macro.

The .func/.endfunc have been used so the assembler can fail if
endfunc is omitted.

Fixes ARM-Software/tf-issues#295

Change-Id: If8cb331b03d7f38fe7e3694d4de26f1075b278fc
Signed-off-by: Kévin Petit <kevin.petit@arm.com>

show more ...


/rk3399_ARM-atf/.gitignore
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/acknowledgements.md
bl1_entrypoint.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/bl31/aarch64/bl31_arch_setup.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/context.S
/rk3399_ARM-atf/bl31/aarch64/cpu_data.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/interrupt_mgmt.c
/rk3399_ARM-atf/bl31/runtime_svc.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_request.S
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/common/aarch64/debug.S
/rk3399_ARM-atf/common/auth.c
/rk3399_ARM-atf/common/auth/polarssl/polarssl.c
/rk3399_ARM-atf/common/auth/polarssl/polarssl.mk
/rk3399_ARM-atf/common/auth/polarssl/polarssl_config.h
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/tf_printf.c
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/cpu-specific-build-macros.md
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/rt-svc-writers-guide.md
/rk3399_ARM-atf/docs/tlk-dispatcher.md
/rk3399_ARM-atf/docs/trusted-board-boot.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/cci/cci.c
/rk3399_ARM-atf/drivers/arm/cci400/cci400.c
/rk3399_ARM-atf/drivers/arm/gic/arm_gic.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011_console.S
/rk3399_ARM-atf/drivers/io/io_fip.c
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/rk3399_ARM-atf/include/bl31/cpu_data.h
/rk3399_ARM-atf/include/bl31/interrupt_mgmt.h
/rk3399_ARM-atf/include/bl31/runtime_svc.h
/rk3399_ARM-atf/include/bl31/services/psci.h
/rk3399_ARM-atf/include/bl32/payloads/tlk.h
/rk3399_ARM-atf/include/common/asm_macros.S
/rk3399_ARM-atf/include/common/auth.h
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/common/firmware_image_package.h
/rk3399_ARM-atf/include/drivers/arm/cci.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/bakery_lock.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a72.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/include/stdlib/inttypes.h
/rk3399_ARM-atf/include/stdlib/machine/_inttypes.h
/rk3399_ARM-atf/include/stdlib/stdio.h
/rk3399_ARM-atf/include/stdlib/stdlib.h
/rk3399_ARM-atf/include/stdlib/string.h
/rk3399_ARM-atf/include/stdlib/strings.h
/rk3399_ARM-atf/include/stdlib/sys/_timespec.h
/rk3399_ARM-atf/include/stdlib/sys/timespec.h
/rk3399_ARM-atf/include/stdlib/sys/types.h
/rk3399_ARM-atf/include/stdlib/time.h
/rk3399_ARM-atf/include/stdlib/xlocale/_strings.h
/rk3399_ARM-atf/include/stdlib/xlocale/_time.h
/rk3399_ARM-atf/lib/aarch64/cache_helpers.S
/rk3399_ARM-atf/lib/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/aarch64/xlat_tables.c
/rk3399_ARM-atf/lib/cpus/aarch64/aem_generic.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_a72.S
/rk3399_ARM-atf/lib/cpus/aarch64/cpu_helpers.S
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock_coherent.c
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock_normal.c
/rk3399_ARM-atf/lib/locks/exclusive/spinlock.S
/rk3399_ARM-atf/lib/semihosting/aarch64/semihosting_call.S
/rk3399_ARM-atf/lib/stdlib/exit.c
/rk3399_ARM-atf/lib/stdlib/sscanf.c
/rk3399_ARM-atf/lib/stdlib/std.c
/rk3399_ARM-atf/lib/stdlib/strcmp.c
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/common/aarch64/platform_mp_stack.S
/rk3399_ARM-atf/plat/common/aarch64/platform_up_stack.S
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/bl2_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/fvp_def.h
/rk3399_ARM-atf/plat/fvp/fvp_io_storage.c
/rk3399_ARM-atf/plat/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/fvp/fvp_private.h
/rk3399_ARM-atf/plat/fvp/fvp_security.c
/rk3399_ARM-atf/plat/fvp/fvp_topology.c
/rk3399_ARM-atf/plat/fvp/fvp_trusted_boot.c
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/fvp/include/platform_oid.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/plat/juno/aarch64/bl1_plat_helpers.S
/rk3399_ARM-atf/plat/juno/aarch64/juno_common.c
/rk3399_ARM-atf/plat/juno/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/juno/bl1_plat_setup.c
/rk3399_ARM-atf/plat/juno/bl31_plat_setup.c
/rk3399_ARM-atf/plat/juno/include/plat_macros.S
/rk3399_ARM-atf/plat/juno/include/platform_def.h
/rk3399_ARM-atf/plat/juno/include/platform_oid.h
/rk3399_ARM-atf/plat/juno/juno_def.h
/rk3399_ARM-atf/plat/juno/juno_private.h
/rk3399_ARM-atf/plat/juno/juno_trusted_boot.c
/rk3399_ARM-atf/plat/juno/plat_io_storage.c
/rk3399_ARM-atf/plat/juno/plat_pm.c
/rk3399_ARM-atf/plat/juno/plat_security.c
/rk3399_ARM-atf/plat/juno/plat_topology.c
/rk3399_ARM-atf/plat/juno/platform.mk
/rk3399_ARM-atf/readme.md
/rk3399_ARM-atf/services/spd/opteed/opteed_helpers.S
/rk3399_ARM-atf/services/spd/opteed/opteed_pm.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd.mk
/rk3399_ARM-atf/services/spd/tlkd/tlkd_common.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd_helpers.S
/rk3399_ARM-atf/services/spd/tlkd/tlkd_main.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd_pm.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd_private.h
/rk3399_ARM-atf/services/spd/tspd/tspd.mk
/rk3399_ARM-atf/services/spd/tspd/tspd_helpers.S
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/services/spd/tspd/tspd_pm.c
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_off.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_on.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/services/std_svc/psci/psci_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/services/std_svc/psci/psci_helpers.S
/rk3399_ARM-atf/services/std_svc/psci/psci_main.c
/rk3399_ARM-atf/services/std_svc/psci/psci_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_setup.c
/rk3399_ARM-atf/services/std_svc/psci/psci_system_off.c
/rk3399_ARM-atf/tools/cert_create/Makefile
/rk3399_ARM-atf/tools/cert_create/include/cert.h
/rk3399_ARM-atf/tools/cert_create/include/debug.h
/rk3399_ARM-atf/tools/cert_create/include/ext.h
/rk3399_ARM-atf/tools/cert_create/include/key.h
/rk3399_ARM-atf/tools/cert_create/include/sha.h
/rk3399_ARM-atf/tools/cert_create/include/tbb_cert.h
/rk3399_ARM-atf/tools/cert_create/include/tbb_ext.h
/rk3399_ARM-atf/tools/cert_create/include/tbb_key.h
/rk3399_ARM-atf/tools/cert_create/src/cert.c
/rk3399_ARM-atf/tools/cert_create/src/ext.c
/rk3399_ARM-atf/tools/cert_create/src/key.c
/rk3399_ARM-atf/tools/cert_create/src/main.c
/rk3399_ARM-atf/tools/cert_create/src/sha.c
/rk3399_ARM-atf/tools/cert_create/src/tbb_cert.c
/rk3399_ARM-atf/tools/cert_create/src/tbb_ext.c
/rk3399_ARM-atf/tools/cert_create/src/tbb_key.c
/rk3399_ARM-atf/tools/fip_create/fip_create.c
/rk3399_ARM-atf/tools/fip_create/fip_create.h
ab8707e608-Jan-2015 Soby Mathew <soby.mathew@arm.com>

Remove coherent memory from the BL memory maps

This patch extends the build option `USE_COHERENT_MEMORY` to
conditionally remove coherent memory from the memory maps of
all boot loader stages. The p

Remove coherent memory from the BL memory maps

This patch extends the build option `USE_COHERENT_MEMORY` to
conditionally remove coherent memory from the memory maps of
all boot loader stages. The patch also adds necessary
documentation for coherent memory removal in firmware-design,
porting and user guides.

Fixes ARM-Software/tf-issues#106

Change-Id: I260e8768c6a5c2efc402f5804a80657d8ce38773

show more ...


/rk3399_ARM-atf/Makefile
bl1_entrypoint.S
/rk3399_ARM-atf/bl1/bl1.ld.S
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/bl31.ld.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/context_mgmt.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/tsp.ld.S
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/cpu-specific-build-macros.md
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/interrupt-framework-design.md
/rk3399_ARM-atf/docs/optee-dispatcher.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/rt-svc-writers-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/gic/arm_gic.c
/rk3399_ARM-atf/drivers/arm/gic/gic_v2.c
/rk3399_ARM-atf/drivers/arm/tzc400/tzc400.c
/rk3399_ARM-atf/include/bl31/cpu_data.h
/rk3399_ARM-atf/include/bl31/services/psci.h
/rk3399_ARM-atf/include/drivers/arm/gic_v2.h
/rk3399_ARM-atf/include/drivers/arm/tzc400.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/aarch64/xlat_tables.h
/rk3399_ARM-atf/include/lib/bakery_lock.h
/rk3399_ARM-atf/lib/aarch64/cache_helpers.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/cpu_helpers.S
/rk3399_ARM-atf/lib/cpus/cpu-ops.mk
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock_coherent.c
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock_normal.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/bl1_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/drivers/pwrc/fvp_pwrc.c
/rk3399_ARM-atf/plat/fvp/fvp_def.h
/rk3399_ARM-atf/plat/fvp/fvp_private.h
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/plat/fvp/tsp/tsp_fvp_setup.c
/rk3399_ARM-atf/plat/juno/aarch64/juno_common.c
/rk3399_ARM-atf/plat/juno/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/juno/bl1_plat_setup.c
/rk3399_ARM-atf/plat/juno/bl2_plat_setup.c
/rk3399_ARM-atf/plat/juno/bl31_plat_setup.c
/rk3399_ARM-atf/plat/juno/include/plat_macros.S
/rk3399_ARM-atf/plat/juno/include/platform_def.h
/rk3399_ARM-atf/plat/juno/juno_def.h
/rk3399_ARM-atf/plat/juno/juno_private.h
/rk3399_ARM-atf/plat/juno/mhu.c
/rk3399_ARM-atf/plat/juno/plat_pm.c
/rk3399_ARM-atf/plat/juno/plat_security.c
/rk3399_ARM-atf/plat/juno/platform.mk
/rk3399_ARM-atf/plat/juno/tsp/tsp-juno.mk
/rk3399_ARM-atf/plat/juno/tsp/tsp_plat_setup.c
/rk3399_ARM-atf/readme.md
/rk3399_ARM-atf/services/spd/opteed/opteed.mk
/rk3399_ARM-atf/services/spd/opteed/opteed_common.c
/rk3399_ARM-atf/services/spd/opteed/opteed_helpers.S
/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/psci/psci_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_main.c
/rk3399_ARM-atf/services/std_svc/psci/psci_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_setup.c
/rk3399_ARM-atf/tools/fip_create/Makefile
/rk3399_ARM-atf/tools/fip_create/fip_create.c
4480425206-Aug-2014 Sandrine Bailleux <sandrine.bailleux@arm.com>

Miscellaneous documentation fixes

This patch gathers miscellaneous minor fixes to the documentation, and comments
in the source code.

Change-Id: I631e3dda5abafa2d90f464edaee069a1e58b751b
Co-Authore

Miscellaneous documentation fixes

This patch gathers miscellaneous minor fixes to the documentation, and comments
in the source code.

Change-Id: I631e3dda5abafa2d90f464edaee069a1e58b751b
Co-Authored-By: Soby Mathew <soby.mathew@arm.com>
Co-Authored-By: Dan Handley <dan.handley@arm.com>

show more ...


/rk3399_ARM-atf/Makefile
bl1_exceptions.S
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/context.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp_timer.c
/rk3399_ARM-atf/docs/cpu-errata-workarounds.md
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/interrupt-framework-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/aem_generic.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a53.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a57.h
/rk3399_ARM-atf/include/lib/cpus/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/plat/common/plat_config.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/cpus/aarch64/aem_generic.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/cpu_helpers.S
/rk3399_ARM-atf/lib/cpus/cpu-errata.mk
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/tsp/tsp_fvp_setup.c
/rk3399_ARM-atf/plat/juno/aarch64/bl1_plat_helpers.S
/rk3399_ARM-atf/plat/juno/aarch64/juno_common.c
/rk3399_ARM-atf/plat/juno/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/juno/bl1_plat_setup.c
/rk3399_ARM-atf/plat/juno/bl2_plat_setup.c
/rk3399_ARM-atf/plat/juno/bl31_plat_setup.c
/rk3399_ARM-atf/plat/juno/include/plat_macros.S
/rk3399_ARM-atf/plat/juno/include/platform_def.h
/rk3399_ARM-atf/plat/juno/juno_def.h
/rk3399_ARM-atf/plat/juno/juno_private.h
/rk3399_ARM-atf/plat/juno/mhu.c
/rk3399_ARM-atf/plat/juno/mhu.h
/rk3399_ARM-atf/plat/juno/plat-tsp.ld.S
/rk3399_ARM-atf/plat/juno/plat_gic.c
/rk3399_ARM-atf/plat/juno/plat_io_storage.c
/rk3399_ARM-atf/plat/juno/plat_pm.c
/rk3399_ARM-atf/plat/juno/plat_topology.c
/rk3399_ARM-atf/plat/juno/platform.mk
/rk3399_ARM-atf/plat/juno/scp_bootloader.c
/rk3399_ARM-atf/plat/juno/scp_bootloader.h
/rk3399_ARM-atf/plat/juno/scpi.c
/rk3399_ARM-atf/plat/juno/scpi.h
/rk3399_ARM-atf/plat/juno/tsp/tsp-juno.mk
/rk3399_ARM-atf/plat/juno/tsp/tsp_plat_setup.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/services/std_svc/psci/psci_helpers.S
9b47684114-Aug-2014 Soby Mathew <soby.mathew@arm.com>

Introduce framework for CPU specific operations

This patch introduces a framework which will allow CPUs to perform
implementation defined actions after a CPU reset, during a CPU or cluster power
dow

Introduce framework for CPU specific operations

This patch introduces a framework which will allow CPUs to perform
implementation defined actions after a CPU reset, during a CPU or cluster power
down, and when a crash occurs. CPU specific reset handlers have been implemented
in this patch. Other handlers will be implemented in subsequent patches.

Also moved cpu_helpers.S to the new directory lib/cpus/aarch64/.

Change-Id: I1ca1bade4d101d11a898fb30fea2669f9b37b956

show more ...


/rk3399_ARM-atf/Makefile
bl1_entrypoint.S
/rk3399_ARM-atf/bl1/bl1.ld.S
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/bl31.ld.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/tsp.ld.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/bl32/tsp/tsp_interrupt.c
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/bl32/tsp/tsp_private.h
/rk3399_ARM-atf/bl32/tsp/tsp_timer.c
/rk3399_ARM-atf/common/aarch64/debug.S
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/cci400/cci400.c
/rk3399_ARM-atf/drivers/arm/tzc400/tzc400.c
/rk3399_ARM-atf/drivers/io/io_fip.c
/rk3399_ARM-atf/drivers/io/io_storage.c
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-motherboard-no_psci.dtsi
/rk3399_ARM-atf/fdts/fvp-foundation-motherboard.dtsi
/rk3399_ARM-atf/fdts/rtsm_ve-motherboard-no_psci.dtsi
/rk3399_ARM-atf/fdts/rtsm_ve-motherboard.dtsi
/rk3399_ARM-atf/include/bl31/cpu_data.h
/rk3399_ARM-atf/include/bl31/services/psci.h
/rk3399_ARM-atf/include/bl32/tsp/platform_tsp.h
/rk3399_ARM-atf/include/bl32/tsp/tsp.h
/rk3399_ARM-atf/include/common/assert_macros.S
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/drivers/arm/cci400.h
/rk3399_ARM-atf/include/drivers/arm/tzc400.h
/rk3399_ARM-atf/include/drivers/io/io_driver.h
/rk3399_ARM-atf/include/drivers/io/io_fip.h
/rk3399_ARM-atf/include/drivers/io/io_memmap.h
/rk3399_ARM-atf/include/drivers/io/io_semihosting.h
/rk3399_ARM-atf/include/drivers/io/io_storage.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/cpu_macros.S
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/cpus/aarch64/aem_generic.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/cpu_helpers.S
/rk3399_ARM-atf/lib/stdlib/abort.c
/rk3399_ARM-atf/lib/stdlib/assert.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/bl1_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/fvp_def.h
/rk3399_ARM-atf/plat/fvp/fvp_io_storage.c
/rk3399_ARM-atf/plat/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/fvp/fvp_private.h
/rk3399_ARM-atf/plat/fvp/fvp_security.c
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/plat/fvp/tsp/tsp-fvp.mk
/rk3399_ARM-atf/plat/fvp/tsp/tsp_fvp_setup.c
/rk3399_ARM-atf/services/spd/tspd/tspd.mk
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/services/spd/tspd/tspd_pm.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_off.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_on.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/services/std_svc/psci/psci_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/services/std_svc/psci/psci_helpers.S
/rk3399_ARM-atf/services/std_svc/psci/psci_main.c
/rk3399_ARM-atf/services/std_svc/psci/psci_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_setup.c
/rk3399_ARM-atf/services/std_svc/psci/psci_system_off.c
0c8d4fef04-Aug-2014 Achin Gupta <achin.gupta@arm.com>

Unmask SError interrupt and clear SCR_EL3.EA bit

This patch disables routing of external aborts from lower exception levels to
EL3 and ensures that a SError interrupt generated as a result of execut

Unmask SError interrupt and clear SCR_EL3.EA bit

This patch disables routing of external aborts from lower exception levels to
EL3 and ensures that a SError interrupt generated as a result of execution in
EL3 is taken locally instead of a lower exception level.

The SError interrupt is enabled in the TSP code only when the operation has not
been directly initiated by the normal world. This is to prevent the possibility
of an asynchronous external abort which originated in normal world from being
taken when execution is in S-EL1.

Fixes ARM-software/tf-issues#153

Change-Id: I157b996c75996d12fd86d27e98bc73dd8bce6cd5

show more ...


/rk3399_ARM-atf/Makefile
bl1_arch_setup.c
bl1_entrypoint.S
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/bl31/aarch64/bl31_arch_setup.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/context.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/context_mgmt.c
/rk3399_ARM-atf/bl31/cpu_data_array.c
/rk3399_ARM-atf/bl31/interrupt_mgmt.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/bl32/tsp/tsp_interrupt.c
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/common/aarch64/debug.S
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/tf_printf.c
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/gic/arm_gic.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011_console.S
/rk3399_ARM-atf/drivers/arm/tzc400/tzc400.c
/rk3399_ARM-atf/include/bl31/context.h
/rk3399_ARM-atf/include/bl31/context_mgmt.h
/rk3399_ARM-atf/include/bl31/cpu_data.h
/rk3399_ARM-atf/include/common/asm_macros.S
/rk3399_ARM-atf/include/common/assert_macros.S
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/drivers/arm/cci400.h
/rk3399_ARM-atf/include/drivers/arm/pl011.h
/rk3399_ARM-atf/include/drivers/arm/tzc400.h
/rk3399_ARM-atf/include/drivers/console.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/stdlib/assert.c
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/bl1_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl32_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/fvp_def.h
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/services/spd/tspd/tspd_common.c
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/services/spd/tspd/tspd_pm.c
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
ec3c100318-Jul-2014 Achin Gupta <achin.gupta@arm.com>

Simplify management of SCTLR_EL3 and SCTLR_EL1

This patch reworks the manner in which the M,A, C, SA, I, WXN & EE bits of
SCTLR_EL3 & SCTLR_EL1 are managed. The EE bit is cleared immediately after r

Simplify management of SCTLR_EL3 and SCTLR_EL1

This patch reworks the manner in which the M,A, C, SA, I, WXN & EE bits of
SCTLR_EL3 & SCTLR_EL1 are managed. The EE bit is cleared immediately after reset
in EL3. The I, A and SA bits are set next in EL3 and immediately upon entry in
S-EL1. These bits are no longer managed in the blX_arch_setup() functions. They
do not have to be saved and restored either. The M, WXN and optionally the C
bit are set in the enable_mmu_elX() function. This is done during both the warm
and cold boot paths.

Fixes ARM-software/tf-issues#226

Change-Id: Ie894d1a07b8697c116960d858cd138c50bc7a069

show more ...

754a2b7a25-Jun-2014 Achin Gupta <achin.gupta@arm.com>

Remove coherent stack usage from the cold boot path

This patch reworks the cold boot path across the BL1, BL2, BL3-1 and BL3-2 boot
loader stages to not use stacks allocated in coherent memory for e

Remove coherent stack usage from the cold boot path

This patch reworks the cold boot path across the BL1, BL2, BL3-1 and BL3-2 boot
loader stages to not use stacks allocated in coherent memory for early platform
setup and enabling the MMU. Stacks allocated in normal memory are used instead.

Attributes for stack memory change from nGnRnE when the MMU is disabled to
Normal WBWA Inner-shareable when the MMU and data cache are enabled. It is
possible for the CPU to read stale stack memory after the MMU is enabled from
another CPUs cache. Hence, it is unsafe to turn on the MMU and data cache while
using normal stacks when multiple CPUs are a part of the same coherency
domain. It is safe to do so in the cold boot path as only the primary cpu
executes it. The secondary cpus are in a quiescent state.

This patch does not remove the allocation of coherent stack memory. That is done
in a subsequent patch.

Change-Id: I12c80b7c7ab23506d425c5b3a8a7de693498f830

show more ...

dac1235a27-Jun-2014 Andrew Thoelke <andrew.thoelke@arm.com>

Merge pull request #151 from vikramkanigiri/vk/t133-code-readability

Simplify entry point information generation code on FVP

4f2104ff13-Jun-2014 Juan Castillo <juan.castillo@arm.com>

Remove all checkpatch errors from codebase

Exclude stdlib files because they do not follow kernel code style.

Fixes ARM-software/tf-issues#73

Change-Id: I4cfafa38ab436f5ab22c277cb38f884346a267ab

03396c4302-Jun-2014 Vikram Kanigiri <vikram.kanigiri@arm.com>

Simplify entry point information generation code on FVP

This patch reworks FVP specific code responsible for determining
the entry point information for BL3-2 and BL3-3 stages when BL3-1
is configur

Simplify entry point information generation code on FVP

This patch reworks FVP specific code responsible for determining
the entry point information for BL3-2 and BL3-3 stages when BL3-1
is configured as the reset handler.

Change-Id: Ia661ff0a6a44c7aabb0b6c1684b2e8d3642d11ec

show more ...


/rk3399_ARM-atf/Makefile
bl1_entrypoint.S
/rk3399_ARM-atf/bl1/bl1.ld.S
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl1/bl1_private.h
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl2/bl2_private.h
/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/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/context_mgmt.c
/rk3399_ARM-atf/bl31/interrupt_mgmt.c
/rk3399_ARM-atf/bl31/runtime_svc.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp-fvp.mk
/rk3399_ARM-atf/bl32/tsp/tsp.ld.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/bl32/tsp/tsp_interrupt.c
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/bl32/tsp/tsp_timer.c
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/diagrams/non-sec-int-handling.png
/rk3399_ARM-atf/docs/diagrams/sec-int-handling.png
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/interrupt-framework-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/cci400/cci400.c
/rk3399_ARM-atf/drivers/arm/gic/gic_v2.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011_console.c
/rk3399_ARM-atf/drivers/io/io_fip.c
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/rk3399_ARM-atf/include/bl31/bl31.h
/rk3399_ARM-atf/include/bl31/context_mgmt.h
/rk3399_ARM-atf/include/bl31/interrupt_mgmt.h
/rk3399_ARM-atf/include/bl31/runtime_svc.h
/rk3399_ARM-atf/include/bl31/services/psci.h
/rk3399_ARM-atf/include/bl32/payloads/tsp.h
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/drivers/arm/cci400.h
/rk3399_ARM-atf/include/drivers/arm/gic_v2.h
/rk3399_ARM-atf/include/drivers/arm/gic_v3.h
/rk3399_ARM-atf/include/drivers/arm/pl011.h
/rk3399_ARM-atf/include/drivers/io_driver.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/aarch64/xlat_tables.h
/rk3399_ARM-atf/include/lib/bakery_lock.h
/rk3399_ARM-atf/include/lib/mmio.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/aarch64/cache_helpers.S
/rk3399_ARM-atf/lib/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/aarch64/xlat_tables.c
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock.c
/rk3399_ARM-atf/lib/semihosting/semihosting.c
/rk3399_ARM-atf/plat/common/aarch64/plat_common.c
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/common/aarch64/platform_mp_stack.S
/rk3399_ARM-atf/plat/common/aarch64/platform_up_stack.S
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/bl1_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl32_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/drivers/pwrc/fvp_pwrc.c
/rk3399_ARM-atf/plat/fvp/drivers/pwrc/fvp_pwrc.h
/rk3399_ARM-atf/plat/fvp/fvp_def.h
/rk3399_ARM-atf/plat/fvp/fvp_gic.c
/rk3399_ARM-atf/plat/fvp/fvp_io_storage.c
/rk3399_ARM-atf/plat/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/fvp/fvp_private.h
/rk3399_ARM-atf/plat/fvp/fvp_security.c
/rk3399_ARM-atf/plat/fvp/fvp_topology.c
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/readme.md
/rk3399_ARM-atf/services/spd/tspd/tspd_common.c
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/services/spd/tspd/tspd_pm.c
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_on.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/services/std_svc/psci/psci_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/services/std_svc/psci/psci_main.c
/rk3399_ARM-atf/services/std_svc/psci/psci_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_setup.c
/rk3399_ARM-atf/tools/fip_create/fip_create.c
167a935704-Jun-2014 Andrew Thoelke <andrew.thoelke@arm.com>

Initialise CPU contexts from entry_point_info

Consolidate all BL3-1 CPU context initialization for cold boot, PSCI
and SPDs into two functions:
* The first uses entry_point_info to initialize the r

Initialise CPU contexts from entry_point_info

Consolidate all BL3-1 CPU context initialization for cold boot, PSCI
and SPDs into two functions:
* The first uses entry_point_info to initialize the relevant
cpu_context for first entry into a lower exception level on a CPU
* The second populates the EL1 and EL2 system registers as needed
from the cpu_context to ensure correct entry into the lower EL

This patch alters the way that BL3-1 determines which exception level
is used when first entering EL1 or EL2 during cold boot - this is now
fully determined by the SPSR value in the entry_point_info for BL3-3,
as set up by the platform code in BL2 (or otherwise provided to BL3-1).

In the situation that EL1 (or svc mode) is selected for a processor
that supports EL2, the context management code will now configure all
essential EL2 register state to ensure correct execution of EL1. This
allows the platform code to run non-secure EL1 payloads directly
without requiring a small EL2 stub or OS loader.

Change-Id: If9fbb2417e82d2226e47568203d5a369f39d3b0f

show more ...


/rk3399_ARM-atf/Makefile
bl1_arch_setup.c
/rk3399_ARM-atf/bl1/bl1.ld.S
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl1/bl1_private.h
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl2/bl2_private.h
/rk3399_ARM-atf/bl31/aarch64/bl31_arch_setup.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/context.S
/rk3399_ARM-atf/bl31/aarch64/cpu_data.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/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/context_mgmt.c
/rk3399_ARM-atf/bl31/cpu_data_array.c
/rk3399_ARM-atf/bl31/interrupt_mgmt.c
/rk3399_ARM-atf/bl31/runtime_svc.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_exceptions.S
/rk3399_ARM-atf/bl32/tsp/tsp-fvp.mk
/rk3399_ARM-atf/bl32/tsp/tsp.ld.S
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/bl32/tsp/tsp_interrupt.c
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/bl32/tsp/tsp_timer.c
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/diagrams/non-sec-int-handling.png
/rk3399_ARM-atf/docs/diagrams/sec-int-handling.png
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/interrupt-framework-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/cci400/cci400.c
/rk3399_ARM-atf/drivers/arm/gic/gic_v2.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011_console.c
/rk3399_ARM-atf/drivers/io/io_fip.c
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/rk3399_ARM-atf/include/bl31/bl31.h
/rk3399_ARM-atf/include/bl31/context.h
/rk3399_ARM-atf/include/bl31/context_mgmt.h
/rk3399_ARM-atf/include/bl31/cpu_data.h
/rk3399_ARM-atf/include/bl31/interrupt_mgmt.h
/rk3399_ARM-atf/include/bl31/runtime_svc.h
/rk3399_ARM-atf/include/bl31/services/psci.h
/rk3399_ARM-atf/include/bl32/payloads/tsp.h
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/drivers/arm/cci400.h
/rk3399_ARM-atf/include/drivers/arm/gic_v2.h
/rk3399_ARM-atf/include/drivers/arm/gic_v3.h
/rk3399_ARM-atf/include/drivers/arm/pl011.h
/rk3399_ARM-atf/include/drivers/io_driver.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/aarch64/xlat_tables.h
/rk3399_ARM-atf/include/lib/bakery_lock.h
/rk3399_ARM-atf/include/lib/mmio.h
/rk3399_ARM-atf/include/plat/common/platform.h
/rk3399_ARM-atf/lib/aarch64/cache_helpers.S
/rk3399_ARM-atf/lib/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/aarch64/xlat_tables.c
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock.c
/rk3399_ARM-atf/lib/semihosting/semihosting.c
/rk3399_ARM-atf/plat/common/aarch64/plat_common.c
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/common/aarch64/platform_mp_stack.S
/rk3399_ARM-atf/plat/common/aarch64/platform_up_stack.S
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/bl1_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/bl32_fvp_setup.c
/rk3399_ARM-atf/plat/fvp/drivers/pwrc/fvp_pwrc.c
/rk3399_ARM-atf/plat/fvp/drivers/pwrc/fvp_pwrc.h
/rk3399_ARM-atf/plat/fvp/fvp_def.h
/rk3399_ARM-atf/plat/fvp/fvp_gic.c
/rk3399_ARM-atf/plat/fvp/fvp_io_storage.c
/rk3399_ARM-atf/plat/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/fvp/fvp_private.h
/rk3399_ARM-atf/plat/fvp/fvp_security.c
/rk3399_ARM-atf/plat/fvp/fvp_topology.c
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/include/platform_def.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/readme.md
/rk3399_ARM-atf/services/spd/tspd/tspd_common.c
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/services/spd/tspd/tspd_pm.c
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_off.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_on.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/services/std_svc/psci/psci_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/services/std_svc/psci/psci_main.c
/rk3399_ARM-atf/services/std_svc/psci/psci_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_setup.c
/rk3399_ARM-atf/tools/fip_create/fip_create.c
dbad1bac24-Apr-2014 Vikram Kanigiri <vikram.kanigiri@arm.com>

Add support for BL3-1 as a reset vector

This change adds optional reset vector support to BL3-1
which means BL3-1 entry point can detect cold/warm boot,
initialise primary cpu, set up cci and mail b

Add support for BL3-1 as a reset vector

This change adds optional reset vector support to BL3-1
which means BL3-1 entry point can detect cold/warm boot,
initialise primary cpu, set up cci and mail box.

When using BL3-1 as a reset vector it is assumed that
the BL3-1 platform code can determine the location of
the BL3-2 images, or load them as there are no parameters
that can be passed to BL3-1 at reset.

It also fixes the incorrect initialisation of mailbox
registers on the FVP platform

This feature can be enabled by building the code with
make variable RESET_TO_BL31 set as 1

Fixes ARM-software/TF-issues#133
Fixes ARM-software/TF-issues#20

Change-Id: I4e23939b1c518614b899f549f1e8d412538ee570

show more ...

4112bfa015-Apr-2014 Vikram Kanigiri <vikram.kanigiri@arm.com>

Populate BL31 input parameters as per new spec

This patch is based on spec published at
https://github.com/ARM-software/tf-issues/issues/133

It rearranges the bl31_args struct into
bl31_params and

Populate BL31 input parameters as per new spec

This patch is based on spec published at
https://github.com/ARM-software/tf-issues/issues/133

It rearranges the bl31_args struct into
bl31_params and bl31_plat_params which provide the
information needed for Trusted firmware and platform
specific data via x0 and x1

On the FVP platform BL3-1 params and BL3-1 plat params
and its constituents are stored at the start of TZDRAM.

The information about memory availability and size for
BL3-1, BL3-2 and BL3-3 is moved into platform specific data.

Change-Id: I8b32057a3d0dd3968ea26c2541a0714177820da9

show more ...

29fb905d15-May-2014 Vikram Kanigiri <vikram.kanigiri@arm.com>

Rework handover interface between BL stages

This patch reworks the handover interface from: BL1 to BL2 and
BL2 to BL3-1. It removes the raise_el(), change_el(), drop_el()
and run_image() functions a

Rework handover interface between BL stages

This patch reworks the handover interface from: BL1 to BL2 and
BL2 to BL3-1. It removes the raise_el(), change_el(), drop_el()
and run_image() functions as they catered for code paths that were
never exercised.
BL1 calls bl1_run_bl2() to jump into BL2 instead of doing the same
by calling run_image(). Similarly, BL2 issues the SMC to transfer
execution to BL3-1 through BL1 directly. Only x0 and x1 are used
to pass arguments to BL31. These arguments and parameters for
running BL3-1 are passed through a reference to a
'el_change_info_t' structure. They were being passed value in
general purpose registers earlier.

Change-Id: Id4fd019a19a9595de063766d4a66295a2c9307e1

show more ...


/rk3399_ARM-atf/Makefile
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/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/context.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/context_mgmt.c
/rk3399_ARM-atf/bl31/runtime_svc.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/tsp-fvp.mk
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/debug.c
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/gic/gic_v2.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011_console.c
/rk3399_ARM-atf/include/bl31/cm_macros.S
/rk3399_ARM-atf/include/bl31/context.h
/rk3399_ARM-atf/include/bl31/context_mgmt.h
/rk3399_ARM-atf/include/bl31/runtime_svc.h
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/lib/aarch64/sysreg_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/plat_common.c
/rk3399_ARM-atf/plat/fvp/bl1_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl32_plat_setup.c
/rk3399_ARM-atf/plat/fvp/include/plat_macros.S
/rk3399_ARM-atf/plat/fvp/plat_security.c
/rk3399_ARM-atf/plat/fvp/platform.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/services/spd/tspd/tspd_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_on.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/services/std_svc/psci/psci_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/services/std_svc/psci/psci_setup.c
18a17e6a08-May-2014 danh-arm <dan.handley@arm.com>

Merge pull request #62 from athoelke/set-little-endian-v2

Set processor endianness immediately after RESET v2

7935d0a528-Apr-2014 Andrew Thoelke <andrew.thoelke@arm.com>

Access system registers directly in assembler

Instead of using the system register helper functions to read
or write system registers, assembler coded functions should
use MRS/MSR instructions. This

Access system registers directly in assembler

Instead of using the system register helper functions to read
or write system registers, assembler coded functions should
use MRS/MSR instructions. This results in faster and more
compact code.

This change replaces all usage of the helper functions with
direct register accesses.

Change-Id: I791d5f11f257010bb3e6a72c6c5ab8779f1982b3

show more ...

2f5dcfef28-Apr-2014 Andrew Thoelke <andrew.thoelke@arm.com>

Replace disable_mmu with assembler version

disable_mmu() cannot work as a C function as there is no control
over data accesses generated by the compiler between disabling and
cleaning the data cache

Replace disable_mmu with assembler version

disable_mmu() cannot work as a C function as there is no control
over data accesses generated by the compiler between disabling and
cleaning the data cache. This results in reading stale data from
main memory.

As assembler version is provided for EL3, and a variant that also
disables the instruction cache which is now used by the BL1
exception handling function.

Fixes ARM-software/tf-issues#147

Change-Id: I0cf394d2579a125a23c2f2989c2e92ace6ddb1a6

show more ...

8cec598b28-Apr-2014 Andrew Thoelke <andrew.thoelke@arm.com>

Correct usage of data and instruction barriers

The current code does not always use data and instruction
barriers as required by the architecture and frequently uses
barriers excessively due to thei

Correct usage of data and instruction barriers

The current code does not always use data and instruction
barriers as required by the architecture and frequently uses
barriers excessively due to their inclusion in all of the
write_*() helper functions.

Barriers should be used explicitly in assembler or C code
when modifying processor state that requires the barriers in
order to enable review of correctness of the code.

This patch removes the barriers from the helper functions and
introduces them as necessary elsewhere in the code.

PORTING NOTE: check any port of Trusted Firmware for use of
system register helper functions for reliance on the previous
barrier behaviour and add explicit barriers as necessary.

Fixes ARM-software/tf-issues#92

Change-Id: Ie63e187404ff10e0bdcb39292dd9066cb84c53bf

show more ...

40fd072524-Apr-2014 Andrew Thoelke <andrew.thoelke@arm.com>

Set processor endianness immediately after RESET

SCTLR_EL3.EE is being configured too late in bl1_arch_setup() and
bl31_arch_setup() after data accesses have already occured on
the cold and warm boo

Set processor endianness immediately after RESET

SCTLR_EL3.EE is being configured too late in bl1_arch_setup() and
bl31_arch_setup() after data accesses have already occured on
the cold and warm boot paths.

This control bit must be configured immediately on CPU reset to
match the endian state of the firmware (little endian).

Fixes ARM-software/tf-issues#145

Change-Id: Ie12e46fbbed6baf024c30beb50751591bb8c8655

show more ...

97043ac909-Apr-2014 Dan Handley <dan.handley@arm.com>

Reduce deep nesting of header files

Reduce the number of header files included from other header
files as much as possible without splitting the files. Use forward
declarations where possible. This

Reduce deep nesting of header files

Reduce the number of header files included from other header
files as much as possible without splitting the files. Use forward
declarations where possible. This allows removal of some unnecessary
"#ifndef __ASSEMBLY__" statements.

Also, review the .c and .S files for which header files really need
including and reorder the #include statements alphabetically.

Fixes ARM-software/tf-issues#31

Change-Id: Iec92fb976334c77453e010b60bcf56f3be72bd3e

show more ...


/rk3399_ARM-atf/Makefile
bl1_arch_setup.c
bl1_exceptions.S
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl1/bl1_private.h
/rk3399_ARM-atf/bl2/aarch64/bl2_arch_setup.c
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl2/bl2_private.h
/rk3399_ARM-atf/bl31/aarch64/bl31_arch_setup.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/context.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/bl31/context_mgmt.c
/rk3399_ARM-atf/bl31/runtime_svc.c
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_request.S
/rk3399_ARM-atf/bl32/tsp/tsp-fvp.mk
/rk3399_ARM-atf/bl32/tsp/tsp.mk
/rk3399_ARM-atf/bl32/tsp/tsp_main.c
/rk3399_ARM-atf/common/aarch64/early_exceptions.S
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/cci400/cci400.c
/rk3399_ARM-atf/drivers/arm/gic/aarch64/gic_v3_sysregs.S
/rk3399_ARM-atf/drivers/arm/gic/gic_v2.c
/rk3399_ARM-atf/drivers/arm/gic/gic_v3.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011.c
/rk3399_ARM-atf/drivers/arm/pl011/pl011_console.c
/rk3399_ARM-atf/drivers/arm/tzc400/tzc400.c
/rk3399_ARM-atf/drivers/io/io_fip.c
/rk3399_ARM-atf/drivers/io/io_memmap.c
/rk3399_ARM-atf/drivers/io/io_semihosting.c
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dtb
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/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/bl31/cm_macros.S
/rk3399_ARM-atf/include/bl31/context.h
/rk3399_ARM-atf/include/bl31/context_mgmt.h
/rk3399_ARM-atf/include/bl31/runtime_svc.h
/rk3399_ARM-atf/include/bl31/services/psci.h
/rk3399_ARM-atf/include/bl31/services/std_svc.h
/rk3399_ARM-atf/include/bl32/bl32.h
/rk3399_ARM-atf/include/bl32/payloads/tsp.h
/rk3399_ARM-atf/include/common/asm_macros.S
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/debug.h
/rk3399_ARM-atf/include/common/firmware_image_package.h
/rk3399_ARM-atf/include/drivers/arm/cci400.h
/rk3399_ARM-atf/include/drivers/arm/gic_v2.h
/rk3399_ARM-atf/include/drivers/arm/gic_v3.h
/rk3399_ARM-atf/include/drivers/arm/pl011.h
/rk3399_ARM-atf/include/drivers/arm/tzc400.h
/rk3399_ARM-atf/include/drivers/console.h
/rk3399_ARM-atf/include/drivers/io_driver.h
/rk3399_ARM-atf/include/drivers/io_fip.h
/rk3399_ARM-atf/include/drivers/io_memmap.h
/rk3399_ARM-atf/include/drivers/io_semihosting.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/aarch64/xlat_tables.h
/rk3399_ARM-atf/include/lib/bakery_lock.h
/rk3399_ARM-atf/include/lib/cassert.h
/rk3399_ARM-atf/include/lib/io_storage.h
/rk3399_ARM-atf/include/lib/mmio.h
/rk3399_ARM-atf/include/lib/semihosting.h
/rk3399_ARM-atf/include/lib/spinlock.h
/rk3399_ARM-atf/lib/aarch64/cache_helpers.S
/rk3399_ARM-atf/lib/aarch64/cpu_helpers.S
/rk3399_ARM-atf/lib/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/aarch64/sysreg_helpers.S
/rk3399_ARM-atf/lib/aarch64/tlb_helpers.S
/rk3399_ARM-atf/lib/aarch64/xlat_helpers.c
/rk3399_ARM-atf/lib/aarch64/xlat_tables.c
/rk3399_ARM-atf/lib/io_storage.c
/rk3399_ARM-atf/lib/locks/bakery/bakery_lock.c
/rk3399_ARM-atf/lib/locks/exclusive/spinlock.S
/rk3399_ARM-atf/lib/mmio.c
/rk3399_ARM-atf/lib/semihosting/semihosting.c
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/common/aarch64/platform_mp_stack.S
/rk3399_ARM-atf/plat/common/aarch64/platform_up_stack.S
/rk3399_ARM-atf/plat/fvp/aarch64/bl1_plat_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/plat_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/fvp/bl1_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl32_plat_setup.c
/rk3399_ARM-atf/plat/fvp/drivers/pwrc/fvp_pwrc.c
/rk3399_ARM-atf/plat/fvp/drivers/pwrc/fvp_pwrc.h
/rk3399_ARM-atf/plat/fvp/plat_gic.c
/rk3399_ARM-atf/plat/fvp/plat_io_storage.c
/rk3399_ARM-atf/plat/fvp/plat_pm.c
/rk3399_ARM-atf/plat/fvp/plat_security.c
/rk3399_ARM-atf/plat/fvp/plat_topology.c
/rk3399_ARM-atf/plat/fvp/platform.h
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/services/spd/tspd/tspd.mk
/rk3399_ARM-atf/services/spd/tspd/tspd_common.c
/rk3399_ARM-atf/services/spd/tspd/tspd_helpers.S
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/services/spd/tspd/tspd_pm.c
/rk3399_ARM-atf/services/spd/tspd/tspd_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_off.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_on.c
/rk3399_ARM-atf/services/std_svc/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/services/std_svc/psci/psci_common.c
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S
/rk3399_ARM-atf/services/std_svc/psci/psci_main.c
/rk3399_ARM-atf/services/std_svc/psci/psci_private.h
/rk3399_ARM-atf/services/std_svc/psci/psci_setup.c
/rk3399_ARM-atf/services/std_svc/std_svc_setup.c
/rk3399_ARM-atf/tools/fip_create/fip_create.c
/rk3399_ARM-atf/tools/fip_create/fip_create.h
/rk3399_ARM-atf/tools/fip_create/firmware_image_package.h
9c2c763d15-Apr-2014 danh-arm <dan.handley@arm.com>

Merge pull request #36 from athoelke/at/gc-sections-80

Using GCC --gc-sections to eliminate unused code and data

9e86490f31-Mar-2014 Sandrine Bailleux <sandrine.bailleux@arm.com>

Define frequency of system counter in platform code

BL3-1 architecture setup code programs the system counter frequency
into the CNTFRQ_EL0 register. This frequency is defined by the
platform, thoug

Define frequency of system counter in platform code

BL3-1 architecture setup code programs the system counter frequency
into the CNTFRQ_EL0 register. This frequency is defined by the
platform, though. This patch introduces a new platform hook that
the architecture setup code can call to retrieve this information.
In the ARM FVP port, this returns the first entry of the frequency
modes table from the memory mapped generic timer.

All system counter setup code has been removed from BL1 as some
platforms may not have initialized the system counters at this stage.
The platform specific settings done exclusively in BL1 have been moved
to BL3-1. In the ARM FVP port, this consists in enabling and
initializing the System level generic timer. Also, the frequency change
request in the counter control register has been set to 0 to make it
explicit it's using the base frequency. The CNTCR_FCREQ() macro has been
fixed in this context to give an entry number rather than a bitmask.

In future, when support for firmware update is implemented, there
is a case where BL1 platform specific code will need to program
the counter frequency. This should be implemented at that time.

This patch also updates the relevant documentation.

It properly fixes ARM-software/tf-issues#24

Change-Id: If95639b279f75d66ac0576c48a6614b5ccb0e84b

show more ...

65a9c0e931-Mar-2014 Sandrine Bailleux <sandrine.bailleux@arm.com>

Revert "Move architecture timer setup to platform-specific code"

This reverts commit 1c297bf015226c182b66498d5a64b8b51c7624f5
because it introduced a bug: the CNTFRQ_EL0 register was no
longer progr

Revert "Move architecture timer setup to platform-specific code"

This reverts commit 1c297bf015226c182b66498d5a64b8b51c7624f5
because it introduced a bug: the CNTFRQ_EL0 register was no
longer programmed by all CPUs. bl31_platform_setup() function
is invoked only in the cold boot path and consequently only
on the primary cpu.

A subsequent commit will correctly implement the necessary changes
to the counter frequency setup code.

Fixes ARM-software/tf-issues#125

Conflicts:

docs/firmware-design.md
plat/fvp/bl31_plat_setup.c

Change-Id: Ib584ad7ed069707ac04cf86717f836136ad3ab54

show more ...

0a30cf5418-Mar-2014 Andrew Thoelke <andrew.thoelke@arm.com>

Place assembler functions in separate sections

This extends the --gc-sections behaviour to the many assembler
support functions in the firmware images by placing each function
into its own code sect

Place assembler functions in separate sections

This extends the --gc-sections behaviour to the many assembler
support functions in the firmware images by placing each function
into its own code section. This is achieved by creating a 'func'
macro used to declare each function label.

Fixes ARM-software/tf-issues#80

Change-Id: I301937b630add292d2dec6d2561a7fcfa6fec690

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/arch/aarch64/cpu/cpu_helpers.S
/rk3399_ARM-atf/arch/system/gic/aarch64/gic_v3_sysregs.S
bl1_entrypoint.S
bl1_exceptions.S
/rk3399_ARM-atf/bl1/bl1.ld.S
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/context.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.ld.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_request.S
/rk3399_ARM-atf/bl32/tsp/tsp.ld.S
/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/drivers/arm/peripherals/pl011/pl011.c
/rk3399_ARM-atf/drivers/arm/peripherals/pl011/pl011.h
/rk3399_ARM-atf/drivers/console/console.c
/rk3399_ARM-atf/drivers/console/console.h
/rk3399_ARM-atf/include/asm_macros.S
/rk3399_ARM-atf/lib/arch/aarch64/cache_helpers.S
/rk3399_ARM-atf/lib/arch/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/arch/aarch64/sysreg_helpers.S
/rk3399_ARM-atf/lib/arch/aarch64/tlb_helpers.S
/rk3399_ARM-atf/lib/semihosting/aarch64/semihosting_call.S
/rk3399_ARM-atf/lib/sync/locks/exclusive/spinlock.S
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/bl1_plat_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/fvp/bl2_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_plat_setup.c
/rk3399_ARM-atf/plat/fvp/platform.mk
/rk3399_ARM-atf/services/spd/tspd/tspd_common.c
/rk3399_ARM-atf/services/spd/tspd/tspd_helpers.S
/rk3399_ARM-atf/services/std_svc/psci/psci_entry.S

1234