| #
31b31015 |
| 29-Mar-2023 |
liushiwei <liushiwei@eswincomputing.com> |
build: ta: add RISC-V linker script
Sort out the common code compiled by TA, abstract RISCV and ARM compile the common part of TA.
Signed-off-by: liushiwei <liushiwei@eswincomputing.com> Reviewed-b
build: ta: add RISC-V linker script
Sort out the common code compiled by TA, abstract RISCV and ARM compile the common part of TA.
Signed-off-by: liushiwei <liushiwei@eswincomputing.com> Reviewed-by: chenchaokai <chenchaokai@eswincomputing.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
7509620b |
| 30-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_Param
Updates TEE_Param according to TEE Internal Core API version 1.3.1.
A compatibility type with a __GP11_ prefix is added for compatibility with version 1.1. The two API funct
GP131: Update TEE_Param
Updates TEE_Param according to TEE Internal Core API version 1.3.1.
A compatibility type with a __GP11_ prefix is added for compatibility with version 1.1. The two API functions TEE_InvokeTACommand() and TEE_OpenTASession() are updated in a similar manner.
For the two TA entry functions TA_InvokeCommandEntryPoint() and TA_OpenSessionEntryPoint() we are implementing those in directly in user_ta_header.c since it's compiled with the TA and can used conditionals based on __OPTEE_CORE_API_COMPAT_1_1.
These TA entry points calls __ta_open_sess() and __ta_invoke_cmd() to convert TEE_Param to the compatibility __GP11_TEE_Param and in then call the compatibility entry points __GP11_TA_OpenSessionEntryPoint() and __GP11_TA_InvokeCommandEntryPoint().
Supplying __GP11_TA_OpenSessionEntryPoint() and __GP11_TA_InvokeCommandEntryPoint() as function pointers ensures that libutee doesn't try to look up the compatibility entry points when not needed.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
9d224046 |
| 21-Jul-2020 |
Jerome Forissier <jerome@forissier.org> |
ldelf, libutee: add minimal Thread Local Storage support
Preparing for C++ support in TAs.
Adds enough runtime Thread Local Storage (TLS) support for the GNU C++ compilers (arm-linux-gnueabihf-g++,
ldelf, libutee: add minimal Thread Local Storage support
Preparing for C++ support in TAs.
Adds enough runtime Thread Local Storage (TLS) support for the GNU C++ compilers (arm-linux-gnueabihf-g++, aarch64-linux-gnu-g++) to work with OP-TEE. That is:
- A Thread Control Block, - The __tls_get_addr() and dl_iterate_phdr() functions.
Note that __tls_get_addr() is an ABI helper so it has no prototype in a user-accessible header file. dl_iterate_phdr() however is defined in <link.h> and may be used in a TA. The file lib/libutee/include/link.h is borrowed from Android's Bionic [1] with minor changes (added the required #include statement and named the function parameters). A similar <link.h> header is provided by other C libraries such as GNU libc, musl and FreeBSD/NetBSD/OpenBSD.
Link: [1] https://android.googlesource.com/platform/bionic/+/master/libc/include/link.h Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
ca171ad2 |
| 18-Feb-2020 |
Jerome Forissier <jerome@forissier.org> |
libutee: remove utee_misc.h and utee_misc.c
utee_misc.{h,c} contain an unused function: utee_get_ta_exec_id(), and nothing else. Remove them.
Signed-off-by: Jerome Forissier <jerome@forissier.org>
libutee: remove utee_misc.h and utee_misc.c
utee_misc.{h,c} contain an unused function: utee_get_ta_exec_id(), and nothing else. Remove them.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
e3dddf72 |
| 30-Aug-2019 |
Sumit Garg <sumit.garg@linaro.org> |
ftrace: move ftrace code from libutee to libutils
Since TEE core and TA can share most of ftrace library code, so move ftrace code from libutee to libutils library which is shared among TEE core and
ftrace: move ftrace code from libutee to libutils
Since TEE core and TA can share most of ftrace library code, so move ftrace code from libutee to libutils library which is shared among TEE core and TA.
Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
fd652ade |
| 23-May-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: support compiling for ldelf
Adds support for compiling for ldelf by excluding files not needed in or conflicting with the ldelf environment.
Reviewed-by: Jerome Forissier <jerome.forissier
libutee: support compiling for ldelf
Adds support for compiling for ldelf by excluding files not needed in or conflicting with the ldelf environment.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
b02ae382 |
| 22-May-2019 |
Sumit Garg <sumit.garg@linaro.org> |
libutee: arm64: Add support for function tracing of user TAs
Function tracing (ftrace) is a useful debugging technique to dump function call graph for in-depth analysis of program execution and also
libutee: arm64: Add support for function tracing of user TAs
Function tracing (ftrace) is a useful debugging technique to dump function call graph for in-depth analysis of program execution and also to get useful information in case of any program abort.
In case of TA, this function graph information is dumped in a buffer kept in .bss section of corresponding instrumented TA. So this buffer can be dumped to normal world in case TA session closes or in case of any abort. Also size of this ftrace buffer is configurable per TA via following config option during TA compilation:
CFG_FTRACE_BUF_SIZE=2048
Function tracing is completely optional debugging feature which could be enabled via command line config option CFG_TA_FTRACE_SUPPORT=y.
Along with this user needs to add cflag: "-pg" to the files for whom function graph is to be generated. Typically for the whole TA, it should be compiled with CFG_TA_MCOUNT=y.
And in case user wants to set "-pg" for particular file, following should go in corresponding sub.mk:
cflags-<file-name>-y+=-pg
Also, to generate function graph for user mode libraries enable CFG_ULIBS_MCOUNT=y which will set "-pg" for all library files.
Currently this patch adds support for function tracing of 64-bit TAs only.
Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey960)
show more ...
|
| #
735565db |
| 16-May-2019 |
Sumit Garg <sumit.garg@linaro.org> |
Rename CFG_ULIBS_GPROF to CFG_ULIBS_MCOUNT
CFG_ULIBS_GPROF builds the user mode libraries with -pg, which adds instrumentation to all functions in the form of a call to mcount(). This was historical
Rename CFG_ULIBS_GPROF to CFG_ULIBS_MCOUNT
CFG_ULIBS_GPROF builds the user mode libraries with -pg, which adds instrumentation to all functions in the form of a call to mcount(). This was historically used by gprof, but other tools can benefit from this instrumentation. Therefore, rename the config flag as well as a couple of source files to remove the reference to gprof.
Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey960)
show more ...
|
| #
883c4be3 |
| 13-Oct-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add support for user TA profiling with gprof (-pg)
Adds the infrastructure to collect profiling information from Trusted Applications running in user mode and instrumented with -pg. Enable with: CFG
Add support for user TA profiling with gprof (-pg)
Adds the infrastructure to collect profiling information from Trusted Applications running in user mode and instrumented with -pg. Enable with: CFG_TA_GPROF_SUPPORT=y.
Profiling support in itself adds no significant performance overhead. Instrumented applications however may run 1.3x - 2x slower, and have a larger .bss section (+1.36 times .text size for 32-bit TAs, +1.77 times .text size for 64-bit ones).
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (D02 64-bit) Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU 32-bit) Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
bc33bbd9 |
| 11-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
Add support to generate multiple TA dev kits
Adds support to generate multiple TA dev kits, one for each word in the variable "ta-targets". ta/ta.mk is included once for each word in "ta-targets" wi
Add support to generate multiple TA dev kits
Adds support to generate multiple TA dev kits, one for each word in the variable "ta-targets". ta/ta.mk is included once for each word in "ta-targets" with the word assigned to "ta-target". This word is the assigned the variable "sm" to allow each "ta-target" to be built as a separate sub-module.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
f74a4a2b |
| 10-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: arm64 syscalls
Adds assembly implementations of arm64 syscalls.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Revie
libutee: arm64 syscalls
Adds assembly implementations of arm64 syscalls.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| #
abe38974 |
| 09-Mar-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
Rename arm32 architecture to arm
Renames arm32 directories to arm.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Reviewed-by
Rename arm32 architecture to arm
Renames arm32 directories to arm.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Tested-by: Pascal Brand <pascal.brand@linaro.org> (QEMU platform)
show more ...
|