| 25caa16d | 09-Jan-2016 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: enable runtime console
This patch enables the runtime console for all Tegra platforms before exiting BL31. This would enable debug/error prints to be always displayed on the UART console.
Ch
Tegra: enable runtime console
This patch enables the runtime console for all Tegra platforms before exiting BL31. This would enable debug/error prints to be always displayed on the UART console.
Change-Id: Ic48d61d05b0ab07973d6fc2dc6b68733a42a3f63 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 31a4957c | 07-Jan-2016 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: PM: soc-specific system off handler
This patch introduces a power down handler which can be overriden by SoCs to customise the power down process. The current SoCs do not have a way of poweri
Tegra: PM: soc-specific system off handler
This patch introduces a power down handler which can be overriden by SoCs to customise the power down process. The current SoCs do not have a way of powering down the entire system as external PMIC chips are involved in the process.
But future SoCs will have a way to power off the entire system without talking to an external PMIC.
Change-Id: Ie7750714141a29cb0a1a616fafc531c4f11d0985 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| d288ab24 | 10-Dec-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: handlers for common and SoC-specific SiP calls
This patch implements a handler for common SiP calls. A weak implementation for the SoC-specific handler has been provided which can be overridd
Tegra: handlers for common and SoC-specific SiP calls
This patch implements a handler for common SiP calls. A weak implementation for the SoC-specific handler has been provided which can be overridden by SoCs to implement any custom SiP calls.
Change-Id: I45122892a84ea35d7b44be0f35dc15f6bb95193e Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| e1084216 | 29-Oct-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: init normal/crash console for platforms
The BL2 fills in the UART controller ID to be used as the normal as well as the crash console on Tegra platforms. The controller ID to UART controller
Tegra: init normal/crash console for platforms
The BL2 fills in the UART controller ID to be used as the normal as well as the crash console on Tegra platforms. The controller ID to UART controller base address mapping is handled by each Tegra SoC the base addresses might change across Tegra chips.
This patch adds the handler to parse the platform params to get the UART ID for the per-soc handlers.
Change-Id: I4d167b20a59aaf52a31e2a8edf94d8d6f89598fa Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| e0d4158c | 06-Oct-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: add tzdram_base to plat_params_from_bl2 struct
This patch adds another member, tzdram_base, to the plat_params_from_bl2 struct in order to store the TZDRAM carveout base address used to load
Tegra: add tzdram_base to plat_params_from_bl2 struct
This patch adds another member, tzdram_base, to the plat_params_from_bl2 struct in order to store the TZDRAM carveout base address used to load the Trusted OS. The monitor programs the memory controller with the TZDRAM base and size in order to deny any accesses from the NS world.
Change-Id: If39b8674d548175d7ccb6525c18d196ae8a8506c Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 21f1fd95 | 18-Sep-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: Memory Controller Driver (v1)
This patch renames the current Memory Controller driver files to "_v1". This is done to add a driver for the new Memory Controller hardware (v2).
Change-Id: I66
Tegra: Memory Controller Driver (v1)
This patch renames the current Memory Controller driver files to "_v1". This is done to add a driver for the new Memory Controller hardware (v2).
Change-Id: I668dbba42f6ee0db2f59a7103f0ae7e1d4684ecf Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 08cefa98 | 22-Sep-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: sanity check members of the "from_bl2" struct
This patch checks that the pointers to BL3-3 and BL3-2 ep_info structs are valid before accessing them. Add some INFO prints in the BL3-1 setup p
Tegra: sanity check members of the "from_bl2" struct
This patch checks that the pointers to BL3-3 and BL3-2 ep_info structs are valid before accessing them. Add some INFO prints in the BL3-1 setup path for early debugging purposes.
Change-Id: I62b23fa870f1b2fb783c8de69aab819f1749d15a Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| bde81dcc | 22-Sep-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: use ClusterId for calculating core position
This patch modifies platform_get_core_pos() to use the Cluster ID field as well to calculate the final index value. This helps the system to store
Tegra: use ClusterId for calculating core position
This patch modifies platform_get_core_pos() to use the Cluster ID field as well to calculate the final index value. This helps the system to store CPU data for multi-cluster configurations.
Change-Id: I76e35f723f741e995c6c9156e9d61b0b2cdd2709 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 0cd6138d | 22-Sep-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: enable processor retention and L2/CPUECTLR access
This patch enables the processor retention and L2/CPUECTLR read/write access from the NS world only for Cortex-A57 CPUs on the Tegra SoCs.
C
Tegra: enable processor retention and L2/CPUECTLR access
This patch enables the processor retention and L2/CPUECTLR read/write access from the NS world only for Cortex-A57 CPUs on the Tegra SoCs.
Change-Id: I9941a67686ea149cb95d80716fa1d03645325445 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 0c2a7c38 | 09-Sep-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: define MAX_XLAT_TABLES and MAX_MMAP_REGIONS per-platform
This patch moves these address translation helper macros to individual Tegra SoC makefiles to provide more control.
Change-Id: Ieab53
Tegra: define MAX_XLAT_TABLES and MAX_MMAP_REGIONS per-platform
This patch moves these address translation helper macros to individual Tegra SoC makefiles to provide more control.
Change-Id: Ieab53c457c73747bd0deb250459befb5b7b9363f Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| f9b895ad | 03-Sep-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: SoC specific SiP handlers
This patch converts the common SiP handler to SoC specific SiP handler. T210 and T132 have different SiP SMCs and so it makes sense to move the SiP handler to soc/t1
Tegra: SoC specific SiP handlers
This patch converts the common SiP handler to SoC specific SiP handler. T210 and T132 have different SiP SMCs and so it makes sense to move the SiP handler to soc/t132 and soc/t210 folders.
Change-Id: Idfe48384d63641137d74a095432df4724986b241 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 62a6907f | 25-Aug-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: include flowctlr driver from SoC specific makefiles
The Flow Controller hardware block is not present across all Tegra SoCs, hence include the driver files from SoC specific makefiles.
T132/
Tegra: include flowctlr driver from SoC specific makefiles
The Flow Controller hardware block is not present across all Tegra SoCs, hence include the driver files from SoC specific makefiles.
T132/T210 are the SoCs which include this hardware block while future SoCs have removed it.
Change-Id: Iaca25766a4fa51567293d10cf14dae968b0fae80 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 1a80e885 | 20-Feb-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #841 from dp-arm/dp/debug-regs
Disable secure self-hosted debug |
| 108e4df7 | 16-Feb-2017 |
davidcunado-arm <david.cunado@arm.com> |
Merge pull request #834 from douglas-raillard-arm/dr/use_dc_zva_zeroing
Use DC ZVA instruction to zero memory |
| 09fad498 | 08-Feb-2017 |
dp-arm <dimitris.papastamos@arm.com> |
Juno: Disable SPIDEN in release builds
On Juno, the secure privileged invasive debug authentication signal (SPIDEN) is controlled by board SCC registers, which by default enable SPIDEN. Disable sec
Juno: Disable SPIDEN in release builds
On Juno, the secure privileged invasive debug authentication signal (SPIDEN) is controlled by board SCC registers, which by default enable SPIDEN. Disable secure privileged external debug in release builds by programming the appropriate Juno SoC registers.
Change-Id: I61045f09a47dc647bbe95e1b7a60e768f5499f49 Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
show more ...
|
| 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 ...
|
| 32f0d3c6 | 26-Jan-2017 |
Douglas Raillard <douglas.raillard@arm.com> |
Replace some memset call by zeromem
Replace all use of memset by zeromem when zeroing moderately-sized structure by applying the following transformation: memset(x, 0, sizeof(x)) => zeromem(x, sizeo
Replace some memset call by zeromem
Replace all use of memset by zeromem when zeroing moderately-sized structure by applying the following transformation: memset(x, 0, sizeof(x)) => zeromem(x, sizeof(x))
As the Trusted Firmware is compiled with -ffreestanding, it forbids the compiler from using __builtin_memset and forces it to generate calls to the slow memset implementation. Zeromem is a near drop in replacement for this use case, with a more efficient implementation on both AArch32 and AArch64.
Change-Id: Ia7f3a90e888b96d056881be09f0b4d65b41aa79e Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
show more ...
|
| 308d359b | 02-Dec-2016 |
Douglas Raillard <douglas.raillard@arm.com> |
Introduce unified API to zero memory
Introduce zeromem_dczva function on AArch64 that can handle unaligned addresses and make use of DC ZVA instruction to zero a whole block at a time. This zeroing
Introduce unified API to zero memory
Introduce zeromem_dczva function on AArch64 that can handle unaligned addresses and make use of DC ZVA instruction to zero a whole block at a time. This zeroing takes place directly in the cache to speed it up without doing external memory access.
Remove the zeromem16 function on AArch64 and replace it with an alias to zeromem. This zeromem16 function is now deprecated.
Remove the 16-bytes alignment constraint on __BSS_START__ in firmware-design.md as it is now not mandatory anymore (it used to comply with zeromem16 requirements).
Change the 16-bytes alignment constraints in SP min's linker script to a 8-bytes alignment constraint as the AArch32 zeromem implementation is now more efficient on 8-bytes aligned addresses.
Introduce zero_normalmem and zeromem helpers in platform agnostic header that are implemented this way: * AArch32: * zero_normalmem: zero using usual data access * zeromem: alias for zero_normalmem * AArch64: * zero_normalmem: zero normal memory using DC ZVA instruction (needs MMU enabled) * zeromem: zero using usual data access
Usage guidelines: in most cases, zero_normalmem should be preferred.
There are 2 scenarios where zeromem (or memset) must be used instead: * Code that must run with MMU disabled (which means all memory is considered device memory for data accesses). * Code that fills device memory with null bytes.
Optionally, the following rule can be applied if performance is important: * Code zeroing small areas (few bytes) that are not secrets should use memset to take advantage of compiler optimizations.
Note: Code zeroing security-related critical information should use zero_normalmem/zeromem instead of memset to avoid removal by compilers' optimizations in some cases or misbehaving versions of GCC.
Fixes ARM-software/tf-issues#408
Change-Id: Iafd9663fc1070413c3e1904e54091cf60effaa82 Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
show more ...
|
| e9ced6f2 | 31-Jan-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #825 from dp-arm/dp/simplify-cond
tbbr: Simplify conditional |
| 424ad491 | 31-Jan-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #819 from davidcunado-arm/dc/build_with_gcc6.2
Resolve build errors flagged by GCC 6.2 |
| f3ded378 | 31-Jan-2017 |
dp-arm <dimitris.papastamos@arm.com> |
tbbr: Simplify conditional
These are equivalent so use the reduced form.
Change-Id: I40ca097411b9abab69985b8e4dbccf7582eae49e Signed-off-by: dp-arm <dimitris.papastamos@arm.com> |
| 9edac047 | 19-Jan-2017 |
David Cunado <david.cunado@arm.com> |
Resolve build errors flagged by GCC 6.2
With GCC 6.2 compiler, more C undefined behaviour is being flagged as warnings, which result in build errors in ARM TF build.
The specific issue that this pa
Resolve build errors flagged by GCC 6.2
With GCC 6.2 compiler, more C undefined behaviour is being flagged as warnings, which result in build errors in ARM TF build.
The specific issue that this patch resolves is the use of (1 << 31), which is predominantly used in case statements, where 1 is represented as a signed int. When shifted to msb the behaviour is undefined.
The resolution is to specify 1 as an unsigned int using a convenience macro ULL(). A duplicate macro MAKE_ULL() is replaced.
Fixes ARM-software/tf-issues#438
Change-Id: I08e3053bbcf4c022ee2be33a75bd0056da4073e1 Signed-off-by: David Cunado <david.cunado@arm.com>
show more ...
|
| 201d535f | 18-Apr-2016 |
Koan-Sin Tan <koansin.tan@gmail.com> |
Remove use of all deprecated APIs
Now it's possbile to build BL31 for MT8173 with ERROR_DEPRECATED=1.
Signed-off-by: Koan-Sin Tan <koansin.tan@gmail.com> |
| 8bc20038 | 18-Apr-2016 |
Koan-Sin Tan <koansin.tan@gmail.com> |
Get rid of use of old GIC APIs
Signed-off-by: Koan-Sin Tan <koansin.tan@gmail.com> |
| 9cfd83e9 | 18-Apr-2016 |
Koan-Sin Tan <koansin.tan@gmail.com> |
Add support of PSCI_EXTENDED_STATE_ID to MT8173
Signed-off-by: Koan-Sin Tan <koansin.tan@gmail.com> |