| 1a8307fe | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: mm: add kernel mapping to user map
Adds a minimal kernel mapping needed when user mapping is active.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Andrew Davis <andrew
core: mm: add kernel mapping to user map
Adds a minimal kernel mapping needed when user mapping is active.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Andrew Davis <andrew.davis@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| aea6fd28 | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: thread: add thread_get_user_kcode()
Adds thread_get_user_kcode() to report required kernel mapping (exception vector and some associated code in the same section as the vector) inside a user m
core: thread: add thread_get_user_kcode()
Adds thread_get_user_kcode() to report required kernel mapping (exception vector and some associated code in the same section as the vector) inside a user mapping.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Andrew Davis <andrew.davis@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2c2cb3ab | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add mobj_tee_ram
Adds mobj_tee_ram to describe TEE RAM mapping inside a user mapping.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissi
core: add mobj_tee_ram
Adds mobj_tee_ram to describe TEE RAM mapping inside a user mapping.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Andrew Davis <andrew.davis@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 9cdfbc72 | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: tlbi_asid() handle kernel mode ASID too
When invalidating an ASID (lowest bit 0), clear the paired ASID (lowest bit 1)too.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed
core: tlbi_asid() handle kernel mode ASID too
When invalidating an ASID (lowest bit 0), clear the paired ASID (lowest bit 1)too.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Andrew Davis <andrew.davis@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 55705e76 | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: refactor ASID management
Refactors Address Space Identifier management. The field in struct user_ta_ctx is moved into struct tee_mmu_info and renamed to asid.
Allocation refactored internally
core: refactor ASID management
Refactors Address Space Identifier management. The field in struct user_ta_ctx is moved into struct tee_mmu_info and renamed to asid.
Allocation refactored internally with asid_alloc() and asid_free() functions, based on bitstring.h macros.
ASIDs starts at 2, and is always an even number.
ASIDs with the lowest bit set is reserved for as the second ASID when using ASIDs in pairs.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Andrew Davis <andrew.davis@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 33b3d81d | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: make core_mmu.h asm friendly
Makes core_mmu.h assembly friendly by excluding C code with #ifndef ASM
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier
core: make core_mmu.h asm friendly
Makes core_mmu.h assembly friendly by excluding C code with #ifndef ASM
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Andrew Davis <andrew.davis@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| ca5e2958 | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm32_macros.S: add {read,write}_ttbr0_64bit
Adds the macros read_ttbr0_64bit and write_ttbr0_64bit
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <
core: arm32_macros.S: add {read,write}_ttbr0_64bit
Adds the macros read_ttbr0_64bit and write_ttbr0_64bit
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3ccaf0dc | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm32_macros.S: add {read,write}_tpidrprw
Adds the assembly macros write_tpidrprw and read_tpidrprw to access the TPIDRPRW register.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org
core: arm32_macros.S: add {read,write}_tpidrprw
Adds the assembly macros write_tpidrprw and read_tpidrprw to access the TPIDRPRW register.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3bc90f3d | 13-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm32: sm: invalidate branch predictor
If build with secure monitor and CFG_CORE_WORKAROUND_SPECTRE_BP=y invalidate branch predictor on non-secure entry.
Fixes CVE-2017-5715
Reviewed-by: Jer
core: arm32: sm: invalidate branch predictor
If build with secure monitor and CFG_CORE_WORKAROUND_SPECTRE_BP=y invalidate branch predictor on non-secure entry.
Fixes CVE-2017-5715
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 09ca9f8b | 04-Jan-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
mk/config.mk: remove obsolete text and clarify usage of log levels
The configuration variable CFG_TEE_DRV_DEBUGFS was used by an older version of the older OP-TEE linux driver, before commit 724298b
mk/config.mk: remove obsolete text and clarify usage of log levels
The configuration variable CFG_TEE_DRV_DEBUGFS was used by an older version of the older OP-TEE linux driver, before commit 724298b6e425 ("Linux driver refactoring") [1]. It is now obsolete, so remove it.
The text explaining how to set log levels is also reworded slightly.
Link: [1] https://github.com/OP-TEE/optee_linuxdriver/commit/724298b6e425 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 705ee6a3 | 23-Dec-2017 |
Zeng Tao <prime.zeng@hisilicon.com> |
core: fix the reopen session condition for single instance TA
when a single instance TA is not muti-session, it 's allowed to open a new session only if the TA context reference is not zero, no matt
core: fix the reopen session condition for single instance TA
when a single instance TA is not muti-session, it 's allowed to open a new session only if the TA context reference is not zero, no matter whether it is keepalive or not.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Zeng Tao <prime.zeng@hisilicon.com>
show more ...
|
| d5d50c3c | 27-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Fix USER_TA_PROP_TYPE_BOOL handling
In 'ta_props' in ta/arch/arm/user_ta_header.c properties tagged as USER_TA_PROP_TYPE_BOOL are assigned a pointer to a bool, but is in the rest of the code handled
Fix USER_TA_PROP_TYPE_BOOL handling
In 'ta_props' in ta/arch/arm/user_ta_header.c properties tagged as USER_TA_PROP_TYPE_BOOL are assigned a pointer to a bool, but is in the rest of the code handled as if it was a pointer to a uint32_t. This works as long as a bool is four bytes, with certain compilers the size of a `bool` is 1 instead leading to errors.
TA properties can be supplied via the define TA_CURRENT_TA_EXT_PROPERTIES. The pattern used in ta/arch/arm/user_ta_header.c is likely copied when assigning properties via TA_CURRENT_TA_EXT_PROPERTIES.
This patch is fixing the assumption that the size of a `bool` is the same as the size of a `uint32_t` by changing all handling of USER_TA_PROP_TYPE_BOOL to base it on the type `bool` instead of `uint32_t`.
Reviewed-by: Jianhui Li <airbak.li@hisilicon.com> Tested by: Jianhui Li <airbak.li@hisilicon.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 1f3274b0 | 21-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove the unused file tee_authenc.h
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
|
| b63d737a | 12-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: thread.h: reorder struct thread_core_local
Reorders elements in struct thread_core_local to make sure that: uint32_t r[2]; is double word (8) aligned for ARM32 since the strd instruction somet
core: thread.h: reorder struct thread_core_local
Reorders elements in struct thread_core_local to make sure that: uint32_t r[2]; is double word (8) aligned for ARM32 since the strd instruction sometimes is used to write to that element.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2b033660 | 12-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: thread_a32.S: remove useless .section
Removes the useless .section .text.thread_asm
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@l
core: thread_a32.S: remove useless .section
Removes the useless .section .text.thread_asm
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| be5a74f0 | 12-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm64: treat size fault as translation fault
AArch64 is very specific regarding different data/prefetch exceptions. With this patch recognize Address Size faults and treat them as translation
core: arm64: treat size fault as translation fault
AArch64 is very specific regarding different data/prefetch exceptions. With this patch recognize Address Size faults and treat them as translation faults.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8e954ccb | 12-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: pgt: bugfix pop_from_some_list()
Prior to this patch pgt obtained with pop_least_used_from_cache_list() in pop_from_some_list() wasn't cleared properly. Only entries used for paging was clear.
core: pgt: bugfix pop_from_some_list()
Prior to this patch pgt obtained with pop_least_used_from_cache_list() in pop_from_some_list() wasn't cleared properly. Only entries used for paging was clear. With this patch the entire pgt is cleared to cover eventual entries not used for paging.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b7ea03ff | 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: fix TA_CreateEntryPoint() and TA_DestroyEntryPoint()
Fixes issues observed with keep alive single instance TAs: - TA_CreateEntryPoint() must only be called once, - TA_DestroyEntryPoint() mu
libutee: fix TA_CreateEntryPoint() and TA_DestroyEntryPoint()
Fixes issues observed with keep alive single instance TAs: - TA_CreateEntryPoint() must only be called once, - TA_DestroyEntryPoint() must not be called when the last session is closed, because the instance is still alive.
While we're at it, simplify the code a bit by not using a separate variable (ta_ref_count) to track whether we have sessions or not. Simply use TAILQ_EMPTY() on the session queue instead.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Kevin Peng <kevinp@marvell.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| d22ddc7b | 20-Oct-2017 |
Victor Chong <victor.chong@linaro.org> |
poplar: Add initial support
Signed-off-by: Victor Chong <victor.chong@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> |
| a2b984bd | 15-Dec-2017 |
Joakim Bech <joakim.bech@linaro.org> |
scripts: update regular expression in symbolize.py
Update the regular expression finding the call stack addresses to match the new trace format.
Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
scripts: update regular expression in symbolize.py
Update the regular expression finding the call stack addresses to match the new trace format.
Signed-off-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 546291f4 | 15-Dec-2017 |
Joakim Bech <joakim.bech@linaro.org> |
trace: make output more compact
The new format for traces are: <type>/<where>:<thread_id> [<func:line>] <message>
<type>: D = DEBUG E = ERROR I = INFO F = FLOW
<where>: TA = Trusted Ap
trace: make output more compact
The new format for traces are: <type>/<where>:<thread_id> [<func:line>] <message>
<type>: D = DEBUG E = ERROR I = INFO F = FLOW
<where>: TA = Trusted Application TC = TEE Core
I.e, it outputs messages like this: D/TC:00 ta_load:316 ELF load address 0x101000 etc
Thread ID will either take a single or two digits depending on the number of threads in use.
Signed-off-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 148ea708 | 12-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: .travis.yml: use GCC 4.9
Build with GCC 4.9 in order to detect compile errors specific to that version of the compiler, such as:
core/tee/tadb.c:593:15: error: missing braces around initializ
ci: .travis.yml: use GCC 4.9
Build with GCC 4.9 in order to detect compile errors specific to that version of the compiler, such as:
core/tee/tadb.c:593:15: error: missing braces around initializer [-Werror=missing-braces] const struct tadb_entry null_entry = { 0 }; ^ core/tee/tadb.c:593:15: error: (near initialization for ‘null_entry.prop’) [-Werror=missing-braces]
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Victor Chong <victor.chong@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 380507dd | 10-Dec-2017 |
Victor Chong <victor.chong@linaro.org> |
core/tee/tadb.c: Workaround error: missing braces around initializer
GCC 4.9 generates below false positive:
core/tee/tadb.c:593:15: error: missing braces around initializer [-Werror=missing-braces
core/tee/tadb.c: Workaround error: missing braces around initializer
GCC 4.9 generates below false positive:
core/tee/tadb.c:593:15: error: missing braces around initializer [-Werror=missing-braces] const struct tadb_entry null_entry = { 0 }; ^ core/tee/tadb.c:593:15: error: (near initialization for ‘null_entry.prop’) [-Werror=missing-braces]
Work around it by adding extra braces.
Signed-off-by: Victor Chong <victor.chong@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7639a405 | 11-Dec-2017 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
tee_mm.c: fix includes section
- Remove double #include <mm/tee_mm.h> - Put includes into alphabetical order
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Etienne Carrier
tee_mm.c: fix includes section
- Remove double #include <mm/tee_mm.h> - Put includes into alphabetical order
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| c4a17553 | 28-Nov-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: shippable: configure caching properly for ccache
Caching was inadvertently broken by commit 4af6a141f612 ("ci: shippable: run only platform builds"). I wrongly assumed that Shippable saves the c
ci: shippable: configure caching properly for ccache
Caching was inadvertently broken by commit 4af6a141f612 ("ci: shippable: run only platform builds"). I wrongly assumed that Shippable saves the ccache directory by default (~/.ccache), but is not the case. Only $SHIPPABLE_BUILD_DIR is saved, i.e., the checked out project (/root/src/github.com/OP-TEE/optee_os).
Fix that by giving the ccache directory in cache_dir_list.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|