| b97e9666 | 28-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add refcount routines
Adds refcount_inc() and refcount_dec()
Reviewed-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by:
core: add refcount routines
Adds refcount_inc() and refcount_dec()
Reviewed-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 06fe4216 | 03-Oct-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: asan: provide asan_memcpy_unchecked()
Provides asan_memcpy_unchecked() which does a memcpy() that isn't checked against the tagging in the ASAN shadow area. If ASAN isn't enabled it's replaced
core: asan: provide asan_memcpy_unchecked()
Provides asan_memcpy_unchecked() which does a memcpy() that isn't checked against the tagging in the ASAN shadow area. If ASAN isn't enabled it's replaced by a direct call to memcpy().
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b05cd886 | 15-Jun-2017 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
core: enable non-contiguous temporary reference parameters
Now, when we can pass list of pages between REE and TEE it is possible to use temporary memory references that are not located in a preallo
core: enable non-contiguous temporary reference parameters
Now, when we can pass list of pages between REE and TEE it is possible to use temporary memory references that are not located in a preallocated shared memory area. By employing OPTEE_MSG_ATTR_NONCONTIG parameter attribute, REE can provide own buffer as a temporary memory reference.
Actually, such parameters are indistinguishable from registered shared memory references. So, when OP-TEE spots temporary memory reference with OPTEE_MSG_ATTR_NONCONTIG attribute, it will create `mobj_reg_shm` for it. After call was handled, it will free that mobj.
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (FVP, QEMU v7/v8) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Juno with and without pager) Tested-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> (Rcar M3)
show more ...
|
| 50f3b323 | 28-Sep-2017 |
Peng Fan <peng.fan@nxp.com> |
core: dt: introduce dt_have_prop
Introudce dt_have_prop
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> |
| 23b1daf4 | 28-Sep-2017 |
Peng Fan <peng.fan@nxp.com> |
core: dt: typo fix
1. According to ePAPR spec, status should be okay/disabled/fail/fail-sss. To Linux device tree, "okay" and "ok" are both used. Function is_okay also use "okay" and "ok". But
core: dt: typo fix
1. According to ePAPR spec, status should be okay/disabled/fail/fail-sss. To Linux device tree, "okay" and "ok" are both used. Function is_okay also use "okay" and "ok". But "ok" is not defined in spec. Here only correct comments
2. size -> sz
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| abccd909 | 11-Sep-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: asan: provide asan_memset_unchecked()
Provides asan_memset_unchecked() which does a memset that isn't checked against the tagging in the ASAN shadow area. If ASAN isn't enabled it's replaced b
core: asan: provide asan_memset_unchecked()
Provides asan_memset_unchecked() which does a memset that isn't checked against the tagging in the ASAN shadow area. If ASAN isn't enabled it's replaced by a direct call to memset().
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e7a8839b | 15-Jun-2017 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
ABI change: add OPTEE_MSG_ATTR_NONCONTIG handling
This patch introduces new attribute OPTEE_MSG_ATTR_NONCONTIG to allow Normal World pass arbitrary list of physical pages as a shared buffer.
To rea
ABI change: add OPTEE_MSG_ATTR_NONCONTIG handling
This patch introduces new attribute OPTEE_MSG_ATTR_NONCONTIG to allow Normal World pass arbitrary list of physical pages as a shared buffer.
To read this list of page address two new functions are added: - msg_param_extract_pages() is a helper function that read pages list into provided array
- msg_param_mobj_from_noncontig_param() constructs mobj from provided struct optee_msg_param parameter. This mobj then can be used in various parts of OP-TEE
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| fe685824 | 15-Jun-2017 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
msg_param.h: add `const` qualifier for read-only functions
msg_param_get_buf_size() and msg_param_attr_is_tmem() only read from their parameter, so that parameter can be declared as `const`
Signed
msg_param.h: add `const` qualifier for read-only functions
msg_param_get_buf_size() and msg_param_attr_is_tmem() only read from their parameter, so that parameter can be declared as `const`
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 50f24313 | 07-Mar-2017 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
msg_param: add msg_param.c with helper functions
This patch adds various helper functions to manipulate with parameters passed to/from normal world.
Also it introduces new optee_param type which is
msg_param: add msg_param.c with helper functions
This patch adds various helper functions to manipulate with parameters passed to/from normal world.
Also it introduces new optee_param type which is used to pass long lists of parameters.
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Hikey)
show more ...
|
| bce4951c | 02-Jun-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add linker.h for link script symbols
Moves all core extern declarations of linker script symbols into <kernel/linker.h>.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off
core: add linker.h for link script symbols
Moves all core extern declarations of linker script symbols into <kernel/linker.h>.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7ba16abb | 02-Mar-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
dt: Add dt_map_dev()
Maps a device into memory from its FDT node.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-
dt: Add dt_map_dev()
Maps a device into memory from its FDT node.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 9fe4c797 | 02-Mar-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
dt: Add FDT manipulation functions
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wikland
dt: Add FDT manipulation functions
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a4f139d7 | 04-Mar-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: introduce struct dt_driver
When CFG_DT=y, a linker section is created (.rodata.dtdrv) to hold all the DT-compatible drivers. The table can later be queried at runtime. Some manipulation functi
core: introduce struct dt_driver
When CFG_DT=y, a linker section is created (.rodata.dtdrv) to hold all the DT-compatible drivers. The table can later be queried at runtime. Some manipulation functions are exported in <kernel/dt.h>.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d9331767 | 30-Jan-2017 |
Andy Green <andy@warmcat.com> |
otp: convert to use weak default
There is no longer any point in having CFG_OTP_SUPPORT.
It's always supported either by the weak implementation or any platform override.
Since there exists a plat
otp: convert to use weak default
There is no longer any point in having CFG_OTP_SUPPORT.
It's always supported either by the weak implementation or any platform override.
Since there exists a platform 'sunxi' that does not have CFG_GENERIC_BOOT and doesn't build generic_boot.c, this is plaved in a new file 'otp_stubs.c'. Since this is just copied Linaro code at this point, keep Linaro copyright message on the new file.
Signed-off-by: Andy Green <andy@warmcat.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 889dbbbf | 13-Feb-2017 |
Victor Chong <victor.chong@linaro.org> |
core: Add tee_time_busy_wait()
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linar
core: Add tee_time_busy_wait()
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| cb0b5954 | 13-Dec-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add pseudo TA for socket
Adds a pseudo TA sockets using tee-supplicant.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (
core: add pseudo TA for socket
Adds a pseudo TA sockets using tee-supplicant.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (b2260 pager=y/n) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (b2260) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 42fb5b2e | 13-Feb-2017 |
Etienne Carriere <etienne.carriere@linaro.org> |
rename 'static TA' into 'pseudo TA'
This renaming prevents confusion of what is a static TA: static TAs are NOT Trusted Application operating at OP-TEE core privilege execution level. There are rath
rename 'static TA' into 'pseudo TA'
This renaming prevents confusion of what is a static TA: static TAs are NOT Trusted Application operating at OP-TEE core privilege execution level. There are rather OP-TEE core services that offer an invocation API based on GP TEE specified invocation API: open session, invoke command and close session.
This change renames all 'static TA' references into 'pseudo TA' references.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
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 ...
|
| acc10c43 | 08-Dec-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove tee_dispatch_* functions
Prior to this patch the tee_dispatch_* functions where called when invoking TAs from normal world.
The tee_dipatch_* functions provided little value and has no
core: remove tee_dispatch_* functions
Prior to this patch the tee_dispatch_* functions where called when invoking TAs from normal world.
The tee_dipatch_* functions provided little value and has now been collapsed into the architecture specific entry_std.c reducing the stack usage.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 0cad9723 | 19-Jan-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove obsolete mobj_is_unsafe()
Removes obsolete mobj_is_unsafe(). As a consequence some tee_ta_manager code can be removed too.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> T
core: remove obsolete mobj_is_unsafe()
Removes obsolete mobj_is_unsafe(). As a consequence some tee_ta_manager code can be removed too.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 0dcfa568 | 19-Jan-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: introduce MOBJ abstraction
Introduces MOBJ for memory objects, no changes in features except breaking unsafe-nw-param/mem-multipurpose.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.
core: introduce MOBJ abstraction
Introduces MOBJ for memory objects, no changes in features except breaking unsafe-nw-param/mem-multipurpose.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by Volodymyr Babchuk <vlad.babchuk@gmail.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 26ed70ec | 29-Nov-2016 |
Guanchao Liang <liang.guanchao@linaro.org> |
core: add code for the interrupt framework
With this commit, we add three more GIC APIs for the kernel of OPTEE-OS: itr_raise_sgi : can raise software generate interrupt(SGI) from secure world to no
core: add code for the interrupt framework
With this commit, we add three more GIC APIs for the kernel of OPTEE-OS: itr_raise_sgi : can raise software generate interrupt(SGI) from secure world to no-secure world, or secure world to secure world. It's a quick communication between different worlds and different cores. Because SGI is using the GIC N-N model, so with this API, every core can receive the interrupt if want.
itr_raise_pi : can trigger the peripheral interrupt with the corresponding interrupt number. When sending it to N cores, just one core can receive the effective interrupt.
itr_set_affinity : can target the peripheral interrupt to the core you want, it means that one can bind the interrupt to the corresponding core use this API.
The usage may as follow: itr_raise_sgi(11, 0x1 << 1) it will raise SGI11 to core 1, and if you want not only core 1 can receive SGI11 but also core 2, then you can change the code to itr_raise_sgi(11, 0x1 << 1 || 0x1 << 2).
itr_set_affinity(61, 0x1 << 1) itr_raise_pi(61) These two APIs may use together, the operation set_affinity set the PI61 can just sent to core 1, then raise_pi, core 1 will receive the peripheral interrupt 61.
Signed-off-by: Guanchao Liang <liang.guanchao@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Tested-by: Joakim Bech <joakim.bech@linaro.org> (QEMU) [Update commit author to be same as S-o-b: above] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 68540524 | 02-Nov-2016 |
Igor Opaniuk <igor.opaniuk@linaro.org> |
core/libutee: perform cleanup for magic "4"
Perform cleanup for magic "4" constant that represents amount of tee params
Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> Reviewed-by: Etienne Ca
core/libutee: perform cleanup for magic "4"
Perform cleanup for magic "4" constant that represents amount of tee params
Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 2ffdd194 | 26-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
Remove legacy tee_common_unpg.h
Removes legacy file core/include/kernel/tee_common_unpg.h and updates with new types etc as needed.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Teste
Remove legacy tee_common_unpg.h
Removes legacy file core/include/kernel/tee_common_unpg.h and updates with new types etc as needed.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (b2260) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 1d171f95 | 30-Aug-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add support for kernel address sanitizer
Adds support for kernel address sanitizer. Currently only for plat-vexpress-qemu_virt.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tes
core: add support for kernel address sanitizer
Adds support for kernel address sanitizer. Currently only for plat-vexpress-qemu_virt.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU v7) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|