| #
fa1d3712 |
| 06-Nov-2015 |
Juan Castillo <juan.castillo@arm.com> |
Add -mstrict-align to the gcc options
ARMv8 architecture allows unaligned memory accesses. However, Trusted Firmware disables such feature by setting the SCTLR_A_BIT and SCTLR_SA_BIT in the SCTLR_EL
Add -mstrict-align to the gcc options
ARMv8 architecture allows unaligned memory accesses. However, Trusted Firmware disables such feature by setting the SCTLR_A_BIT and SCTLR_SA_BIT in the SCTLR_EL3 register (it enables alignment checks).
This patch adds -mstrict-align to the gcc build options. Although there are not explicit unaligned memory accesses in Trusted Firmware, this flag will tell the compiler not to use them.
Fixes ARM-software/tf-issues#294
Change-Id: I69748c6cf28504be9ca3dc975a331d14459c9ef1
show more ...
|
| #
42662283 |
| 09-Nov-2015 |
Achin Gupta <achin.gupta@arm.com> |
Merge pull request #425 from achingupta/ag/tf-issues#332
Re-introduce evaluation of ENABLE_PLAT_COMPAT build flag
|
| #
93271a1e |
| 07-Nov-2015 |
Achin Gupta <achin.gupta@arm.com> |
Re-introduce evaluation of ENABLE_PLAT_COMPAT build flag
Commit #73c99d4eb377e0e25f7951be53087bf92e7b4b18 had refactored the top level Makefile. This commit also broke platform ports that still rely
Re-introduce evaluation of ENABLE_PLAT_COMPAT build flag
Commit #73c99d4eb377e0e25f7951be53087bf92e7b4b18 had refactored the top level Makefile. This commit also broke platform ports that still rely on an enabled ENABLE_PLAT_COMPAT build option since the evaluation of this option was also accidentally removed from the Makefile.
This patch fixes this break by re-introducing the necessary support to ensure that this build option is enabled by default if a platform port does not disable it explicitly.
Fixes ARM-software/tf-issues#332
Change-Id: I2217595d2e0bccae7de98cc6c0ea448b5bf3dae2
show more ...
|
| #
368bb87b |
| 27-Oct-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #417 from jcastillo-arm/jc/makefile_2
Makefile rework and bug fix #2
|
| #
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 ...
|
| #
432b9905 |
| 17-Aug-2015 |
Achin Gupta <achin.gupta@arm.com> |
Merge pull request #361 from achingupta/for_sm/psci_proto_v5
For sm/psci proto v5
|
| #
5c8babcd |
| 13-Jul-2015 |
Soby Mathew <soby.mathew@arm.com> |
PSCI: Add deprecated API for SPD when compatibility is disabled
This patch defines deprecated platform APIs to enable Trusted Firmware components like Secure Payload and their dispatchers(SPD) to co
PSCI: Add deprecated API for SPD when compatibility is disabled
This patch defines deprecated platform APIs to enable Trusted Firmware components like Secure Payload and their dispatchers(SPD) to continue to build and run when platform compatibility is disabled. This decouples the migration of platform ports to the new platform API from SPD and enables them to be migrated independently. The deprecated platform APIs defined in this patch are : platform_get_core_pos(), platform_get_stack() and platform_set_stack().
The patch also deprecates MPIDR based context management helpers like cm_get_context_by_mpidr(), cm_set_context_by_mpidr() and cm_init_context(). A mechanism to deprecate APIs and identify callers of these APIs during build is introduced, which is controlled by the build flag WARN_DEPRECATED. If WARN_DEPRECATED is defined to 1, the users of the deprecated APIs will be flagged either as a link error for assembly files or compile time warning for C files during build.
Change-Id: Ib72c7d5dc956e1a74d2294a939205b200f055613
show more ...
|
| #
67487846 |
| 13-Jul-2015 |
Soby Mathew <soby.mathew@arm.com> |
PSCI: Switch to the new PSCI frameworks
This commit does the switch to the new PSCI framework implementation replacing the existing files in PSCI folder with the ones in PSCI1.0 folder. The correspo
PSCI: Switch to the new PSCI frameworks
This commit does the switch to the new PSCI framework implementation replacing the existing files in PSCI folder with the ones in PSCI1.0 folder. The corresponding makefiles are modified as required for the new implementation. The platform.h header file is also is switched to the new one as required by the new frameworks. The build flag ENABLE_PLAT_COMPAT defaults to 1 to enable compatibility layer which let the existing platform ports to continue to build and run with minimal changes.
The default weak implementation of platform_get_core_pos() is now removed from platform_helpers.S and is provided by the compatibility layer.
Note: The Secure Payloads and their dispatchers still use the old platform and framework APIs and hence it is expected that the ENABLE_PLAT_COMPAT build flag will remain enabled in subsequent patch. The compatibility for SPDs using the older APIs on platforms migrated to the new APIs will be added in the following patch.
Change-Id: I18c51b3a085b564aa05fdd98d11c9f3335712719
show more ...
|
| #
32bc85f2 |
| 10-Jun-2015 |
Soby Mathew <soby.mathew@arm.com> |
PSCI: Implement platform compatibility layer
The new PSCI topology framework and PSCI extended State framework introduces a breaking change in the platform port APIs. To ease the migration of the pl
PSCI: Implement platform compatibility layer
The new PSCI topology framework and PSCI extended State framework introduces a breaking change in the platform port APIs. To ease the migration of the platform ports to the new porting interface, a compatibility layer is introduced which essentially defines the new platform API in terms of the old API. The old PSCI helpers to retrieve the power-state, its associated fields and the highest coordinated physical OFF affinity level of a core are also implemented for compatibility. This allows the existing platform ports to work with the new PSCI framework without significant rework. This layer will be enabled by default once the switch to the new PSCI framework is done and is controlled by the build flag ENABLE_PLAT_COMPAT.
Change-Id: I4b17cac3a4f3375910a36dba6b03d8f1700d07e3
show more ...
|
| #
8ee24980 |
| 07-Apr-2015 |
Soby Mathew <soby.mathew@arm.com> |
PSCI: Add framework to handle composite power states
The state-id field in the power-state parameter of a CPU_SUSPEND call can be used to describe composite power states specific to a platform. The
PSCI: Add framework to handle composite power states
The state-id field in the power-state parameter of a CPU_SUSPEND call can be used to describe composite power states specific to a platform. The current PSCI implementation does not interpret the state-id field. It relies on the target power level and the state type fields in the power-state parameter to perform state coordination and power management operations. The framework introduced in this patch allows the PSCI implementation to intepret generic global states like RUN, RETENTION or OFF from the State-ID to make global state coordination decisions and reduce the complexity of platform ports. It adds support to involve the platform in state coordination which facilitates the use of composite power states and improves the support for entering standby states at multiple power domains.
The patch also includes support for extended state-id format for the power state parameter as specified by PSCIv1.0.
The PSCI implementation now defines a generic representation of the power-state parameter. It depends on the platform port to convert the power-state parameter (possibly encoding a composite power state) passed in a CPU_SUSPEND call to this representation via the `validate_power_state()` plat_psci_ops handler. It is an array where each index corresponds to a power level. Each entry contains the local power state the power domain at that power level could enter.
The meaning of the local power state values is platform defined, and may vary between levels in a single platform. The PSCI implementation constrains the values only so that it can classify the state as RUN, RETENTION or OFF as required by the specification: * zero means RUN * all OFF state values at all levels must be higher than all RETENTION state values at all levels * the platform provides PLAT_MAX_RET_STATE and PLAT_MAX_OFF_STATE values to the framework
The platform also must define the macros PLAT_MAX_RET_STATE and PLAT_MAX_OFF_STATE which lets the PSCI implementation find out which power domains have been requested to enter a retention or power down state. The PSCI implementation does not interpret the local power states defined by the platform. The only constraint is that the PLAT_MAX_RET_STATE < PLAT_MAX_OFF_STATE.
For a power domain tree, the generic implementation maintains an array of local power states. These are the states requested for each power domain by all the cores contained within the domain. During a request to place multiple power domains in a low power state, the platform is passed an array of requested power-states for each power domain through the plat_get_target_pwr_state() API. It coordinates amongst these states to determine a target local power state for the power domain. A default weak implementation of this API is provided in the platform layer which returns the minimum of the requested power-states back to the PSCI state coordination.
Finally, the plat_psci_ops power management handlers are passed the target local power states for each affected power domain using the generic representation described above. The platform executes operations specific to these target states.
The platform power management handler for placing a power domain in a standby state (plat_pm_ops_t.pwr_domain_standby()) is now only used as a fast path for placing a core power domain into a standby or retention state should now be used to only place the core power domain in a standby or retention state.
The extended state-id power state format can be enabled by setting the build flag PSCI_EXTENDED_STATE_ID=1 and it is disabled by default.
Change-Id: I9d4123d97e179529802c1f589baaa4101759d80c
show more ...
|
| #
84f95bed |
| 25-Jun-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #315 from jcastillo-arm/jc/tbb_tmp9
Authentication Framework
|
| #
1779ba6b |
| 19-May-2015 |
Juan Castillo <juan.castillo@arm.com> |
TBB: switch to the new authentication framework
This patch modifies the Trusted Board Boot implementation to use the new authentication framework, making use of the authentication module, the cryto
TBB: switch to the new authentication framework
This patch modifies the Trusted Board Boot implementation to use the new authentication framework, making use of the authentication module, the cryto module and the image parser module to authenticate the images in the Chain of Trust.
A new function 'load_auth_image()' has been implemented. When TBB is enabled, this function will call the authentication module to authenticate parent images following the CoT up to the root of trust to finally load and authenticate the requested image.
The platform is responsible for picking up the right makefiles to build the corresponding cryptographic and image parser libraries. ARM platforms use the mbedTLS based libraries.
The platform may also specify what key algorithm should be used to sign the certificates. This is done by declaring the 'KEY_ALG' variable in the platform makefile. FVP and Juno use ECDSA keys.
On ARM platforms, BL2 and BL1-RW regions have been increased 4KB each to accommodate the ECDSA code.
REMOVED BUILD OPTIONS:
* 'AUTH_MOD'
Change-Id: I47d436589fc213a39edf5f5297bbd955f15ae867
show more ...
|
| #
ccbf890e |
| 01-Jun-2015 |
Juan Castillo <juan.castillo@arm.com> |
TBB: add ECDSA support to the certificate generation tool
This patch extends the 'cert_create' tool to support ECDSA keys to sign the certificates. The '--key-alg' command line option can be used to
TBB: add ECDSA support to the certificate generation tool
This patch extends the 'cert_create' tool to support ECDSA keys to sign the certificates. The '--key-alg' command line option can be used to specify the key algorithm when invoking the tool. Available options are:
* 'rsa': create RSA-2048 keys (default option) * 'ecdsa': create ECDSA-SECP256R1 keys
The TF Makefile has been updated to allow the platform to specify the key algorithm by declaring the 'KEY_ALG' variable in the platform makefile.
The behaviour regarding key management has changed. After applying this patch, the tool will try first to open the keys from disk. If one key does not exist or no key is specified, and the command line option to create keys has been specified, new keys will be created. Otherwise an error will be generated and the tool will exit. This way, the user may specify certain keys while the tool will create the remaining ones. This feature is useful for testing purposes and CI infrastructures.
The OpenSSL directory may be specified using the build option 'OPENSSL_DIR' when building the certificate generation tool. Default is '/usr'.
Change-Id: I98bcc2bfab28dd7179f17f1177ea7a65698df4e7
show more ...
|
| #
fd34e7ba |
| 25-Feb-2015 |
Juan Castillo <juan.castillo@arm.com> |
TBB: add build option to save private keys
This patch adds a boolean build option 'SAVE_KEYS' to indicate the certificate generation tool that it must save the private keys used to establish the cha
TBB: add build option to save private keys
This patch adds a boolean build option 'SAVE_KEYS' to indicate the certificate generation tool that it must save the private keys used to establish the chain of trust. This option depends on 'CREATE_KEYS' to be enabled. Default is '0' (do not save).
Because the same filenames are used as outputs to save the keys, they are no longer a dependency to the cert_tool. This dependency has been removed from the Makefile.
Documentation updated accordingly.
Change-Id: I67ab1c2b1f8a25793f0de95e8620ce7596a6bc3b
show more ...
|
| #
e347e843 |
| 24-Jun-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #310 from sandrine-bailleux/sb/tf-issue-304-phase1
Enhance BL3-1 entrypoint handling to support non-TF boot firmware - Phase 1
|
| #
bf031bba |
| 02-Jun-2015 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Introduce PROGRAMMABLE_RESET_ADDRESS build option
This patch introduces a new platform build option, called PROGRAMMABLE_RESET_ADDRESS, which tells whether the platform has a programmable or fixed r
Introduce PROGRAMMABLE_RESET_ADDRESS build option
This patch introduces a new platform build option, called PROGRAMMABLE_RESET_ADDRESS, which tells whether the platform has a programmable or fixed reset vector address.
If the reset vector address is fixed then the code relies on the platform_get_entrypoint() mailbox mechanism to figure out where it is supposed to jump. On the other hand, if it is programmable then it is assumed that the platform code will program directly the right address into the RVBAR register (instead of using the mailbox redirection) so the mailbox is ignored in this case.
Change-Id: If59c3b11fb1f692976e1d8b96c7e2da0ebfba308
show more ...
|
| #
1081e9c8 |
| 02-Jun-2015 |
Achin Gupta <achin.gupta@arm.com> |
Merge pull request #308 from vwadekar/tegra-soc-support-v4
Tegra soc support v4
|
| #
c13b2e32 |
| 19-May-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Driver for 16550 UART interface
This patch adds driver for the 16550 UART interface. The driver is exposed as a console, which platforms can use to dump their boot/crash logs.
Signed-off-by: Varun
Driver for 16550 UART interface
This patch adds driver for the 16550 UART interface. The driver is exposed as a console, which platforms can use to dump their boot/crash logs.
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| #
4731e8f0 |
| 29-Apr-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #295 from danh-arm/dh/plat-port-reorg
ARM platform port reorganization
|
| #
c04d2606 |
| 27-Mar-2015 |
Dan Handley <dan.handley@arm.com> |
Allow deeper platform port directory structure
Update the top level makefile to allow platform ports to exist in subdirectories at any level instead of one level under `plat/`. The makefile recursiv
Allow deeper platform port directory structure
Update the top level makefile to allow platform ports to exist in subdirectories at any level instead of one level under `plat/`. The makefile recursively searches for all files called `platform.mk` in all subdirectories of `plat/`. The directory containing `platform.mk` is the platform name. Platform names must be unique across the codebase.
Replace usage of HELP_PLATFORMS in the Makefile with PLATFORMS since these are both used to report the same information back to the user.
Update the TSP and cert_create tool makefiles in a similar way to support a deeper platform port directory structure.
Also add PLAT_<plat_name> as a define passed through the top level makefile to the source files, to allow build time variation in common platform code.
Change-Id: I213420164808c5ddb99a26144e8e3f141a7417b7
show more ...
|
| #
620b5be9 |
| 13-Apr-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #288 from danh-arm/sb/remove-arch-makefile
Remove the ARCH build configuration from the Makefile v2
|
| #
d0687b26 |
| 18-Feb-2015 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Remove the ARCH build configuration from the Makefile
The ARCH variable, which defaults to 'aarch64', gives the wrong impression that the Trusted Firmware can be built for other architectures. This
Remove the ARCH build configuration from the Makefile
The ARCH variable, which defaults to 'aarch64', gives the wrong impression that the Trusted Firmware can be built for other architectures. This patch removes it. This doesn't have any consequence on the rest of the build system because the variable was unused.
Change-Id: I97130f11f7733a3cbdfc89989587f2ebecaf3294
show more ...
|
| #
099b6051 |
| 01-Apr-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #279 from sandrine-bailleux/sb/fix-checkpatch
Bug Fix: Fix checkpatch rule in Makefile
|
| #
662109a5 |
| 26-Mar-2015 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Bug Fix: Fix checkpatch rule in Makefile
The shell command used to list all files but the libc's ones introduced in commit 95d5353c33 was incorrect. It was listing subdirectories without referencing
Bug Fix: Fix checkpatch rule in Makefile
The shell command used to list all files but the libc's ones introduced in commit 95d5353c33 was incorrect. It was listing subdirectories without referencing their parent directories. This patch fixes it.
Also, the command used to invoke the checkpatch.pl script is now printed when V=1.
Change-Id: Ie2f1e74f60d77e38c25e717cffa44ca03baec7b2
show more ...
|