When we build the convenience firmware package file for the Arm FPGA boards (bl31.axf), we combine trampolines, the DTB and the actual BL31 code into one ELF file, which is more a "container with load addresses" than an actual executable. So far ld was fine with us using bl31.elf as an input file, but binutils 2.35 changed that and complains about taking an *executable* ELF file as in *input* to the linker: ----------------- aarch64-none-elf-ld.bfd: cannot use executable file 'build/arm_fpga/debug/./bl31/bl31.elf' as input to a link ----------------- Fortunately we don't need the actual BL31 ELF file for *that* part of the linking, so can use the just created bl31.bin binary version of it. Actually that shrinks the file, as we needlessly included the .BSS section in the final file before. Using the binary works with both older and newer toolchains versions, so let's do this unconditionally. Change-Id: Ib7e697f8363499123f7cb860f118f182d0830768 Signed-off-by: Andre Przywara <andre.przywara@arm.com> |
||
---|---|---|
.husky | ||
bl1 | ||
bl2 | ||
bl2u | ||
bl31 | ||
bl32 | ||
common | ||
docs | ||
drivers | ||
fdts | ||
include | ||
lib | ||
licenses | ||
make_helpers | ||
plat | ||
services | ||
tools | ||
.checkpatch.conf | ||
.cz.json | ||
.editorconfig | ||
.gitignore | ||
.gitreview | ||
Makefile | ||
commitlint.config.js | ||
dco.txt | ||
license.rst | ||
package-lock.json | ||
package.json | ||
readme.rst |
readme.rst
Trusted Firmware-A
Trusted Firmware-A (TF-A) is a reference implementation of secure world software for Arm A-Profile architectures (Armv8-A and Armv7-A), including an Exception Level 3 (EL3) Secure Monitor. It provides a suitable starting point for productization of secure world boot and runtime firmware, in either the AArch32 or AArch64 execution states.
TF-A implements Arm interface standards, including:
- Power State Coordination Interface (PSCI)
- Trusted Board Boot Requirements CLIENT (TBBR-CLIENT)
- SMC Calling Convention
- System Control and Management Interface (SCMI)
- Software Delegated Exception Interface (SDEI)
The code is designed to be portable and reusable across hardware platforms and software models that are based on the Armv8-A and Armv7-A architectures.
In collaboration with interested parties, we will continue to enhance TF-A with reference implementations of Arm standards to benefit developers working with Armv7-A and Armv8-A TrustZone technology.
Users are encouraged to do their own security validation, including penetration testing, on any secure world code derived from TF-A.
More Info and Documentation
To find out more about Trusted Firmware-A, please view the full documentation that is available through trustedfirmware.org.
Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.