| #
c877b414 |
| 16-Jan-2017 |
Jeenu Viswambharan <jeenu.viswambharan@arm.com> |
Introduce locking primitives using CAS instruction
The ARMv8v.1 architecture extension has introduced support for far atomics, which includes compare-and-swap. Compare and Swap instruction is only a
Introduce locking primitives using CAS instruction
The ARMv8v.1 architecture extension has introduced support for far atomics, which includes compare-and-swap. Compare and Swap instruction is only available for AArch64.
Introduce build options to choose the architecture versions to target ARM Trusted Firmware:
- ARM_ARCH_MAJOR: selects the major version of target ARM Architecture. Default value is 8.
- ARM_ARCH_MINOR: selects the minor version of target ARM Architecture. Default value is 0.
When:
(ARM_ARCH_MAJOR > 8) || ((ARM_ARCH_MAJOR == 8) && (ARM_ARCH_MINOR >= 1)),
for AArch64, Compare and Swap instruction is used to implement spin locks. Otherwise, the implementation falls back to using load-/store-exclusive instructions.
Update user guide, and introduce a section in Firmware Design guide to summarize support for features introduced in ARMv8 Architecture Extensions.
Change-Id: I73096a0039502f7aef9ec6ab3ae36680da033f16 Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
show more ...
|
| #
fd6d90d8 |
| 13-Feb-2017 |
davidcunado-arm <david.cunado@arm.com> |
Merge pull request #826 from dp-arm/dp/psci-stat-abstraction
Decouple PSCI stat residency calculation from PMF
|
| #
04c1db1e |
| 31-Jan-2017 |
dp-arm <dimitris.papastamos@arm.com> |
PSCI: Decouple PSCI stat residency calculation from PMF
This patch introduces the following three platform interfaces:
* void plat_psci_stat_accounting_start(const psci_power_state_t *state_info)
PSCI: Decouple PSCI stat residency calculation from PMF
This patch introduces the following three platform interfaces:
* void plat_psci_stat_accounting_start(const psci_power_state_t *state_info)
This is an optional hook that platforms can implement in order to perform accounting before entering a low power state. This typically involves capturing a timestamp.
* void plat_psci_stat_accounting_stop(const psci_power_state_t *state_info)
This is an optional hook that platforms can implement in order to perform accounting after exiting from a low power state. This typically involves capturing a timestamp.
* u_register_t plat_psci_stat_get_residency(unsigned int lvl, const psci_power_state_t *state_info, unsigned int last_cpu_index)
This is an optional hook that platforms can implement in order to calculate the PSCI stat residency.
If any of these interfaces are overridden by the platform, it is recommended that all of them are.
By default `ENABLE_PSCI_STAT` is disabled. If `ENABLE_PSCI_STAT` is set but `ENABLE_PMF` is not set then an alternative PSCI stat collection backend must be provided. If both are set, then default weak definitions of these functions are provided, using PMF to calculate the residency.
NOTE: Previously, platforms did not have to explicitly set `ENABLE_PMF` since this was automatically done by the top-level Makefile.
Change-Id: I17b47804dea68c77bc284df15ee1ccd66bc4b79b Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
show more ...
|
| #
bee71c7a |
| 03-Feb-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
Makefile: use git describe for BUILD_STRING
Currently, the BUILD_STRING is just 7-digits git hash. It is true we can identify which version is running, but we can not get a quick idea about how new
Makefile: use git describe for BUILD_STRING
Currently, the BUILD_STRING is just 7-digits git hash. It is true we can identify which version is running, but we can not get a quick idea about how new or old it is.
The command "git describe" provides us a bit more useful information in the format of: (tag-name)-(number of commits on top the tag)-g(7 digits hash)
I added some options: --always Make "git describe" work without any tag in case the upstream ATF is cloned, but all the tags are locally dropped.
--tags Use any tag instead of only annotated tags. In ATF, only some tags are annotated, actually the last annotated tag is "v0.2", whereas we are on "v1.3" tag now. This option is needed to get something like v1.3-233-gbcc2bf0 instead of v0.2-1713-gbcc2bf0.
--dirty The mark "-dirty" is appended if the source tree is locally modified.
With this commit, the welcome string
NOTICE: BL1: v1.3(debug):bcc2bf0
will become like follows:
NOTICE: BL1: v1.3(debug):v1.3-233-gbcc2bf0-dirty
While we are here, let's add "2> /dev/null" as well to silently ignore any error message from git. We should not assume that users always work in a git repository; the ATF might be released in a tarball form instead of a git repository. In such a case, the git command will fail, then the ugly message "fatal: Not a git ..." will be displayed during the build:
$ make CROSS_COMPILE=aarch64-linux-gnu- fatal: Not a git repository (or any of the parent directories): .git Building fvp CC drivers/io/io_semihosting.c CC lib/semihosting/semihosting.c ...
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
show more ...
|
| #
bcc2bf09 |
| 31-Jan-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #821 from jeenu-arm/errata-printing
Errata printing infrastructure
|
| #
474d4eca |
| 31-Jan-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #799 from masahir0y/fiptool
fiptool: Alignment support + misc refactoring
|
| #
bac75297 |
| 31-Jan-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #823 from douglas-raillard-arm/dr/add_fno_builtin
Add -fno-builtin to CFLAGS
|
| #
72fc70ed |
| 28-Dec-2016 |
Douglas Raillard <douglas.raillard@arm.com> |
build: Use separate CFLAGS for tools
Sharing the same CFLAGS for both the firmware and host tools is not useful and can lead to compilation failure when CFLAGS is set on the command line.
This patc
build: Use separate CFLAGS for tools
Sharing the same CFLAGS for both the firmware and host tools is not useful and can lead to compilation failure when CFLAGS is set on the command line.
This patch make MAKEOVERRIDES special variable empty so make's command line variable definitions are not implicitly forwarded to sub make invocations. However, make options are still forwarded like "-s" option to make the build silent.
Change-Id: Ia921c02beb1fd2041696a26160b9e7974ae000fa Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
show more ...
|
| #
10bcd761 |
| 03-Jan-2017 |
Jeenu Viswambharan <jeenu.viswambharan@arm.com> |
Report errata workaround status to console
The errata reporting policy is as follows:
- If an errata workaround is enabled:
- If it applies (i.e. the CPU is affected by the errata), an INFO
Report errata workaround status to console
The errata reporting policy is as follows:
- If an errata workaround is enabled:
- If it applies (i.e. the CPU is affected by the errata), an INFO message is printed, confirming that the errata workaround has been applied.
- If it does not apply, a VERBOSE message is printed, confirming that the errata workaround has been skipped.
- If an errata workaround is not enabled, but would have applied had it been, a WARN message is printed, alerting that errata workaround is missing.
The CPU errata messages are printed by both BL1 (primary CPU only) and runtime firmware on debug builds, once for each CPU/errata combination.
Relevant output from Juno r1 console when ARM Trusted Firmware is built with PLAT=juno LOG_LEVEL=50 DEBUG=1:
VERBOSE: BL1: cortex_a57: errata workaround for 806969 was not applied VERBOSE: BL1: cortex_a57: errata workaround for 813420 was not applied INFO: BL1: cortex_a57: errata workaround for disable_ldnp_overread was applied WARNING: BL1: cortex_a57: errata workaround for 826974 was missing! WARNING: BL1: cortex_a57: errata workaround for 826977 was missing! WARNING: BL1: cortex_a57: errata workaround for 828024 was missing! WARNING: BL1: cortex_a57: errata workaround for 829520 was missing! WARNING: BL1: cortex_a57: errata workaround for 833471 was missing! ... VERBOSE: BL31: cortex_a57: errata workaround for 806969 was not applied VERBOSE: BL31: cortex_a57: errata workaround for 813420 was not applied INFO: BL31: cortex_a57: errata workaround for disable_ldnp_overread was applied WARNING: BL31: cortex_a57: errata workaround for 826974 was missing! WARNING: BL31: cortex_a57: errata workaround for 826977 was missing! WARNING: BL31: cortex_a57: errata workaround for 828024 was missing! WARNING: BL31: cortex_a57: errata workaround for 829520 was missing! WARNING: BL31: cortex_a57: errata workaround for 833471 was missing! ... VERBOSE: BL31: cortex_a53: errata workaround for 826319 was not applied INFO: BL31: cortex_a53: errata workaround for disable_non_temporal_hint was applied
Also update documentation.
Change-Id: Iccf059d3348adb876ca121cdf5207bdbbacf2aba Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
show more ...
|
| #
e507f8e7 |
| 16-Jan-2017 |
Douglas Raillard <douglas.raillard@arm.com> |
Add -fno-builtin to CFLAGS
Disable the automatic substitution of functions with builtins. The existing -ffreestanding option should already do this but explicitly adding -fno-builtin reduces the ris
Add -fno-builtin to CFLAGS
Disable the automatic substitution of functions with builtins. The existing -ffreestanding option should already do this but explicitly adding -fno-builtin reduces the risk of compiler variation. With this option, GCC is not supposed to be able to make assumptions on what the function does, which could otherwise lead to security-sensitive code removal.
This can lead to potentially less efficient code but improves predictability of what code is actually compiled into the binary.
Change-Id: I06ad151c61318bd1b00d84976f051d2d94314acc Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
show more ...
|
| #
1c75d5df |
| 25-Dec-2016 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
fiptool: support --align option to add desired alignment to image offset
The current fiptool packs all the images without any padding between them. So, the offset to each image has no alignment. T
fiptool: support --align option to add desired alignment to image offset
The current fiptool packs all the images without any padding between them. So, the offset to each image has no alignment. This is not efficient, for example, when the FIP is read from a block-oriented device.
For example, (e)MMC is accessed by block-addressing. The block size is 512 byte. So, the best case is each image is aligned by 512 byte since the DMA engine can transfer the whole of the image to its load address directly. The worst case is the offset does not have even DMA-capable alignment (this is where we stand now). In this case, we need to transfer every block to a bounce buffer, then do memcpy() from the bounce buffer to our final destination. At least, this should work with the abstraction by the block I/O layer, but the CPU-intervention for the whole data transfer makes it really slow.
This commit adds a new option --align to the fiptool. This option, if given, requests the tool to align each component in the FIP file by the specified byte. Also, add a new Make option FIP_ALIGN for easier access to this feature; users can give something like FIP_ALIGN=512 from the command line, or add "FIP_ALIGN := 512" to their platform.mk file.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
show more ...
|
| #
7b94e4b9 |
| 23-Jan-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #813 from antonio-nino-diaz-arm/an/libfdt
Update libfdt to version 1.4.2
|
| #
55cdcf75 |
| 16-Jan-2017 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
checkpatch: Fix regular expressions
When generating the list of files to check by checkpatch.pl, the list generated by `git ls-files` is filtered by a regular expression with grep. Due to a malforme
checkpatch: Fix regular expressions
When generating the list of files to check by checkpatch.pl, the list generated by `git ls-files` is filtered by a regular expression with grep. Due to a malformed regex, the dot of `.md` was considered a wildcard instead of a dot. This patch fixes this so that it matches only dots, thus allowing the two following files to be checked:
* tools/cert_create/include/cmd_opt.h * tools/cert_create/src/cmd_opt.c
Also extended the list of library directories to check by checkpatch to exclude any folder starting with libfdt.
Change-Id: Ie7bf18efe4df29e364e5d67ba1118515304ed9a4 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| #
9eb4d4dd |
| 11-Jan-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #796 from masahir0y/build
Improve dependency file generation
|
| #
59de5096 |
| 22-Dec-2016 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
Build: use CPP just for pre-processing
Using AS for pre-processing looks a bit weird, and some assembly specific options are given for nothing. Rather, use CPP.
Signed-off-by: Masahiro Yamada <yam
Build: use CPP just for pre-processing
Using AS for pre-processing looks a bit weird, and some assembly specific options are given for nothing. Rather, use CPP.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
show more ...
|
| #
f2e1d57e |
| 22-Dec-2016 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
Build: exclude -c flag from TF_CFLAGS
The -c flag should not be included in the global variable TF_CFLAGS; it should be specified in the build rule only when its target is a *.o file.
Signed-off-by
Build: exclude -c flag from TF_CFLAGS
The -c flag should not be included in the global variable TF_CFLAGS; it should be specified in the build rule only when its target is a *.o file.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
show more ...
|
| #
28076fad |
| 19-Dec-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #781 from yatharth-arm/yk/aarch64_tbbr_load_img_v2
Enable TRUSTED_BOARD_BOOT support for LOAD_IMAGE_V2=1
|
| #
53d703a5 |
| 11-Nov-2016 |
Yatharth Kochar <yatharth.kochar@arm.com> |
Enable TRUSTED_BOARD_BOOT support for LOAD_IMAGE_V2=1
This patch enables TRUSTED_BOARD_BOOT (Authentication and FWU) support, for AArch64, when LOAD_IMAGE_V2 is enabled.
This patch also enables LOA
Enable TRUSTED_BOARD_BOOT support for LOAD_IMAGE_V2=1
This patch enables TRUSTED_BOARD_BOOT (Authentication and FWU) support, for AArch64, when LOAD_IMAGE_V2 is enabled.
This patch also enables LOAD_IMAGE_V2 for ARM platforms.
Change-Id: I294a2eebce7a30b6784c80c9d4ac7752808ee3ad Signed-off-by: Yatharth Kochar <yatharth.kochar@arm.com>
show more ...
|
| #
f61bf2c7 |
| 08-Nov-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #751 from jeenu-arm/ug-reorder
Alphabetical reordering for build options and make files
|
| #
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 ...
|
| #
be7b4af3 |
| 03-Nov-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #746 from antonio-nino-diaz-arm/an/fix-checkpatch
Fix format of patches passed to checkpatch
|
| #
c626311e |
| 27-Oct-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Fix format of patches passed to checkpatch
Checkpatch is a script developed to verify the style of Linux kernel patches. As Kernel developers use emails to send patches for review, checkpatch is pre
Fix format of patches passed to checkpatch
Checkpatch is a script developed to verify the style of Linux kernel patches. As Kernel developers use emails to send patches for review, checkpatch is prepared for that specific format. This change adapts the Makefile to use said format.
As a result, indentation in the commit message has been removed, thus fixing the warnings about Signed-off-by lines being preceded by whitespace.
Fixes ARM-software/tf-issues#432
Change-Id: I00cb86365fe15f7e2c3a99a306c8eb51cf02fe86 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| #
1281a42f |
| 17-Oct-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #734 from afaerber/make-help
Makefile: Add missing space in help output
|
| #
66b4542a |
| 17-Oct-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #729 from dp-arm/dp/arm-sip
Add instrumentation support for PSCI
|
| #
6bb37adc |
| 13-Oct-2016 |
davidcunado-arm <david.cunado@arm.com> |
Merge pull request #733 from danh-arm/dh/v1.3-final
Final updates for v1.3 release
|