| d2e201b4 | 08-Sep-2016 |
dp-arm <dimitris.papastamos@arm.com> |
Rename `pmf_calc_timestamp_offset` to `pmf_calc_timestamp_addr`
The macro calculates an absolute address rather than an offset so rename it to avoid confusion.
Change-Id: I351f73dfd809fd28c0c30d389
Rename `pmf_calc_timestamp_offset` to `pmf_calc_timestamp_addr`
The macro calculates an absolute address rather than an offset so rename it to avoid confusion.
Change-Id: I351f73dfd809fd28c0c30d38928caf5c5cd1af04
show more ...
|
| c1ff80b1 | 11-Jul-2016 |
Leon Chen <leon.chen@mediatek.com> |
Support for Mediatek MT6795 SoC
This patch support single core to boot to Linux kernel through Trusted Firmware. It also support 32 bit kernel and 64 bit kernel booting. |
| 9115b867 | 31-Aug-2016 |
davidcunado-arm <david.cunado@arm.com> |
Merge pull request #690 from soby-mathew/sm/level_sel_xlat
Automatically select initial xlation lookup level |
| 5695cfe7 | 15-Aug-2016 |
dp-arm <dimitris.papastamos@arm.com> |
Add assembler helper to calculate PMF timestamp offset
Given the service name and timestamp id, this assembler macro calculates the offset into a memory region where the per-cpu timestamp value is l
Add assembler helper to calculate PMF timestamp offset
Given the service name and timestamp id, this assembler macro calculates the offset into a memory region where the per-cpu timestamp value is located.
Change-Id: I47f6dfa2a17be182675e2ca0489d6eed42433209
show more ...
|
| afdda571 | 15-Aug-2016 |
dp-arm <dimitris.papastamos@arm.com> |
Move pmf headers to include/lib/pmf
More headers will be needed soon so better to move these to their own directory to avoid cluttering include/lib.
Change-Id: I6a72dc5b602d6f51954cf60aadd1beb52a26
Move pmf headers to include/lib/pmf
More headers will be needed soon so better to move these to their own directory to avoid cluttering include/lib.
Change-Id: I6a72dc5b602d6f51954cf60aadd1beb52a268670
show more ...
|
| e8719552 | 02-Aug-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Automatically select initial xlation lookup level
Instead of hardcoding a level 1 table as the base translation level table, let the code decide which level is the most appropriate given the virtual
Automatically select initial xlation lookup level
Instead of hardcoding a level 1 table as the base translation level table, let the code decide which level is the most appropriate given the virtual address space size.
As the table granularity is 4 KB, this allows the code to select level 0, 1 or 2 as base level for AArch64. This way, instead of limiting the virtual address space width to 39-31 bits, widths of 48-25 bit can be used.
For AArch32, this change allows the code to select level 1 or 2 as the base translation level table and use virtual address space width of 32-25 bits.
Also removed some unused definitions related to translation tables.
Fixes ARM-software/tf-issues#362
Change-Id: Ie3bb5d6d1a4730a26700b09827c79f37ca3cdb65
show more ...
|
| 937108a0 | 18-Aug-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #678 from soby-mathew/sm/PSCI_AArch32
Introduce AArch32 support for PSCI library |
| 445b1e70 | 02-Aug-2016 |
Haojian Zhuang <haojian.zhuang@linaro.org> |
emmc: support CMD23
Support CMD23. When CMD23 is used, CMD12 could be avoided.
Two scenarios: 1. CMD17 for single block, CMD18 + CMD12 for multiple blocks. 2. CMD23 + CMD18 for both single block an
emmc: support CMD23
Support CMD23. When CMD23 is used, CMD12 could be avoided.
Two scenarios: 1. CMD17 for single block, CMD18 + CMD12 for multiple blocks. 2. CMD23 + CMD18 for both single block and multiple blocks.
The emmc_init() should initialize whether CMD23 is supported or not.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
show more ...
|
| 181bbd41 | 11-Jul-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add FVP support for SP_MIN
This patch implements the support for SP_MIN in FVP. The SP_MIN platform APIs are implemented and the required makefile support is added for FVP.
Change-Id: Id50
AArch32: Add FVP support for SP_MIN
This patch implements the support for SP_MIN in FVP. The SP_MIN platform APIs are implemented and the required makefile support is added for FVP.
Change-Id: Id50bd6093eccbd5e38894e3fd2b20d5baeac5452
show more ...
|
| 877cf3ff | 11-Jul-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add essential ARM platform and FVP support
This patch adds AArch32 support for FVP and implements common platform APIs like `plat_get_my_stack`, `plat_set_my_stack`, `plat_my_core_cos` for
AArch32: Add essential ARM platform and FVP support
This patch adds AArch32 support for FVP and implements common platform APIs like `plat_get_my_stack`, `plat_set_my_stack`, `plat_my_core_cos` for AArch32. Only Multi Processor(MP) implementations of these functions are considered in this patch. The ARM Standard platform layer helpers are implemented for AArch32 and the common makefiles are modified to cater for both AArch64 and AArch32 builds. Compatibility with the deprecated platform API is not supported for AArch32.
Change-Id: Iad228400613eec91abf731b49e21a15bcf2833ea
show more ...
|
| c11ba852 | 05-May-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: add a minimal secure payload (SP_MIN)
This patch adds a minimal AArch32 secure payload SP_MIN. It relies on PSCI library to initialize the normal world context. It runs in Monitor mode and
AArch32: add a minimal secure payload (SP_MIN)
This patch adds a minimal AArch32 secure payload SP_MIN. It relies on PSCI library to initialize the normal world context. It runs in Monitor mode and uses the runtime service framework to handle SMCs. It is added as a BL32 component in the Trusted Firmware source tree.
Change-Id: Icc04fa6b242025a769c1f6c7022fde19459c43e9
show more ...
|
| 727e5238 | 05-May-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add support to PSCI lib
This patch adds AArch32 support to PSCI library, as follows :
* The `psci_helpers.S` is implemented for AArch32.
* AArch32 version of internal helper function `psc
AArch32: Add support to PSCI lib
This patch adds AArch32 support to PSCI library, as follows :
* The `psci_helpers.S` is implemented for AArch32.
* AArch32 version of internal helper function `psci_get_ns_ep_info()` is defined.
* The PSCI Library is responsible for the Non Secure context initialization. Hence a library interface `psci_prepare_next_non_secure_ctx()` is introduced to enable EL3 runtime firmware to initialize the non secure context without invoking context management library APIs.
Change-Id: I25595b0cc2dbfdf39dbf7c589b875cba33317b9d
show more ...
|
| e33b78a6 | 05-May-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add support in TF libraries
This patch adds AArch32 support to cpu ops, context management, per-cpu data and spinlock libraries. The `entrypoint_info` structure is modified to add support f
AArch32: Add support in TF libraries
This patch adds AArch32 support to cpu ops, context management, per-cpu data and spinlock libraries. The `entrypoint_info` structure is modified to add support for AArch32 register arguments. The CPU operations for AEM generic cpu in AArch32 mode is also added.
Change-Id: I1e52e79f498661d8f31f1e7b3a29e222bc7a4483
show more ...
|
| 3e3616ab | 05-May-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add SMCC context
This patch defines a SMCC context to save and restore registers during a SMC call. It also adds appropriate helpers to save and restore from this context for use by AArch32
AArch32: Add SMCC context
This patch defines a SMCC context to save and restore registers during a SMC call. It also adds appropriate helpers to save and restore from this context for use by AArch32 secure payload and BL stages.
Change-Id: I64c8d6fe1d6cac22e1f1f39ea1b54ee1b1b72248
show more ...
|
| 1ae0a49a | 05-May-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add API to invoke runtime service handler
This patch adds an API in runtime service framework to invoke the registered handler corresponding to the SMC function identifier. This is helpful
AArch32: Add API to invoke runtime service handler
This patch adds an API in runtime service framework to invoke the registered handler corresponding to the SMC function identifier. This is helpful for AArch32 because the number of arguments required by the handler is more than registers available as per AArch32 program calling conventions and requires the use of stack. Hence this new API will do the necessary argument setup and invoke the appropriate handler. Although this API is primarily intended for AArch32, it can be used for AArch64 as well.
Change-Id: Iefa15947fe5a1df55b0859886e677446a0fd7241
show more ...
|
| b2bca61d | 30-Jun-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add translation table library support
This patch adds translation library supports for AArch32 platforms. The library only supports long descriptor formats for AArch32. The `enable_mmu_secu
AArch32: Add translation table library support
This patch adds translation library supports for AArch32 platforms. The library only supports long descriptor formats for AArch32. The `enable_mmu_secure()` enables the MMU for secure world with `TTBR0` pointing to the populated translation tables.
Change-Id: I061345b1779391d098e35e7fe0c76e3ebf850e08
show more ...
|
| f24307de | 05-May-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add assembly helpers
This patch adds various assembly helpers for AArch32 like :
* cache management : Functions to flush, invalidate and clean cache by MVA. Also helpers to do cache operat
AArch32: Add assembly helpers
This patch adds various assembly helpers for AArch32 like :
* cache management : Functions to flush, invalidate and clean cache by MVA. Also helpers to do cache operations by set-way are also added.
* stack management: Macros to declare stack and get the current stack corresponding to current CPU.
* Misc: Macros to access co processor registers in AArch32, macros to define functions in assembly, assert macros, generic `do_panic()` implementation and function to zero block of memory.
Change-Id: I7b78ca3f922c0eda39beb9786b7150e9193425be
show more ...
|
| 031dbb12 | 09-May-2016 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Add essential Arch helpers
This patch adds the essential AArch32 architecture helpers arch.h and arch_helpers.h and modifies `_types.h` to add AArch32 support.
A new build option `ARCH` is
AArch32: Add essential Arch helpers
This patch adds the essential AArch32 architecture helpers arch.h and arch_helpers.h and modifies `_types.h` to add AArch32 support.
A new build option `ARCH` is defined in the top level makefile to enable the component makefiles to choose the right files based on the Architecture it is being build for. Depending on this flag, either `AARCH32` or `AARCH64` flag is defined by the Makefile. The default value of `ARCH` flag is `aarch64`. The AArch32 build support will be added in a later patch.
Change-Id: I405e5fac02db828a55cd25989b572b64cb005241
show more ...
|
| c45f627d | 20-Jul-2016 |
Soby Mathew <soby.mathew@arm.com> |
Move SIZE_FROM_LOG2_WORDS macro to utils.h
This patch moves the macro SIZE_FROM_LOG2_WORDS() defined in `arch.h` to `utils.h` as it is utility macro.
Change-Id: Ia8171a226978f053a1ee4037f80142c0a4d
Move SIZE_FROM_LOG2_WORDS macro to utils.h
This patch moves the macro SIZE_FROM_LOG2_WORDS() defined in `arch.h` to `utils.h` as it is utility macro.
Change-Id: Ia8171a226978f053a1ee4037f80142c0a4d21430
show more ...
|
| 63ad1ef4 | 28-Jul-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #672 from soby-mathew/sm/irouter_offset
GICv3: Fix the GICD_IROUTER offset |
| 405f42f9 | 28-Jul-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #671 from antonio-nino-diaz-arm/an/unoptimised-mem
ARM platforms: Define common image sizes |
| 61e30277 | 26-Jul-2016 |
Soby Mathew <soby.mathew@arm.com> |
GICv3: Fix the GICD_IROUTER offset
This patch fixes the offset of GICD_IROUTER register defined in gicv3.h. Although the GICv3 documention mentions that the offset for this register is 0x6100-0x7FD8
GICv3: Fix the GICD_IROUTER offset
This patch fixes the offset of GICD_IROUTER register defined in gicv3.h. Although the GICv3 documention mentions that the offset for this register is 0x6100-0x7FD8, the offset calculation for an interrupt id `n` is :
0x6000 + 8n, where n >= 32
This requires the offset for GICD_IROUTER to be defined as 0x6000.
Fixes ARM-software/tf-issues#410
Change-Id: If9e91e30d946afe7f1f60fea4f065c7567093fa8
show more ...
|
| 7b6d330c | 12-Jul-2016 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Ensure addresses in is_mem_free() don't overflow
This patch adds some runtime checks to prevent some potential pointer overflow issues in the is_mem_free() function. The overflow could happen in the
Ensure addresses in is_mem_free() don't overflow
This patch adds some runtime checks to prevent some potential pointer overflow issues in the is_mem_free() function. The overflow could happen in the case where the end addresses, computed as the sum of a base address and a size, results in a value large enough to wrap around. This, in turn, could lead to unpredictable behaviour.
If such an overflow is detected, the is_mem_free() function will now declare the memory region as not free. The overflow is detected using a new macro, called check_uptr_overflow().
This patch also modifies all other places in the 'bl_common.c' file where an end address was computed as the sum of a base address and a size and instead keeps the two values separate. This avoids the need to handle pointer overflows everywhere. The code doesn't actually need to compute any end address before the is_mem_free() function is called other than to print information message to the serial output.
This patch also introduces 2 slight changes to the reserve_mem() function:
- It fixes the end addresses passed to choose_mem_pos(). It was incorrectly passing (base + size) instead of (base + size - 1).
- When the requested allocation size is 0, the function now exits straight away and says so using a warning message. Previously, it used to actually reserve some memory. A zero-byte allocation was not considered as a special case so the function was using the same top/bottom allocation mechanism as for any other allocation. As a result, the smallest area of memory starting from the requested base address within the free region was reserved.
Change-Id: I0e695f961e24e56ffe000718014e0496dc6e1ec6
show more ...
|
| 0289970d | 25-Jul-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
ARM platforms: Define common image sizes
Compile option `ARM_BOARD_OPTIMISE_MMAP` has been renamed to `ARM_BOARD_OPTIMISE_MEM` because it now applies not only to defines related to the translation t
ARM platforms: Define common image sizes
Compile option `ARM_BOARD_OPTIMISE_MMAP` has been renamed to `ARM_BOARD_OPTIMISE_MEM` because it now applies not only to defines related to the translation tables but to the image size as well.
The defines `PLAT_ARM_MAX_BL1_RW_SIZE`, `PLAT_ARM_MAX_BL2_SIZE` and `PLAT_ARM_MAX_BL31_SIZE` have been moved to the file board_arm_def.h. This way, ARM platforms no longer have to set their own values if `ARM_BOARD_OPTIMISE_MEM=0` and they can specify optimized values otherwise. The common sizes have been set to the highest values used for any of the current build configurations.
This is needed because in some build configurations some images are running out of space. This way there is a common set of values known to work for all of them and it can be optimized for each particular platform if needed.
The space reserved for BL2 when `TRUSTED_BOARD_BOOT=0` has been increased. This is needed because when memory optimisations are disabled the values for Juno of `PLAT_ARM_MMAP_ENTRIES` and `MAX_XLAT_TABLES` are higher. If in this situation the code is compiled in debug mode and with "-O0", the code won't fit.
Change-Id: I70a3d8d3a0b0cad1d6b602c01a7ea334776e718e
show more ...
|
| 738b1fd7 | 08-Jul-2016 |
Soby Mathew <soby.mathew@arm.com> |
Rearrange assembly helper macros
This patch moves assembler macros which are not architecture specific to a new file `asm_macros_common.S` and moves the `el3_common_macros.S` into `aarch64` specific
Rearrange assembly helper macros
This patch moves assembler macros which are not architecture specific to a new file `asm_macros_common.S` and moves the `el3_common_macros.S` into `aarch64` specific folder.
Change-Id: I444a1ee3346597bf26a8b827480cd9640b38c826
show more ...
|