arm-trusted-firmware/plat/arm/common
Soby Mathew 6a7b300578 Add helper to return reference to a symbol
This patch adds a utility function to return
the address of a symbol. By default, the compiler
generates adr/adrp instruction pair to return
the reference and this utility is used to override
this compiler generated to code and use `ldr`
instruction.

This is needed for Position Independent Executable
when it needs to reference a symbol which is constant
and does not depend on the execute address of the
binary.

For example, on the FVP, the GICv3 register context is
stored in a secure carveout (arm_el3_tzc_dram) within
DDR and does not relocate with the BL image. Now if
BL31 is executing at a different address other than
the compiled address, using adrp/adr instructions to
reference this memory will not work as they generate an
address that is PC relative. The way to get around this
problem is to reference it as non-PC relative (i.e
non-relocatable location) via `ldr` instruction.

Change-Id: I5008a951b007144258121690afb68dc8e12ee6f7
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
2018-10-29 09:54:31 +00:00
..
aarch32 pl011: Add support in AArch32 for MULTI_CONSOLE_API 2018-09-21 13:04:07 +01:00
aarch64 plat/arm: Make crash console functions strong 2018-10-25 09:56:09 +01:00
sp_min Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
tsp Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
arm_bl1_fwu.c Fix MISRA rule 8.4 Part 4 2018-04-13 14:01:56 +01:00
arm_bl1_setup.c Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
arm_bl2_el3_setup.c Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
arm_bl2_setup.c Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
arm_bl2u_setup.c Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
arm_bl31_setup.c Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
arm_cci.c Mark GICV3, CCI and CCN boot time code as init 2018-10-03 11:48:15 +01:00
arm_ccn.c Mark GICV3, CCI and CCN boot time code as init 2018-10-03 11:48:15 +01:00
arm_common.c Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
arm_common.mk Merge pull request #1583 from danielboulby-arm/db/AArch32_Multi_Console 2018-10-04 16:43:39 +01:00
arm_console.c plat/arm: Mark arm platform initialization functions 2018-10-03 11:48:15 +01:00
arm_dyn_cfg.c plat/arm: Migrate to new interfaces 2018-09-28 15:31:53 +01:00
arm_dyn_cfg_helpers.c Slight improvements in Mbed TLS shared heap helpers 2018-09-07 11:39:14 +01:00
arm_err.c plat/arm: Move norflash driver to drivers/ folder 2018-10-10 11:14:44 +01:00
arm_gicv2.c GICv2: Fix populating PE target data 2017-11-13 07:49:30 +00:00
arm_gicv3.c Add helper to return reference to a symbol 2018-10-29 09:54:31 +00:00
arm_image_load.c Fix some violations to MISRA rule 8.3 2018-07-11 17:33:29 +02:00
arm_io_storage.c FVP: Add dummy configs for BL31, BL32 and BL33 2018-05-21 16:04:16 +01:00
arm_nor_psci_mem_protect.c Merge pull request #1606 from satheesbalya-arm/sb1_2603_misra_plat 2018-10-12 14:19:28 +01:00
arm_pm.c Fix misra warnings in SMC and power mgmt code 2018-10-09 12:23:55 +01:00
arm_sip_svc.c SiP: MISRA fixes for execution state switch 2018-08-20 09:05:39 +01:00
arm_topology.c plat/arm: Fix misra warnings in platform code 2018-10-11 17:01:07 +01:00
arm_tzc400.c tzc: Fix MISRA defects 2018-10-23 12:12:03 +01:00
arm_tzc_dmc500.c tzc: Fix MISRA defects 2018-10-23 12:12:03 +01:00
execution_state_switch.c SiP: MISRA fixes for execution state switch 2018-08-20 09:05:39 +01:00