| 75f364b3 | 27-Mar-2019 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Adjust size of virtual address space per partition
Rather than using a fixed virtual address space size, read all regions in the resource description of each partition and restrict the virtual
SPM: Adjust size of virtual address space per partition
Rather than using a fixed virtual address space size, read all regions in the resource description of each partition and restrict the virtual address space size to the one the partition actually needs.
This also allows SPM to take advantage of the extension ARMv8.4-TTST if the virtual address space size is small enough.
Change-Id: I8646aa95e659136b58b44b040364cdee631f7e82 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 014df18b | 27-Mar-2019 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Refactor xlat context creation
Right now the virtual address space is fixed to PLAT_VIRT_ADDR_SPACE_SIZE, so all base translation tables are the same size and need the same alignment. The curre
SPM: Refactor xlat context creation
Right now the virtual address space is fixed to PLAT_VIRT_ADDR_SPACE_SIZE, so all base translation tables are the same size and need the same alignment. The current code allocates the exact space needed by this initial table.
However, a following patch is going to allow each partition to choose the size of its address space based on the memory regions defined in their resource description, so it isn't possible to determine this at build time. As this optimization no longer applies, it has to be removed.
Change-Id: Ia8d19f4981e1017e4ffe0ba136de73d701044cb0 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 6de6965b | 27-Mar-2019 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Move shim layer to TTBR1_EL1
This gives each Secure Partition complete freedom on its address space. Previously, the memory used by the exception vectors was reserved and couldn't be used. Also
SPM: Move shim layer to TTBR1_EL1
This gives each Secure Partition complete freedom on its address space. Previously, the memory used by the exception vectors was reserved and couldn't be used. Also, it always had to be mapped, forcing SPM to generate translation tables that included the exception vectors as well as the Partition memory regions. With this change, partitions can reduce their address space size easily.
Change-Id: I67fb5e9bdf2870b73347f23bff702fab0a8f8711 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 7a79328c | 27-Feb-2019 |
Ambroise Vincent <ambroise.vincent@arm.com> |
SPM: Create SPCI auxiliary function
Fix variable shadowing warnings and prevent code duplication.
Change-Id: Idb29cc95d6b6943bc012d7bd430afa0e4a7cbf8c Signed-off-by: Ambroise Vincent <ambroise.vinc
SPM: Create SPCI auxiliary function
Fix variable shadowing warnings and prevent code duplication.
Change-Id: Idb29cc95d6b6943bc012d7bd430afa0e4a7cbf8c Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
show more ...
|
| 0e4f761b | 01-Jan-2019 |
Ard Biesheuvel <ard.biesheuvel@linaro.org> |
services/spm_deprecated: fix return code polarity of spm_init()
Registered init handlers return a boolean int, not a return code, so convert the result from the SPM init call before returning it.
S
services/spm_deprecated: fix return code polarity of spm_init()
Registered init handlers return a boolean int, not a return code, so convert the result from the SPM init call before returning it.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
show more ...
|
| 021318df | 03-Jan-2019 |
Ard Biesheuvel <ard.biesheuvel@linaro.org> |
services/spm_deprecated: disable alignment checking for S-EL0
Permit unaligned accesses while executing the secure partition payload, so that we don't have to modify existing code that we will host
services/spm_deprecated: disable alignment checking for S-EL0
Permit unaligned accesses while executing the secure partition payload, so that we don't have to modify existing code that we will host there. (The UEFI spec explicitly permits unaligned accesses)
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
show more ...
|
| c024ea6c | 01-Jan-2019 |
Ard Biesheuvel <ard.biesheuvel@linaro.org> |
services/spm_deprecated: permit timer sysreg access at S-EL0
Expose the timer registers that are accessible at EL0 per the architecture to the SPM payload running in secure EL0. Note that this requi
services/spm_deprecated: permit timer sysreg access at S-EL0
Expose the timer registers that are accessible at EL0 per the architecture to the SPM payload running in secure EL0. Note that this requires NS_TIMER_SWITCH to be enable for all users of this code.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
show more ...
|
| 83a5d512 | 30-Nov-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Remove remaining SMC interfaces
Also, add a disclaimer to explain that the current implementation of SPM is a prototype that is going to undergo a lot of rework.
Change-Id: I303c1e61c51d9f286c
SPM: Remove remaining SMC interfaces
Also, add a disclaimer to explain that the current implementation of SPM is a prototype that is going to undergo a lot of rework.
Change-Id: I303c1e61c51d9f286cc599fea565fc9ba5a996bf Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| e23ae073 | 30-Nov-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Migrate mem attr get/set helpers to SPRT
The old SMCs SP_MEMORY_ATTRIBUTES_{GET,SET}_AARCH64 have been removed in favour of SPRT_MEMORY_PERM_ATTR_{GET,SET}_AARCH64.
Change-Id: Idb93cfa5461d009
SPM: Migrate mem attr get/set helpers to SPRT
The old SMCs SP_MEMORY_ATTRIBUTES_{GET,SET}_AARCH64 have been removed in favour of SPRT_MEMORY_PERM_ATTR_{GET,SET}_AARCH64.
Change-Id: Idb93cfa5461d0098df941037c5653f7c44b65227 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| eb1cbb4c | 08-Nov-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Support non-blocking calls
Note that the arguments passed during the SMC call don't comply with the SPCI specifications. This will be fixed in following patches, but it is needed to implement a
SPM: Support non-blocking calls
Note that the arguments passed during the SMC call don't comply with the SPCI specifications. This will be fixed in following patches, but it is needed to implement a few more SPCI SMCs to be able to do it. The current code allows us to start testing it.
Change-Id: Ic13dcc54c40327df03be1b0f52e8a44f468f06b4 Co-authored-by: Jean-Paul Etienne <jean-paul.etienne@arm.com> Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|