| e268fc08 | 01-Dec-2015 |
Pascal Brand <pascal.brand@st.com> |
Fix obj address in syscall_storage_obj_create()
This fixes "xtest 7584"
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey)
Fix obj address in syscall_storage_obj_create()
This fixes "xtest 7584"
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Pascal Brand <pascal.brand@linaro.org> (QEMU) Signed-off-by: Pascal Brand <pascal.brand@st.com>
show more ...
|
| bc62d278 | 10-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
bugfix: rename define LP64 to __LP64__
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> |
| 2f04385c | 12-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
Unify TA entry functions
Unifies TA entry function into one entry function.
* Updates TA entry * Update ta_head * Fixes style issues in user_ta_entry.c
Note that this change is not backwards compa
Unify TA entry functions
Unifies TA entry function into one entry function.
* Updates TA entry * Update ta_head * Fixes style issues in user_ta_entry.c
Note that this change is not backwards compatible, TAs needs to be recompiled.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| e86f1266 | 05-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
Make TEE Core TA interaction 64-bit compatible
* Updates TA entry * Update ta_head * Updates the syscall interface * Adds functions to make a short pointer (32-bit uref) from a kernel pointer and
Make TEE Core TA interaction 64-bit compatible
* Updates TA entry * Update ta_head * Updates the syscall interface * Adds functions to make a short pointer (32-bit uref) from a kernel pointer and vice versa
Note that this change is not backwards compatible, TAs needs to be recompiled.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| 53fe16f3 | 23-Nov-2015 |
Jerome Forissier <jerome.forissier@linaro.org> |
Avoid duplication of $(call force,CFG_WITH_VFP,y)
When cryptographic extensions are used, and whatever the platform, we have to ensure that VFP preservation is enabled too. Therefore it makes sense
Avoid duplication of $(call force,CFG_WITH_VFP,y)
When cryptographic extensions are used, and whatever the platform, we have to ensure that VFP preservation is enabled too. Therefore it makes sense to centralize the tests in core/lib/libtomcrypt/sub.mk instead of having them in the platform-specific configuration files.
Incidentally, this adds a few missing statements to HiKey and Mediatek.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| 80ddeac7 | 06-Nov-2015 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add ALIGNMENT_IS_OK to libutils/ext/include/util.h, delete unused code
TEE_ALIGNMENT_IS_OK() is renamed ALIGNMENT_IS_OK() and moved to lib/libutils/ext/include/util.h, which avoids duplication (was
Add ALIGNMENT_IS_OK to libutils/ext/include/util.h, delete unused code
TEE_ALIGNMENT_IS_OK() is renamed ALIGNMENT_IS_OK() and moved to lib/libutils/ext/include/util.h, which avoids duplication (was previously in core/include/kernel/tee_common_unpg.h and lib/libutee/include/utee_defines.h). Call sites are adjusted accordingly.
It is assumed that the compiler keyword __alignof__ is available, so CFG_TC_NO_ALIGNOF is of no use. We also remove unused definitions: TEE_ALIGNMENT_*B_IS_OK().
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| 655b6ecf | 27-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: vexpress-juno: enable v8 crypto acceleration
Enables all supported ARMv8 crypto acceleration for the Juno platform.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens W
core: vexpress-juno: enable v8 crypto acceleration
Enables all supported ARMv8 crypto acceleration for the Juno platform.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Juno) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 3b6248ef | 23-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
arm64: isb after write to cpacr_el1
Add an isb after each write to cpacr_el1 to make sure the register update has taken effect before next instruction.
Signed-off-by: Jens Wiklander <jens.wiklander
arm64: isb after write to cpacr_el1
Add an isb after each write to cpacr_el1 to make sure the register update has taken effect before next instruction.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey)
show more ...
|
| 9d54e33c | 19-Nov-2015 |
Ashutosh Singh <ashutosh.singh@arm.com> |
Ensure sctl programming before resuming system
The entry code programms the sctl register to enable alignment check and disable I/D cache. Need to put an instruction barrier to ensure sctl programmi
Ensure sctl programming before resuming system
The entry code programms the sctl register to enable alignment check and disable I/D cache. Need to put an instruction barrier to ensure sctl programming has taken place before resuming the system.
Signed-off-by: Ashutosh Singh <ashutosh.singh@arm.com> Tested-by: Ashutosh Singh <ashutosh.singh@arm.com> Reviewed-by: James King <james.king@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 0e1b2000 | 05-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
arm: mutex: Add file and line to debuginfo
Adds file and line in the sleep and wake log line if CFG_MUTEX_DEBUG=y.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklande
arm: mutex: Add file and line to debuginfo
Adds file and line in the sleep and wake log line if CFG_MUTEX_DEBUG=y.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU,FVP) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| ee083b03 | 27-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: remove big lock
Removes big lock leaving TEE Core open to concurrent execution depending on internal locks around all critical sections.
Signed-off-by: Jens Wiklander <jens.wiklander@lin
core: arm: remove big lock
Removes big lock leaving TEE Core open to concurrent execution depending on internal locks around all critical sections.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 45082335 | 30-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutils: make malloc thread-safe
Makes malloc family of functions thread-safe by using an internal mutex when compiled to be used in TEE Core.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.
libutils: make malloc thread-safe
Makes malloc family of functions thread-safe by using an internal mutex when compiled to be used in TEE Core.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| b666b6f2 | 28-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: thread-safe sessions
Make session handling thread-safe with tee_ta_get_session(), tee_ta_put_session() and tee_ta_unlink_session().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.o
core: arm: thread-safe sessions
Make session handling thread-safe with tee_ta_get_session(), tee_ta_put_session() and tee_ta_unlink_session().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 0d1e115c | 28-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ltc: enable thread-safety
Enables thread-safety by replacing empty macros for mutex handling with a real implementation.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by:
core: ltc: enable thread-safety
Enables thread-safety by replacing empty macros for mutex handling with a real implementation.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 1051957d | 27-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ltc: add lock for memory pool
Adds a recursive lock for the memory pool, allowing only one thread at a time to use the memory pool. This makes a predictable or consistent worst case for memory
core: ltc: add lock for memory pool
Adds a recursive lock for the memory pool, allowing only one thread at a time to use the memory pool. This makes a predictable or consistent worst case for memory pool utilization. It also allows for a controlled way of releasing memory from the pool to the pager when the pool is unused.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 2cdaaacb | 17-Nov-2015 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: TEE_GetSystemTime() updates
- Set gpd.tee.systemTime.protectionLevel to 1000 when the time source is the physical count register (CNTPCT), that is, when CFG_SECURE_TIME_SOURCE_CNTPCT=y. The pr
core: TEE_GetSystemTime() updates
- Set gpd.tee.systemTime.protectionLevel to 1000 when the time source is the physical count register (CNTPCT), that is, when CFG_SECURE_TIME_SOURCE_CNTPCT=y. The protection level value is moved into the time_source struct for better modularity. - When the time source is REE (CFG_SECURE_TIME_SOURCE_REE=y), make sure that successive calls return increasing values as required by the GP TEE Core Internal API v1.1.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 89af93a3 | 05-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
plat-vexpress: bugfix reading char from uart
If debug prints aren't enabled plat-vexpress doesn't read characters from the uart resulting in an endless loop.
This patch always reads the character r
plat-vexpress: bugfix reading char from uart
If debug prints aren't enabled plat-vexpress doesn't read characters from the uart resulting in an endless loop.
This patch always reads the character regardless of debug prints.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Juno) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 30a673e3 | 30-Oct-2015 |
Peter Maydell <peter.maydell@linaro.org> |
drivers/core/gic.c: Set priority mask to allow NS interrupts
The non-secure world's view of interrupt priorities only allows it to set priorities between 0x80 and 0xff. This means that the secure wo
drivers/core/gic.c: Set priority mask to allow NS interrupts
The non-secure world's view of interrupt priorities only allows it to set priorities between 0x80 and 0xff. This means that the secure world has to set the GICC_PMR (priority mask register) to a value that allows NS interrupts, otherwise the non-secure world will never see interrupts and has no way to set the priorities so that it will ever see them.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e06e6e74 | 30-Oct-2015 |
Peter Maydell <peter.maydell@linaro.org> |
drivers/core/gic.c: Fix indentation in gic_cpu_init()
The indentation in gic_cpu_init() is using spaces rather than tabs. Since it's a very short function and we're about to add some code to it, fix
drivers/core/gic.c: Fix indentation in gic_cpu_init()
The indentation in gic_cpu_init() is using spaces rather than tabs. Since it's a very short function and we're about to add some code to it, fix the indentation first.
Fix a comment typo while we're here.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 565da466 | 04-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
pager: bug fix boot time moving of hashes
Fixes problem with moving hashes of paged pages during boot. Before MMU is initialize we invalidate all memory used by TEE Core. In the pager case we had __
pager: bug fix boot time moving of hashes
Fixes problem with moving hashes of paged pages during boot. Before MMU is initialize we invalidate all memory used by TEE Core. In the pager case we had __init_end as end marker but that's not good now that we store the hashes temporarily at that address. The new end is now __tmp_hashes_end.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Juno) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 21106ea2 | 16-Jul-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: enable paging with concurrent execution
* Updates the pager to handle concurrent execution. * The pager now supports no execute and readonly pages too.
All physical pages used for paging is a
core: enable paging with concurrent execution
* Updates the pager to handle concurrent execution. * The pager now supports no execute and readonly pages too.
All physical pages used for paging is also mapped in an aliased area which is used when preparing a physical page to be mapped at another virtual address.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP) Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 0f5465bf | 20-Jul-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: support concurrent use of VFP
Supports concurrent use of VFP by moving the VFP state into struct thread_ctx. As a consequence VFP can only be used when a thread is assigned to the CPU. This me
core: support concurrent use of VFP
Supports concurrent use of VFP by moving the VFP state into struct thread_ctx. As a consequence VFP can only be used when a thread is assigned to the CPU. This means that the pager can only verify pages when a thread is active.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 7cacd3b7 | 30-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: wait_queue: sync obj address in debug print
Include address of sync object in wait queue debug prints to easier locate a contended sync object.
Signed-off-by: Jens Wiklander <jens.wiklander@l
core: wait_queue: sync obj address in debug print
Include address of sync object in wait queue debug prints to easier locate a contended sync object.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 6ceede1a | 29-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: fix initcall alignment in link script
Increases initcall alignment to 8 to work on arm64.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@
core: arm: fix initcall alignment in link script
Increases initcall alignment to 8 to work on arm64.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 80c558ef | 29-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: initialize boot thread early
Initialize a boot thread early during boot to allow mutexes and other objects depending on an active thread can be used during early boot without any special
core: arm: initialize boot thread early
Initialize a boot thread early during boot to allow mutexes and other objects depending on an active thread can be used during early boot without any special quirks.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|