| fe3ccf24 | 30-Nov-2015 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutils: add %pUl format for UUIDs
The debug traces in tee_ta_manager.c do not show the last 8 bytes of the TA UUIDs, which makes the output confusing sometimes. This commit adds support for a new
libutils: add %pUl format for UUIDs
The debug traces in tee_ta_manager.c do not show the last 8 bytes of the TA UUIDs, which makes the output confusing sometimes. This commit adds support for a new printf format for little-endian encoded UUIDs: %pUl, and uses it in tee_ta_manager.c. For example:
TEE_UUID uuid; DMSG("UUID: %pUl", (void *)&uuid);
...will print something like:
[...] UUID: cb3e5ba0-adf1-11e0-998b0002a5d5c51b
The new format is available when using the trace macros or the new functions: snprintk(), vsnprintk() declared in <printk.h>. But, snprintf() and vsnprintf() are not modified in order not to break standard compliance.
This format is taken from the Linux kernel [1].
[1] https://www.kernel.org/doc/Documentation/printk-formats.txt
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 ...
|
| aeb78863 | 11-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
plat-vexpress: generate new TA dev kit for ARM64
Renames the user-ta dev kit to ta_arm32 and adds a new TA dev kit as ta_arm64. ta_arm64 is only built when TEE Core is compiled as ARM64.
Reviewed-b
plat-vexpress: generate new TA dev kit for ARM64
Renames the user-ta dev kit to ta_arm32 and adds a new TA dev kit as ta_arm64. ta_arm64 is only built when TEE Core is compiled as ARM64.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 4175ef9a | 02-Dec-2015 |
Victor Chong <victor.chong@linaro.org> |
hikey: make console configurable
96boards HiKey defaults to UART3 for console. We keep the default at UART0 to keep secure world logs separate, but gives users an option to use UART3 if preferred. B
hikey: make console configurable
96boards HiKey defaults to UART3 for console. We keep the default at UART0 to keep secure world logs separate, but gives users an option to use UART3 if preferred. Build with:
make ... CFG_HIKEY_UART3=y
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| 6ef196af | 01-Dec-2015 |
Pascal Brand <pascal.brand@st.com> |
Fix PL310 mutex allocation
Allocation of PL310 mutex in shared memory cannot use malloc() as it is performed in fastcall, meaning without any active thread.
This patch statically allocates, in the
Fix PL310 mutex allocation
Allocation of PL310 mutex in shared memory cannot use malloc() as it is performed in fastcall, meaning without any active thread.
This patch statically allocates, in the boot sequence, a mutex that can be used as the l2cc_mutex, in shared memory.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM) 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 ...
|
| 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 ...
|
| 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 ...
|
| 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 ...
|
| 5c781c55 | 23-Jul-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: split tee/entry.c
Split core/arch/arm/tee/entry.c into entry_fast.c and entry_std.c to separate fast call code from standard call code. Fast call code must not be paged, but standard code shou
core: split tee/entry.c
Split core/arch/arm/tee/entry.c into entry_fast.c and entry_std.c to separate fast call code from standard call code. Fast call code must not be paged, but standard code should be paged if possible.
The pager can only handle page faults for active threads.
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>
show more ...
|
| c3e0bd74 | 02-Nov-2015 |
Jerome Forissier <jerome.forissier@linaro.org> |
Delete libutil_with_isoc
OP-TEE won't build unless $(libutil_with_isoc) is 'y', so this variable is not needed.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bec
Delete libutil_with_isoc
OP-TEE won't build unless $(libutil_with_isoc) is 'y', so this variable is not needed.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|