| 2fae4b1e | 24-Oct-2016 |
Jeenu Viswambharan <jeenu.viswambharan@arm.com> |
build: Reorder build variables alphabetically
When build variables are assigned or processed en masse, they'd appear neater in alphabetical order.
Static initializations are moved to a separate fil
build: Reorder build variables alphabetically
When build variables are assigned or processed en masse, they'd appear neater in alphabetical order.
Static initializations are moved to a separate file, make_helpers/defaults.mk, which in itself is sorted alphabetically.
No functional changes.
Change-Id: I966010042b33de6b67592fb9ffcef8fc44d7d128 Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
show more ...
|
| 819281ee | 25-May-2016 |
dp-arm <dimitris.papastamos@arm.com> |
Replace fip_create with fiptool
fiptool provides a more consistent and intuitive interface compared to the fip_create program. It serves as a better base to build on more features in the future.
f
Replace fip_create with fiptool
fiptool provides a more consistent and intuitive interface compared to the fip_create program. It serves as a better base to build on more features in the future.
fiptool supports various subcommands. Below are the currently supported subcommands:
1) info - List the images contained in a FIP file. 2) create - Create a new FIP file with the given images. 3) update - Update an existing FIP with the given images. 4) unpack - Extract a selected set or all the images from a FIP file. 5) remove - Remove images from a FIP file. This is a new command that was not present in fip_create.
To create a new FIP file, replace "fip_create" with "fiptool create".
To update a FIP file, replace "fip_create" with "fiptool update".
To dump the contents of a FIP file, replace "fip_create --dump" with "fiptool info".
A compatibility script that emulates the basic functionality of fip_create is provided. Existing scripts might or might not work with the compatibility script. Users are strongly encouraged to migrate to fiptool.
Fixes ARM-Software/tf-issues#87 Fixes ARM-Software/tf-issues#108 Fixes ARM-Software/tf-issues#361
Change-Id: I7ee4da7ac60179cc83cf46af890fd8bc61a53330
show more ...
|
| 6f511c47 | 04-Jul-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #651 from Xilinx/zynqmp_uart
zynqmp: Make UART selectable |
| 8eadeb4a | 09-Jun-2016 |
Soren Brinkmann <soren.brinkmann@xilinx.com> |
build_macros: Add 'add_define_val' macro
Add a convenience macro to add a build definition with a value.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> |
| 403973c9 | 11-Apr-2016 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Give user's compiler flags precedence over default ones
The user can provide additional CFLAGS to use when building TF. However, these custom CFLAGS are currently prepended to the standard CFLAGS th
Give user's compiler flags precedence over default ones
The user can provide additional CFLAGS to use when building TF. However, these custom CFLAGS are currently prepended to the standard CFLAGS that are hardcoded in the TF build system. This is an issue because when providing conflicting compiler flags (e.g. different optimisations levels like -O1 and -O0), the last one on the command line usually takes precedence. This means that the user flags get overriden.
To address this problem, this patch separates the TF CFLAGS from the user CFLAGS. The former are now stored in the TF_CFLAGS make variable, whereas the CFLAGS make variable is untouched and reserved for the user. The order of the 2 sets of flags is enforced when invoking the compiler.
Fixes ARM-Software/tf-issues#350
Change-Id: Ib189f44555b885f1dffbec6015092f381600e560
show more ...
|
| 91e8ae66 | 07-Apr-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #578 from EvanLloyd/ejll/woa_make2
Make improvements for host environment portability |
| 414ab853 | 03-Dec-2015 |
Evan Lloyd <evan.lloyd@arm.com> |
Make:Improve version string generation portability
To get round problems encountered when building in a DOS build environment the generation of the .o file containing build identifier strings is mod
Make:Improve version string generation portability
To get round problems encountered when building in a DOS build environment the generation of the .o file containing build identifier strings is modified. The problems encounterred were: 1. DOS echo doesn't strip ' characters from the output text. 2. git is not available from CMD.EXE so the BUILD_STRING value needs some other origin.
A BUILD_STRING value of "development build" is used for now.
MAKE_BUILD_STRINGS is used to customise build string generation in a DOS environment. This variable is not defined in the UNIX build environment make file helper, and so the existing build string generation behaviour is retained in these build environments.
NOTE: This commit completes a cumulative series aimed at improving build portability across development environments. This enables the build to run on several new build environments, if the relevant tools are available. At this point the build is tested on Windows 7 Enterprise SP1, using CMD.EXE, Cygwin and Msys (MinGW),as well as a native Linux envionment". The Windows platform builds used aarch64-none-elf-gcc.exe 4.9.1. CMD.EXE and Msys used Gnu Make 3.81, cygwin used Gnu Make 4.1.
CAVEAT: The cert_create tool build is not tested on the Windows platforms (openssl-for-windows has a GPL license).
Change-Id: Iaa4fc89dbe2a9ebae87e2600c9eef10a6af30251
show more ...
|
| 51b27702 | 03-Dec-2015 |
Evan Lloyd <evan.lloyd@arm.com> |
Make:Improve directory generation portability.
Because of command differences in some build environments the "inline" method of generating the build directory structure is not portable. (e.g. in DOS
Make:Improve directory generation portability.
Because of command differences in some build environments the "inline" method of generating the build directory structure is not portable. (e.g. in DOS environments the mkdir shell command fails if a directory already exists, whereas in UNIX environments it succeeds.)
To improve portability we generate the directories needed using make, but use the "order-only prerequisites" feature of make to prevent writes of files into the directories generating re-builds, as suggested in the GNU make Manual (Version 4.1 September 2014).
Change-Id: Ic9af475831063c7fe6f8bccffef184d79e799419
show more ...
|
| 42a45b51 | 03-Dec-2015 |
Evan Lloyd <evan.lloyd@arm.com> |
Make:Allow for extension in tool names.
In some build environments executable programs have a specific file extension. The value of BIN_EXT is appended to the relevant tool file names to allow for
Make:Allow for extension in tool names.
In some build environments executable programs have a specific file extension. The value of BIN_EXT is appended to the relevant tool file names to allow for this. The value of BIN_EXT is set, where appropriate, by the build environment specific make helper (to .exe for Windows build environments).
.gitignore is updated to hide the new (.exe) files.
Change-Id: Icc32f64b750e425265075ad4e0dea18129640b86
show more ...
|
| e7f54dbd | 02-Dec-2015 |
Evan Lloyd <evan.lloyd@arm.com> |
Make:Use environment variables for OS detection.
Add make helper files to select the appropriate settings for the build environment. Selection is made in make_helpers/build_env.mk, which selects oth
Make:Use environment variables for OS detection.
Add make helper files to select the appropriate settings for the build environment. Selection is made in make_helpers/build_env.mk, which selects other files to include using generic build environment settings. The Trusted Firmware Makefile and supporting tool Makefiles are updated to include build_env.mk instead of unix.mk.
NOTE: This change does not fully enable builds in other build environments. It facilitates this without compromising the existing build environments.
Change-Id: Ic4064ffe6ce158bbd16d7cc9f27dd4655a3580f6
show more ...
|
| 1670d9df | 02-Dec-2015 |
Evan Lloyd <evan.lloyd@arm.com> |
Make:Diagnostic fail if no eval
To help diagnose make problems, we report an error if the make program used does not provide the $(eval ) make functionality. This will detect early versions of GNU m
Make:Diagnostic fail if no eval
To help diagnose make problems, we report an error if the make program used does not provide the $(eval ) make functionality. This will detect early versions of GNU make and other make programs.
Change-Id: I0ebb0f63694cf0b04eaeb7ea1e9e172fb9770ce0
show more ...
|
| f1477d4a | 02-Dec-2015 |
Evan Lloyd <evan.lloyd@arm.com> |
Make:Make shell commands more portable
Macros are inserted to replace direct invocations of commands that are problematic on some build environments. (e.g. Some environments expect \ in paths instea
Make:Make shell commands more portable
Macros are inserted to replace direct invocations of commands that are problematic on some build environments. (e.g. Some environments expect \ in paths instead of /.) The changes take into account mismatched command mappings across environments. The new helper file unix.mk retains existing makefile behaviour on unix like build environments by providing the following macro definitions: SHELL_COPY cp -f SHELL_COPY_TREE cp -rf SHELL_DELETE rm -f SHELL_DELETE_ALL rm -rf MAKE_PREREQ_DIR mkdir -p (As make target) SHELL_REMOVE_DIR rm -rf
Change-Id: I1b5ca5e1208e78230b15284c4af00c1c006cffcb
show more ...
|
| 231c1470 | 02-Dec-2015 |
Evan Lloyd <evan.lloyd@arm.com> |
Make:Remove calls to shell from makefiles.
As an initial stage of making Trusted Firmware build environment more portable, we remove most uses of the $(shell ) function and replace them with more po
Make:Remove calls to shell from makefiles.
As an initial stage of making Trusted Firmware build environment more portable, we remove most uses of the $(shell ) function and replace them with more portable make function based solutions.
Note that the setting of BUILD_STRING still uses $(shell ) since it's not possible to reimplement this as a make function. Avoiding invocation of this on incompatible host platforms will be implemented separately.
Change-Id: I768e2f9a265c78814a4adf2edee4cc46cda0f5b8
show more ...
|
| 96103d5a | 22-Jan-2016 |
Juan Castillo <juan.castillo@arm.com> |
cert_create: add non-volatile counter support
This patch adds non-volatile counter support to the Certificate Generation tool. The TBBR Chain of Trust definition in the tool has been extended to inc
cert_create: add non-volatile counter support
This patch adds non-volatile counter support to the Certificate Generation tool. The TBBR Chain of Trust definition in the tool has been extended to include the counters as certificate extensions. The counter values can be specified in the command line.
The following default counter values are specified in the build system:
* Trusted FW Non-Volatile counter = 0 * Non-Trusted FW Non-Volatile counter = 0
These values can be overridden by the platform at build time.
Change-Id: I7ea10ee78d72748d181df4ee78a7169b3ef2720c
show more ...
|
| 2f5d4a48 | 28-Jan-2016 |
Patrick Georgi <pgeorgi@google.com> |
build system: allow overriding the build's timestamp
This allows reproducible builds (same source and same compiler produce bit-identical results) and also allows coordinating the timestamp across m
build system: allow overriding the build's timestamp
This allows reproducible builds (same source and same compiler produce bit-identical results) and also allows coordinating the timestamp across multiple projects, eg. with another firmware.
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
show more ...
|
| 8f0617ef | 05-Jan-2016 |
Juan Castillo <juan.castillo@arm.com> |
Apply TBBR naming convention to the fip_create options
The fip_create tool specifies images in the command line using the ARM TF naming convention (--bl2, --bl31, etc), while the cert_create tool us
Apply TBBR naming convention to the fip_create options
The fip_create tool specifies images in the command line using the ARM TF naming convention (--bl2, --bl31, etc), while the cert_create tool uses the TBBR convention (--tb-fw, --soc-fw, etc). This double convention is confusing and should be aligned.
This patch updates the fip_create command line options to follow the TBBR naming convention. Usage examples in the User Guide have been also updated.
NOTE: users that build the FIP by calling the fip_create tool directly from the command line must update the command line options in their scripts. Users that build the FIP by invoking the main ARM TF Makefile should not notice any difference.
Change-Id: I84d602630a2585e558d927b50dfde4dd2112496f
show more ...
|
| d178637d | 14-Dec-2015 |
Juan Castillo <juan.castillo@arm.com> |
Remove dashes from image names: 'BL3-x' --> 'BL3x'
This patch removes the dash character from the image name, to follow the image terminology in the Trusted Firmware Wiki page:
https://github.c
Remove dashes from image names: 'BL3-x' --> 'BL3x'
This patch removes the dash character from the image name, to follow the image terminology in the Trusted Firmware Wiki page:
https://github.com/ARM-software/arm-trusted-firmware/wiki
Changes apply to output messages, comments and documentation.
non-ARM platform files have been left unmodified.
Change-Id: Ic2a99be4ed929d52afbeb27ac765ceffce46ed76
show more ...
|
| f59821d5 | 10-Dec-2015 |
Juan Castillo <juan.castillo@arm.com> |
Replace all SCP FW (BL0, BL3-0) references
This patch replaces all references to the SCP Firmware (BL0, BL30, BL3-0, bl30) with the image terminology detailed in the TF wiki (https://github.com/ARM-
Replace all SCP FW (BL0, BL3-0) references
This patch replaces all references to the SCP Firmware (BL0, BL30, BL3-0, bl30) with the image terminology detailed in the TF wiki (https://github.com/ARM-software/arm-trusted-firmware/wiki):
BL0 --> SCP_BL1 BL30, BL3-0 --> SCP_BL2 bl30 --> scp_bl2
This change affects code, documentation, build system, tools and platform ports that load SCP firmware. ARM plaforms have been updated to the new porting API.
IMPORTANT: build option to specify the SCP FW image has changed:
BL30 --> SCP_BL2
IMPORTANT: This patch breaks compatibility for platforms that use BL2 to load SCP firmware. Affected platforms must be updated as follows:
BL30_IMAGE_ID --> SCP_BL2_IMAGE_ID BL30_BASE --> SCP_BL2_BASE bl2_plat_get_bl30_meminfo() --> bl2_plat_get_scp_bl2_meminfo() bl2_plat_handle_bl30() --> bl2_plat_handle_scp_bl2()
Change-Id: I24c4c1a4f0e4b9f17c9e4929da815c4069549e58
show more ...
|
| 516beb58 | 03-Dec-2015 |
Juan Castillo <juan.castillo@arm.com> |
TBB: apply TBBR naming convention to certificates and extensions
This patch applies the TBBR naming convention to the certificates and the corresponding extensions defined by the CoT:
* Certifi
TBB: apply TBBR naming convention to certificates and extensions
This patch applies the TBBR naming convention to the certificates and the corresponding extensions defined by the CoT:
* Certificate UUID names * Certificate identifier names * OID names
Changes apply to:
* Generic code (variables and defines) * The default certificate identifiers provided in the generic code * Build system * ARM platforms port * cert_create tool internal definitions * fip_create and cert_create tools command line options * Documentation
IMPORTANT: this change breaks the compatibility with platforms that use TBBR. The platform will need to adapt the identifiers and OIDs to the TBBR naming convention introduced by this patch:
Certificate UUIDs:
UUID_TRUSTED_BOOT_FIRMWARE_BL2_CERT --> UUID_TRUSTED_BOOT_FW_CERT UUID_SCP_FIRMWARE_BL30_KEY_CERT --> UUID_SCP_FW_KEY_CERT UUID_SCP_FIRMWARE_BL30_CERT --> UUID_SCP_FW_CONTENT_CERT UUID_EL3_RUNTIME_FIRMWARE_BL31_KEY_CERT --> UUID_SOC_FW_KEY_CERT UUID_EL3_RUNTIME_FIRMWARE_BL31_CERT --> UUID_SOC_FW_CONTENT_CERT UUID_SECURE_PAYLOAD_BL32_KEY_CERT --> UUID_TRUSTED_OS_FW_KEY_CERT UUID_SECURE_PAYLOAD_BL32_CERT --> UUID_TRUSTED_OS_FW_CONTENT_CERT UUID_NON_TRUSTED_FIRMWARE_BL33_KEY_CERT --> UUID_NON_TRUSTED_FW_KEY_CERT UUID_NON_TRUSTED_FIRMWARE_BL33_CERT --> UUID_NON_TRUSTED_FW_CONTENT_CERT
Certificate identifiers:
BL2_CERT_ID --> TRUSTED_BOOT_FW_CERT_ID BL30_KEY_CERT_ID --> SCP_FW_KEY_CERT_ID BL30_CERT_ID --> SCP_FW_CONTENT_CERT_ID BL31_KEY_CERT_ID --> SOC_FW_KEY_CERT_ID BL31_CERT_ID --> SOC_FW_CONTENT_CERT_ID BL32_KEY_CERT_ID --> TRUSTED_OS_FW_KEY_CERT_ID BL32_CERT_ID --> TRUSTED_OS_FW_CONTENT_CERT_ID BL33_KEY_CERT_ID --> NON_TRUSTED_FW_KEY_CERT_ID BL33_CERT_ID --> NON_TRUSTED_FW_CONTENT_CERT_ID
OIDs:
TZ_FW_NVCOUNTER_OID --> TRUSTED_FW_NVCOUNTER_OID NTZ_FW_NVCOUNTER_OID --> NON_TRUSTED_FW_NVCOUNTER_OID BL2_HASH_OID --> TRUSTED_BOOT_FW_HASH_OID TZ_WORLD_PK_OID --> TRUSTED_WORLD_PK_OID NTZ_WORLD_PK_OID --> NON_TRUSTED_WORLD_PK_OID BL30_CONTENT_CERT_PK_OID --> SCP_FW_CONTENT_CERT_PK_OID BL30_HASH_OID --> SCP_FW_HASH_OID BL31_CONTENT_CERT_PK_OID --> SOC_FW_CONTENT_CERT_PK_OID BL31_HASH_OID --> SOC_AP_FW_HASH_OID BL32_CONTENT_CERT_PK_OID --> TRUSTED_OS_FW_CONTENT_CERT_PK_OID BL32_HASH_OID --> TRUSTED_OS_FW_HASH_OID BL33_CONTENT_CERT_PK_OID --> NON_TRUSTED_FW_CONTENT_CERT_PK_OID BL33_HASH_OID --> NON_TRUSTED_WORLD_BOOTLOADER_HASH_OID BL2U_HASH_OID --> AP_FWU_CFG_HASH_OID SCP_BL2U_HASH_OID --> SCP_FWU_CFG_HASH_OID NS_BL2U_HASH_OID --> FWU_HASH_OID
Change-Id: I1e047ae046299ca913911c39ac3a6e123bd41079
show more ...
|
| 0191262d | 12-Oct-2015 |
Yatharth Kochar <yatharth.kochar@arm.com> |
FWU: Add support for `fwu_fip` target
Firmware update feature needs a new FIP called `fwu_fip.bin` that includes Secure(SCP_BL2U, BL2U) and Normal world(NS_BL2U) images along with the FWU_CERT certi
FWU: Add support for `fwu_fip` target
Firmware update feature needs a new FIP called `fwu_fip.bin` that includes Secure(SCP_BL2U, BL2U) and Normal world(NS_BL2U) images along with the FWU_CERT certificate in order for NS_BL1U to load the images and help the Firmware update process to complete.
This patch adds the capability to support the new target `fwu_fip` which includes above mentioned FWU images in the make files.
The new target of `fwu_fip` and its dependencies are included for compilation only when `TRUSTED_BOARD_BOOT` is defined.
Change-Id: Ie780e3aac6cbd0edfaff3f9af96a2332bd69edbc
show more ...
|
| 9003fa0b | 14-Oct-2015 |
Yatharth Kochar <yatharth.kochar@arm.com> |
FWU: Add Generic BL2U FWU image support in BL2
The Firmware Update (FWU) feature needs support for an optional secure world image, BL2U, to allow additional secure world initialization required by F
FWU: Add Generic BL2U FWU image support in BL2
The Firmware Update (FWU) feature needs support for an optional secure world image, BL2U, to allow additional secure world initialization required by FWU, for example DDR initialization.
This patch adds generic framework support to create BL2U.
NOTE: A platform makefile must supply additional `BL2U_SOURCES` to build the bl2u target. A subsequent patch adds bl2u support for ARM platforms.
Change-Id: If2ce036199bb40b39b7f91a9332106bcd4e25413
show more ...
|
| 5ba8f669 | 02-Oct-2015 |
Yatharth Kochar <yatharth.kochar@arm.com> |
Add uppercase macro to build_macros.mk
This patch adds `uppercase` macro to prepare IMAGE_BLxx defines used for conditional compilation and to prepare variables used for defining BL source and linke
Add uppercase macro to build_macros.mk
This patch adds `uppercase` macro to prepare IMAGE_BLxx defines used for conditional compilation and to prepare variables used for defining BL source and linker file names.
This change is needed for upcoming BL images that can have names which uses both letters and numbers.
Change-Id: I05ce9bcd0d221a54db92c0fe3ad28e9e0080ed2e
show more ...
|
| 70d1fc53 | 12-Nov-2015 |
Juan Castillo <juan.castillo@arm.com> |
Fix build error when `BL32` is not defined
If an SPD wants to use a prebuilt binary as BL32 image (for example, the OPTEE Dispatcher), it must point the `BL32` variable to the image file. This depen
Fix build error when `BL32` is not defined
If an SPD wants to use a prebuilt binary as BL32 image (for example, the OPTEE Dispatcher), it must point the `BL32` variable to the image file. This dependency should apply only to the `fip` target. However, it also applies to the `all` target at the moment. If the user tries to build all individual TF images using `make all` without setting BL32, the build fails. The following command will throw the error:
make CROSS_COMPILE=aarch64-linux-gnu- SPD=opteed all ... ... aarch64-linux-gnu-gcc: fatal error: no input files compilation terminated. make: *** [build/fvp/release/bl32/bl32.ld] Error 1
The reason is that the build system checks if BL32 is defined, and if it is not, it will try to build BL32 from source. If the SPD makefile does not provide support for that (as is the case of the OPTEE Dispatcher, since OPTEE is provided as an external binary), the build will fail.
This patch fixes the issue by checking if `BL32_SOURCES` has been defined by the SPD before attempting to build BL32 from source. If neither `BL32` nor `BL32_SOURCES` is defined when building the FIP, a warning message will be printed and the process aborted.
Fixes ARM-software/tf-issues#333
Change-Id: I5e801ad333103ed9b042e5c4757424c8df2ff6e4
show more ...
|
| 88154678 | 22-Oct-2015 |
Juan Castillo <juan.castillo@arm.com> |
Make: fix dependency files generation
Currently, if no make goal is specified in the command line, 'all' is assumed by default, but the dependency files are not generated. This might lead to a succe
Make: fix dependency files generation
Currently, if no make goal is specified in the command line, 'all' is assumed by default, but the dependency files are not generated. This might lead to a successful but inconsistent build. This patch provides a fix to the problem.
Change-Id: I0148719e114dbdbe46f8a57c7d05da7cbc212c92
show more ...
|
| 73c99d4e | 18-Aug-2015 |
Juan Castillo <juan.castillo@arm.com> |
Rework Makefile
This patch is a complete rework of the main Makefile. Functionality remains the same but the code has been reorganized in sections in order to improve readability and facilitate addi
Rework Makefile
This patch is a complete rework of the main Makefile. Functionality remains the same but the code has been reorganized in sections in order to improve readability and facilitate adding future extensions.
A new file 'build_macros.mk' has been created and will contain common definitions (variables, macros, etc) that may be used from the main Makefile and other platform specific makefiles.
A new macro 'FIP_ADD_IMG' has been introduced and it will allow the platform to specify binary images and the necessary checks for a successful build. Platforms that require a BL30 image no longer need to specify the NEED_BL30 option. The main Makefile is now completely unaware of additional images not built as part of Trusted Firmware, like BL30. It is the platform responsibility to specify images using the macro 'FIP_ADD_IMG'. Juno uses this macro to include the BL30 image in the build.
BL33 image is specified in the main Makefile to preserve backward compatibility with the NEED_BL33 option. Otherwise, platform ports that rely on the definition of NEED_BL33 might break.
All Trusted Board Boot related definitions have been moved to a separate file 'tbbr_tools.mk'. The main Makefile will include this file unless the platform indicates otherwise by setting the variable 'INCLUDE_TBBR_MK := 0' in the corresponding platform.mk file. This will keep backward compatibility but ideally each platform should include the corresponding TBB .mk file in platform.mk.
Change-Id: I35e7bc9930d38132412e950e20aa2a01e2b26801
show more ...
|