arm-trusted-firmware/include
Soby Mathew 931f7c6156 PIE: Position Independant Executable support for BL31
This patch introduces Position Independant Executable(PIE) support
in TF-A. As a initial prototype, only BL31 can support PIE. A trivial
dynamic linker is implemented which supports fixing up Global Offset
Table(GOT) and Dynamic relocations(.rela.dyn). The fixup_gdt_reloc()
helper function implements this linker and this needs to be called
early in the boot sequence prior to invoking C functions. The GOT is
placed in the RO section of BL31 binary for improved security and the
BL31 linker script is modified to export the appropriate symbols
required for the dynamic linker.

The C compiler always generates PC relative addresses to linker symbols
and hence referencing symbols exporting constants are a problem when
relocating the binary. Hence the reference to the
`__PERCPU_TIMESTAMP_SIZE__` symbol in PMF is removed and is now calculated
at runtime based on start and end addresses.

Change-Id: I1228583ff92cf432963b7cef052e95d995cca93d
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
2018-10-29 09:54:32 +00:00
..
bl1 Fix MISRA rule 8.4 Part 1 2018-02-28 17:19:55 +00:00
bl2 Fix MISRA rule 8.5 in common code 2018-04-13 14:01:56 +01:00
bl2u Fix MISRA rule 8.4 in common code 2018-02-28 17:18:46 +00:00
bl31 Fix MISRA defects in BL31 common code 2018-08-30 09:22:33 +01:00
bl32 Remove deprecated early platform setup interfaces 2018-09-28 15:31:53 +01:00
common PIE: Position Independant Executable support for BL31 2018-10-29 09:54:32 +00:00
drivers tzc: Fix MISRA defects 2018-10-23 12:12:03 +01:00
dt-bindings stm32mp1: Add device tree files 2018-07-24 17:18:35 +02:00
lib Make errata reporting mandatory for CPU files 2018-10-29 09:54:32 +00:00
plat Convert arm_setup_page_tables into a generic helper 2018-10-26 14:55:30 +01:00
services libc: Fix all includes in codebase 2018-08-22 10:26:05 +01:00
tools_share Make TF UUID RFC 4122 compliant 2018-06-14 14:41:00 +01:00