arm-trusted-firmware/plat/arm/board/fvp
Jeenu Viswambharan a806dad58c Define and use no_ret macro where no return is expected
There are many instances in ARM Trusted Firmware where control is
transferred to functions from which return isn't expected. Such jumps
are made using 'bl' instruction to provide the callee with the location
from which it was jumped to. Additionally, debuggers infer the caller by
examining where 'lr' register points to. If a 'bl' of the nature
described above falls at the end of an assembly function, 'lr' will be
left pointing to a location outside of the function range. This misleads
the debugger back trace.

This patch defines a 'no_ret' macro to be used when jumping to functions
from which return isn't expected. The macro ensures to use 'bl'
instruction for the jump, and also, for debug builds, places a 'nop'
instruction immediately thereafter (unless instructed otherwise) so as
to leave 'lr' pointing within the function range.

Change-Id: Ib34c69fc09197cfd57bc06e147cc8252910e01b0
Co-authored-by: Douglas Raillard <douglas.raillard@arm.com>
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2016-12-05 14:55:35 +00:00
..
aarch32 AArch32: Common changes needed for BL1/BL2 2016-09-21 16:27:15 +01:00
aarch64 Define and use no_ret macro where no return is expected 2016-12-05 14:55:35 +00:00
drivers/pwrc Rework type usage in Trusted Firmware 2016-07-18 17:52:15 +01:00
include ARM platforms: Define common image sizes 2016-07-25 12:04:31 +01:00
sp_min AArch32: Support in SP_MIN to receive arguments from BL2 2016-09-21 16:28:46 +01:00
tsp Rework use of ARM GIC drivers on ARM platforms 2015-12-09 09:58:17 +00:00
fvp_bl1_setup.c Rework use of interconnect drivers 2016-02-16 20:09:49 +00:00
fvp_bl2_setup.c Replace SP804 timer by generic delay timer on FVP 2016-05-20 15:29:30 +01:00
fvp_bl2u_setup.c FWU: Add Firmware Update support in BL2U for ARM platforms 2015-12-09 17:41:19 +00:00
fvp_bl31_setup.c ARM platform changes for new version of image loading 2016-09-21 16:12:48 +01:00
fvp_common.c Whitelist version 9.6 of Foundation FVP 2016-09-23 13:22:19 +01:00
fvp_def.h Whitelist version 9.6 of Foundation FVP 2016-09-23 13:22:19 +01:00
fvp_err.c Add WFI in platform's unexpected error handlers 2016-08-19 14:04:03 +01:00
fvp_io_storage.c TBB: apply TBBR naming convention to certificates and extensions 2015-12-14 12:29:44 +00:00
fvp_pm.c FVP: Implement support for NODE_HW_STATE 2016-09-15 11:18:48 +01:00
fvp_private.h Rework use of interconnect drivers 2016-02-16 20:09:49 +00:00
fvp_security.c Migrate ARM standard platforms to the refactored TZC driver 2016-03-31 21:23:23 +01:00
fvp_topology.c Allow multi cluster topology definitions for ARM platforms 2016-02-19 09:18:52 +00:00
fvp_trusted_boot.c Implement plat_set_nv_ctr for FVP platforms 2016-06-03 11:17:03 +01:00
platform.mk AArch32: Add support for ARM Cortex-A32 MPCore Processor 2016-09-21 16:28:55 +01:00