| f58ad36f | 10-Jan-2014 |
Harry Liebel <Harry.Liebel@arm.com> |
Add Firmware Image Package creation tool
This tool can be used to create a Firmware Image Packages (FIP). These FIPs store a combined set of firmware images with a Table of Contents (ToC) that can b
Add Firmware Image Package creation tool
This tool can be used to create a Firmware Image Packages (FIP). These FIPs store a combined set of firmware images with a Table of Contents (ToC) that can be loaded by the firmware from platform storage.
- Add uuid.h from FreeBSD. - Use symbolic links to shared headers otherwise unwanted headers and definitions are pulled in. - A FIP is created as part of the default FVP build. - A BL3-3 image(e.g. UEFI) must be provided.
Change-Id: Ib73feee181df2dba68bf6abec115a83cfa5e26cb
show more ...
|
| 9d72b4ea | 10-Feb-2014 |
James Morrissey <james.morrissey@arm.com> |
Implement load_image in terms of IO abstraction
The modified implementation uses the IO abstraction rather than making direct semi-hosting calls. The semi-hosting driver is now registered for the F
Implement load_image in terms of IO abstraction
The modified implementation uses the IO abstraction rather than making direct semi-hosting calls. The semi-hosting driver is now registered for the FVP platform during initialisation of each boot stage where it is used. Additionally, the FVP platform includes a straightforward implementation of 'plat_get_image_source' which provides a generic means for the 'load_image' function to determine how to access the image data.
Change-Id: Ia34457b471dbee990c7b3c79de7aee4ceea51aa6
show more ...
|
| f2f9bb5e | 10-Feb-2014 |
James Morrissey <james.morrissey@arm.com> |
Add IO abstraction framework
This is intended primarily for use as a storage abstraction. It allows operations such as image-loading to be implemented in a platform-independent fashion. Each platfo
Add IO abstraction framework
This is intended primarily for use as a storage abstraction. It allows operations such as image-loading to be implemented in a platform-independent fashion. Each platform registers a set of IO drivers during initialisation. The platform must also provide a function that will return a device and a specifier that can be used to access specified content.
Clients of the API will primarily use device and entity handles. The term "entity" is deliberately vague, to allow for different representations of content accessed using different types of specifier, but will often be interpreted as a "file" where the specifier will normally be its path.
This commit builds, but is intended to be paired with a sample implementation of "load_image" using a semi-hosting driver on FVP.
Change-Id: Id3b52f1c0eb9ce76b44b99fc6b6460803668cc86
show more ...
|
| 40a6f647 | 10-Feb-2014 |
James Morrissey <james.morrissey@arm.com> |
Fix asserts appearing in release builds
Also fix warnings generated in release builds when assert code is absent.
Change-Id: I45b9173d3888f9e93e98eb5b4fdc06727ba5cbf4 |
| df64a55b | 11-Feb-2014 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Compile assembly files with -DDEBUG flag
Change-Id: Ic6cf19402a0936161baf6b91bf75d64d95269a3c |
| c3810c83 | 15-Jan-2014 |
Jon Medhurst <tixy@linaro.org> |
Fix memmove and memcpy
memmove needs to allow for overlapping memory regions and, together with memcpy, should return the input destination pointer, not the address after the end of the copied data.
Fix memmove and memcpy
memmove needs to allow for overlapping memory regions and, together with memcpy, should return the input destination pointer, not the address after the end of the copied data.
fixes ARM-software/tf-issues#18
Signed-off-by: Jon Medhurst <tixy@linaro.org>
show more ...
|
| 36eaaf37 | 30-Jan-2014 |
Ian Spray <ian.spray@arm.com> |
Allow style checking of tree and local changes
New phony Makefile targets have been added:
* checkcodebase * checkpatch
The checkcodebase target will run a Linux style compliance check over the
Allow style checking of tree and local changes
New phony Makefile targets have been added:
* checkcodebase * checkpatch
The checkcodebase target will run a Linux style compliance check over the entire codebase, and honours the V=1 Makefile verbose setting and so will show more information when this is enabled.
If the local directory is a git checkout then the output of git ls-files is used to decide which files to test for compliance. If the local directory is not under git control then a 'best attempt' is made, but in this case it should be noted that it is possible for additional non-codebase files to be tested, so care should be taken when parsing the output.
The checkpatch target will compare local changes against the git origin/master to allow issues with the last set of changes to be identified. To override the change comparision location, set the BASE_COMMIT variable to your desired git branch.
Both targets rely on the Linux source tree script checkpatch.pl to do the syntax checking, and expects that the CHECKPATCH environment variable points to the location of this file.
Notes on the usage of these targets have been added to the contributing.md and docs/user-guide.md text files.
Change-Id: I6d73c97af578e24a34226d972afadab9d30f1d8d
show more ...
|
| 35fab8c9 | 23-Jan-2014 |
Joakim Bech <joakim.bech@linaro.org> |
Build system: Add cscope target to the Makefile
Fixes arm-software/tf-issues#15
Signed-off-by: Joakim Bech <joakim.bech@linaro.org> |
| b2187ab9 | 17-Jan-2014 |
Achin Gupta <achin.gupta@arm.com> |
fvp: clear a pending cluster power off request
The last CPU in a cluster is responsible for issuing the cluster power down request to the FVP power controller. If another CPU in this cluster wakes u
fvp: clear a pending cluster power off request
The last CPU in a cluster is responsible for issuing the cluster power down request to the FVP power controller. If another CPU in this cluster wakes up before the last CPU enters WFI then the cluster power down request remains pending. If this request is not cancelled and the newly woken up CPU enters a simple WFI later, the power controller powers the cluster down. This leads to unpredictable behaviour.
This patch fixes this issue by ensuring that the first CPU to wake up in a cluster writes its MPIDR to the power controller's PPONR. This cancels any pending cluster power down request.
Change-Id: I7e787adfd6c9a0bd7308390e3309d46f35c01086
show more ...
|
| 75f7367b | 05-Dec-2013 |
Achin Gupta <achin.gupta@arm.com> |
psci: fix affinity level upgrade issue
The psci implementation does not track target affinity level requests specified during cpu_suspend calls correctly as per the following example.
1. cpu0.clust
psci: fix affinity level upgrade issue
The psci implementation does not track target affinity level requests specified during cpu_suspend calls correctly as per the following example.
1. cpu0.cluster0 calls cpu_suspend with the target affinity level as 0 2. Only the cpu0.cluster0 is powered down while cluster0 remains powered up 3. cpu1.cluster0 calls cpu_off to power itself down to highest possible affinity level 4. cluster0 will be powered off even though cpu0.cluster0 does not allow cluster shutdown
This patch introduces reference counts at affinity levels > 0 to track the number of cpus which want an affinity instance at level X to remain powered up. This instance can be turned off only if its reference count is 0. Cpus still undergo the normal state transitions (ON, OFF, ON_PENDING, SUSPEND) but the higher levels can only be either ON or OFF depending upon their reference count.
The above issue is thus fixed as follows:
1. cluster0's reference count is incremented by two when cpu0 and cpu1 are initially powered on.
2. cpu0.cluster0 calls cpu_suspend with the target affinity level as 0. This does not affect the cluster0 reference count.
3. Only the cpu0.cluster0 is powered down while cluster0 remains powered up as it has a non-zero reference count.
4. cpu1.cluster0 call cpu_off to power itself down to highest possible affinity level. This decrements the cluster0 reference count.
5. cluster0 is still not powered off since its reference count will at least be 1 due to the restriction placed by cpu0.
Change-Id: I433dfe82b946f5f6985b1602c2de87800504f7a9
show more ...
|
| a45e3973 | 05-Dec-2013 |
Achin Gupta <achin.gupta@arm.com> |
psci: preserve target affinity level during suspend
This patch adds support to save and restore the target affinity level specified during a cpu_suspend psci call. This ensures that we traverse only
psci: preserve target affinity level during suspend
This patch adds support to save and restore the target affinity level specified during a cpu_suspend psci call. This ensures that we traverse only through the affinity levels that we originally intended to after resuming from suspend.
Change-Id: I0900ae49a50b496da137cfec8f158da0397ec56c
show more ...
|
| a59caa4c | 05-Dec-2013 |
Achin Gupta <achin.gupta@arm.com> |
psci: replace secure context with suspend context
The secure context saved and restored across a cpu_suspend operation can be more than just the state of the secure system registers e.g. we also nee
psci: replace secure context with suspend context
The secure context saved and restored across a cpu_suspend operation can be more than just the state of the secure system registers e.g. we also need to save the affinity level till which the cpu is being powered down. This patch creates a suspend_context data structure which includes the system register context. This will allow other bits to be saved and restored as well in subsequent patches.
Change-Id: I1c1f7d25497388b54b7d6ee4fab77e8c6a9992c4
show more ...
|
| 03cb8fbb | 15-Jan-2014 |
Ryan Harkin <ryan.harkin@linaro.org> |
fvp: rename fvp_* files to plat_*
The FVP platform has a few filenames that begin with fvp_. These are renamed to plat_ to make it easier to use the FVP port as a template.
Change-Id: I601e6256d5e
fvp: rename fvp_* files to plat_*
The FVP platform has a few filenames that begin with fvp_. These are renamed to plat_ to make it easier to use the FVP port as a template.
Change-Id: I601e6256d5ef3bae81a2e1f5df6de56db5b27069 Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
show more ...
|
| 72ee3314 | 15-Jan-2014 |
Ryan Harkin <ryan.harkin@linaro.org> |
Build system: add 'make help' option
Add the 'help' target to the Makefile to present a brief guide to the various build options available.
Change-Id: Ic3a3489860b6362eb236470ea6b43a16a1b2fe3a Sign
Build system: add 'make help' option
Add the 'help' target to the Makefile to present a brief guide to the various build options available.
Change-Id: Ic3a3489860b6362eb236470ea6b43a16a1b2fe3a Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
show more ...
|
| d7a6b0f8 | 13-Jan-2014 |
Ryan Harkin <ryan.harkin@linaro.org> |
Build system: minor spacing tidyup
Tidy up the spacing of variable definitions within the makefiles to make them more consistent, easier to read and amend.
Change-Id: Ic6d7c8489ca4330824abb5cd1ead8
Build system: minor spacing tidyup
Tidy up the spacing of variable definitions within the makefiles to make them more consistent, easier to read and amend.
Change-Id: Ic6d7c8489ca4330824abb5cd1ead8f1d449d1a85 Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
show more ...
|
| 25cff83e | 13-Jan-2014 |
Ryan Harkin <ryan.harkin@linaro.org> |
Build system: Fixes #2: Add multi-platform support
Move all explicit platform or architecture specific references into a new platform.mk file that is defined for each platform.
Change-Id: I9d6320d1
Build system: Fixes #2: Add multi-platform support
Move all explicit platform or architecture specific references into a new platform.mk file that is defined for each platform.
Change-Id: I9d6320d1ba957e0cc8d9b316b3578132331fa428 Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
show more ...
|
| 5443f2be | 18-Jan-2014 |
Achin Gupta <achin.gupta@arm.com> |
remove empty definition of display_boot_progress()
This patch replaces the empty definition of display_boot_progress() in bl2_main.c with a weak definition. The former allowed bl2 to use the early_e
remove empty definition of display_boot_progress()
This patch replaces the empty definition of display_boot_progress() in bl2_main.c with a weak definition. The former allowed bl2 to use the early_exceptions(). It is possible to do that with a simple weak definition as well.
Change-Id: Idb3f425a5e265f3579b638e3d26bd8c9bb78f80d
show more ...
|
| 3a4cae05 | 16-Jan-2014 |
Jeenu Viswambharan <jeenu.viswambharan@arm.com> |
Change comments in assembler files to help ctags
Ctags seem to have a problem with generating tags for assembler symbols when a comment immediately follows an assembly label.
This patch inserts a s
Change comments in assembler files to help ctags
Ctags seem to have a problem with generating tags for assembler symbols when a comment immediately follows an assembly label.
This patch inserts a single space character between the label definition and the following comments to help ctags.
The patch is generated by the command:
git ls-files -- \*.S | xargs sed -i 's/^\([^:]\+\):;/\1: ;/1'
Change-Id: If7a3c9d0f51207ea033cc8b8e1b34acaa0926475
show more ...
|
| eaec590e | 12-Dec-2013 |
Harry Liebel <Harry.Liebel@arm.com> |
Probe for GICv3 re-distributors on core bring-up
The GICv3 distributor can have more ports than CPUs are available in the system. Probe all re-distributors and use the matching affinity levels as sp
Probe for GICv3 re-distributors on core bring-up
The GICv3 distributor can have more ports than CPUs are available in the system. Probe all re-distributors and use the matching affinity levels as specified by each core and re-distributor to decide which re-distributor to use with which CPU core.
If a core cannot be matched with a re-distributor, the core panics and is placed in an endless loop.
Change-Id: Ie393cfe07c7449a2383959e3c968664882e18afc
show more ...
|
| 4f603683 | 14-Jan-2014 |
Harry Liebel <Harry.Liebel@arm.com> |
Do not trap access to floating point registers
Traps when accessing architectural features are disabled by clearing bits in CPTR_EL3 during early boot, including accesses to floating point registers
Do not trap access to floating point registers
Traps when accessing architectural features are disabled by clearing bits in CPTR_EL3 during early boot, including accesses to floating point registers. The value of this register was previously undetermined, causing unwanted traps to EL3. Future EL3 code (for example, context save/restore code) may use floating point registers, although they are not used by current code.
Also, the '-mgeneral-regs-only' flag is enabled in the GCC settings to prevent generation of code that uses floating point registers.
Change-Id: I9a03675f6387bbbee81a6f2c9ccf81150db03747
show more ...
|
| e83b0cad | 14-Jan-2014 |
Dan Handley <dan.handley@arm.com> |
Update year in copyright text to 2014
Change-Id: Ic7fb61aabae1d515b9e6baf3dd003807ff42da60 |
| 54078850 | 14-Jan-2014 |
Dan Handley <dan.handley@arm.com> |
Refer to separate issue tracking repository
Update documentation to refer to separate issue tracking repository, https://github.com/ARM-software/tf-issues/issues.
Change-Id: Ib1cef65b0da420bec58290
Refer to separate issue tracking repository
Update documentation to refer to separate issue tracking repository, https://github.com/ARM-software/tf-issues/issues.
Change-Id: Ib1cef65b0da420bec58290d8743eb069b1226c96
show more ...
|
| 8468739c | 02-Jan-2014 |
Ian Spray <ian.spray@arm.com> |
Move GIC setup to a separate file
GIC setup code which used to be in bl31_plat_setup.c is now in fvp_gic.c to simplify future changes to other bootloader stages. This patch moves code from bl31_pla
Move GIC setup to a separate file
GIC setup code which used to be in bl31_plat_setup.c is now in fvp_gic.c to simplify future changes to other bootloader stages. This patch moves code from bl31_plat_setup.c to fvp_gic.c, simplifies the include file list for bl31_plat_setup.c, moves GIC declarations from the bl31.h header file into the platform.h, and reworks files according to coding style guide.
Change-Id: I48d82a4ba33e7114dcc88f9ca98767a06cf8f417
show more ...
|
| e22fb91e | 03-Jan-2014 |
Harry Liebel <Harry.Liebel@arm.com> |
Build project with 'pedantic'
Tighten up ISO C standard checking. Fix 'CASSERT' implementation to conform to C99 as opposed to GNU99 standard.
Change-Id: I58ddc61913617b66f11da5b6e3f7363136d5cf7d |
| 0af6d64d | 20-Dec-2013 |
Harry Liebel <Harry.Liebel@arm.com> |
Do not let GCC use built-in functions
In order to reduce the software dependency on the compiler, the project is now compiled with the '-ffreestanding' flag. This is to prevent GCC from replacing fu
Do not let GCC use built-in functions
In order to reduce the software dependency on the compiler, the project is now compiled with the '-ffreestanding' flag. This is to prevent GCC from replacing functions with more optimised versions. An example is where GCC replaces a simple printf() with a puts().
Change-Id: I1973fe6957cd708e8432a0039af9d50e037bd884
show more ...
|